2010-02-16 32 views
22

Tôi định sử dụng MPI cho mã C++ của mình. Tôi đã cài đặt MPICH2 trên máy tính của mình. Nhưng tôi không biết nhiều về MPI và hy vọng sẽ tìm thấy một số tài liệu để đọc. Tôi hy vọng các chuyên gia có thể giới thiệu một số materails tốt cho tôi. Mọi lời khuyên sẽ được đánh giá cao.Hướng dẫn tốt nhất cho việc học MPI cho C++ là gì?

+0

MPI: Giao diện truyền tin nhắn, giao thức truyền thông máy tính để tính toán song song. Xem http://en.wikipedia.org/wiki/Message_Passing_Interface –

Trả lời

14

Tôi giả sử bạn đã biết cách lập trình C++ khá tốt và có hiểu biết cơ bản về lập trình song song (hoặc ít nhất biết cách bạn muốn song song mã của mình).

Tôi sẽ xem trước cuốn sách Using MPI trước tiên. Sử dụng MPI 2 là phần tiếp theo trong cuốn sách thảo luận về việc sử dụng các bit mới trong MPi-2. Cả hai cuốn sách được viết bởi những người đã viết thư viện MPI và đứng đầu nỗ lực tiêu chuẩn hóa. Một điều tốt đẹp về Sử dụng MPI là nó có sẵn trực tuyến để bạn có thể kiểm tra nó ra w/o chi tiêu tiền :-)

+1

+1 từ tôi. Một vấn đề nhỏ, có thể hoặc không có vấn đề gì: chuyển đổi giữa mã mẫu Fortran, C và C++. – stephan

+0

Tôi đồng ý rằng nó có thể hơi khó chịu, nhưng tôi không thấy nó là một thiệt hại đáng kể cho sự hiểu biết khi tôi đang sử dụng cuốn sách. –

6

Parallel Programming with MPI bởi Peter S. Pacheco là một cuốn sách giới thiệu hay. Lưu ý, cuốn sách sử dụng C, nhưng nó phải là một quá trình chuyển đổi dễ dàng để sử dụng các ràng buộc C + + MPI.

+0

+1 Cuốn sách này là một giới thiệu tuyệt vời về lập trình MPI. –

+0

Tôi nghĩ cuốn sách là một cách hay để học lập trình với MPI. Nếu bạn tìm thấy câu trả lời của tôi, bạn sẽ khám phá ra rằng tôi không ủng hộ việc sử dụng C++ cho bất kỳ phát triển MPI mới nào. Vì bạn không đề cập đến một sự thận trọng tương tự, không có upvote. Bạn vẫn nhận được một bình luận hỗ trợ. ;) –

+0

Sách của Pacheco được viết cách đây nhiều năm. Nó vẫn hữu ích? –

2

một số get bắt đầu của nhãn hiệu có thể được tìm thấy trên LAM/MPI site

2

Mpich2 đi kèm với một số ví dụ trong C++/C. có lẽ nổi tiếng nhất là cpi, tính toán pi song song. Đọc qua chương trình cùng với sách hướng dẫn/sách mà người khác đề xuất. Bằng cách này, bạn sẽ thấy mã làm việc thực tế ngay lập tức và có thể thực hiện các sửa đổi của riêng bạn để chơi với mọi thứ.

5

Tôi khuyên bạn không nên sử dụng các liên kết MPI C++ cho bất kỳ sự phát triển mới nào. Bản thân chương trình có thể bằng C++, nhưng đầu tư thêm nỗ lực để sử dụng giao diện C vào thư viện MPI.

Diễn đàn MPI đang ngừng sử dụng các liên kết C++. Vì vậy, việc triển khai MPI trong tương lai có thể sẽ giảm hỗ trợ cho C++. Nói chung, hầu hết các triển khai đều tiết kiệm được các tính năng khi nói đến C++. Những điều cơ bản sẽ hoạt động, nhưng những thứ như quy trình động (ví dụ: đẻ trứng), giao diện PMPI, v.v. được hỗ trợ ít hơn.

Các liên kết C và Fortran được hỗ trợ hợp lý bởi tất cả các triển khai chính và sẽ tiếp tục được hỗ trợ trong tương lai gần.

4

Khi @semiuseless chỉ ra, diễn đàn MPI đang ngừng sử dụng các liên kết C++. Một trong những lý do cho điều đó là boost MPI interface thực hiện công việc tốt hơn nhiều.