2012-05-15 86 views
20

Tôi đang sử dụng MPI và tôi muốn đo lường chi phí liên lạc, để sau đó tôi có thể so sánh chúng với chi phí 'xử lý', ví dụ: tôi cần bao nhiêu thời gian để phân tán danh sách n quy trình và sau đó so sánh nó với bao nhiêu thời gian tôi cần để sắp xếp nó.Công cụ để đo chi phí truyền thông MPI

Có ai biết bất kỳ công cụ nào để đo lường chi phí liên lạc này không? (ví dụ như phân tán)

Có điều gì để thực hiện các phép đo về chi phí truyền thông MPI như ví dụ, PAPI để phân tích hiệu suất mã không?

Cảm ơn trước!

Trả lời

24

Có, có rất nhiều công cụ như vậy. MPI định nghĩa giao diện công cụ cho phép các thư viện khác xen vào các cuộc gọi hàm MPI của bạn, và đếm, thời gian, v.v.

Một công cụ lược tả MPI rất nhỏ là mpiP - nó cung cấp một bản tóm tắt ngắn về hoạt động MPI trong mã.

Thư viện IPM khá dễ xây dựng và cung cấp cho bạn nhiều lần và số lượng MPI, đồng thời cung cấp tệp HTML đẹp. Bạn đề cập đến PAPI; IPM cũng sẽ tích hợp các quầy PAPI nếu có. Chúng tôi sử dụng thường xuyên tại trung tâm của chúng tôi, và tôi nghĩ rằng điều này sẽ làm những gì bạn thích. Nếu bạn đã xây dựng chương trình của mình với các thư viện động cho MPI, bạn thậm chí không cần phải biên dịch lại để sử dụng nó (mpiP có cùng thuộc tính).

Jumpshot, đi kèm với MPICH2 nhưng có thể được xây dựng với bất kỳ MPI nào, thực sự hiển thị trên dòng thời gian mỗi hoạt động của MPI mất bao lâu.

OpenSpeedshop cung cấp các phép đo hiệu suất rất chi tiết về mã của bạn, làm nổi bật các dòng "đắt tiền" đặc biệt; nó cũng có một chế độ theo dõi MPI sẽ xác định thời gian MPI theo dòng mã. Có thể khó cài đặt.

Trên phần thương mại của quang phổ có Vampir từ TU Dresden và Bộ theo dõi và thu thập dữ liệu của Intel (ITAC). Vampir thu thập các dấu vết cấp nguồn, MPI và OpenMP bằng cách sử dụng thư viện VampirTrace nguồn mở cũng tích hợp với PAPI để cung cấp truy tìm sự kiện và truy tìm chi tiết. Dấu vết của VampirTrace có định dạng Open Trace có thể được đọc bởi nhiều công cụ khác ngoài Vampir.

ITAC là một phần của Intel Cluster Studio XE. Nó được thiết kế chủ yếu để làm việc với Intel MPI và chia sẻ cùng một mã tổ tiên với Vampir, cung cấp nhiều hay ít chức năng tương tự. Một trong những tính năng tuyệt vời của nó là trình kiểm tra độ chính xác thời gian chạy MPI tự động được bao gồm.

Allinea MAP là trình biên tập MPI từ Allinea cung cấp phân tích hiệu suất với trình duyệt nguồn được tích hợp hiển thị chi phí truyền thông/tính toán cùng với các dòng mã nguồn riêng lẻ. Nó cũng hiển thị biểu đồ cấp cao về thông tin hiệu suất, bao gồm bộ nhớ, hướng dẫn CPU và thông tin liên lạc.

Nhưng có các công cụ cấp cao khác không chỉ cung cấp báo cáo mà còn cung cấp lời khuyên. TFF perfexpert là một công cụ dựa trên dòng lệnh, có một số phép đo và cung cấp một số lời khuyên điều chỉnh hiệu năng. Scalasca ra khỏi Jülich, biên dịch lại mã của bạn với nhiều công cụ cấp nguồn và có thể chỉ ra sự mất cân bằng tải, đặc biệt là tập hợp MPI đắt tiền, v.v. Nó cũng có thể tích hợp với Vampir để phân tích dấu vết chi tiết.

+1

Tôi sẽ thêm [Vampir] (http://www.vampir.eu/) từ TU Dresden và Intel Trace Analyzer và Collector.Cả hai đều xuất phát từ cùng một tổ tiên và là những công cụ tuyệt vời và tinh vi để phân tích hiệu suất của MPI và dấu vết OpenMP nhưng tiếc là được cấp phép thương mại. Scalasca là mã nguồn mở nhưng không thực sự phù hợp với phân tích chi tiết cấp thấp và cho rằng nó tích hợp với Vampir (tích hợp yêu cầu giấy phép Vampir hợp lệ). [XMPI] (http://www.lam-mpi.org/software/xmpi/) được sử dụng để phân phối với LAM nhưng không được phát triển tích cực kể từ khi LAM sáp nhập với Open MPI. –

+0

Vâng, chúng rất tuyệt; Tôi chủ yếu không thêm chúng vì chúng là thương mại. Bạn có nghĩ rằng sẽ hữu ích khi thay đổi điều này thành một wiki cộng đồng và chỉ cần mọi người thêm đề xuất của họ? –

+0

Chà! Cảm ơn bạn rất nhiều cho cả hai bạn! Chỉ một câu hỏi nữa, vì tôi muốn thực hiện các phép đo trong cụm mà tôi đang sử dụng và tôi không có quyền quản trị, có thể cài đặt một trong các chương trình này trong thư mục của tôi không? Ngoài mpiP đã được cài đặt. IPM dường như có thể cài đặt mà không có đặc quyền quản trị, tôi có đúng không? Cảm ơn! –