Nếu chương trình của bạn chỉ là một vòng lặp lớn sử dụng OpenMP có thể đơn giản như viết:
#pragma omp parallel for
OpenMP là chỉ hữu ích cho lập trình bộ nhớ chia sẻ, mà trừ cluster của bạn đang chạy một cái gì đó như kerrighed có nghĩa là phiên bản song song sử dụng OpenMP sẽ chỉ chạy trên nhiều nhất một nút tại một thời điểm.
MPI dựa trên việc truyền thông báo và hơi phức tạp hơn một chút để bắt đầu. Ưu điểm là mặc dù chương trình của bạn có thể chạy trên nhiều nút cùng một lúc, truyền thông điệp giữa chúng và khi cần. Nếu bạn đã nói "đối với các tập dữ liệu khác nhau", có vẻ như sự cố của bạn có thể rơi vào danh mục "lúng túng song song", nếu bạn cung cấp hơn 100 bộ dữ liệu, bạn có thể thiết lập trình lập lịch biểu để chạy bộ dữ liệu tập dữ liệu trên mỗi nút cho đến khi chúng được hoàn tất, không cần phải sửa đổi mã của bạn và gần như tăng tốc 100 lần so với chỉ sử dụng một nút. Ví dụ: nếu cụm của bạn đang sử dụng condor làm bộ lập lịch thì bạn có thể gửi 1 công việc cho mỗi mục dữ liệu cho vũ trụ "vanilla", chỉ thay đổi dòng "Arguments =" của mô tả công việc. (Có nhiều cách khác để làm điều này cho Condor có thể hợp lý hơn và cũng có những thứ tương tự cho mô-men xoắn, sge, vv)
+1 để đề cập đến kerrighed – srean
Cảm ơn. Tôi vui chơi với điều đó cho công việc một thời gian trở lại sau khi mosix/openmosix đã chết một cái chết! – Flexo