2008-12-07 36 views
7

Tôi có một chương trình C++ đang sử dụng thư viện openMPI để truyền thông điệp giữa các bộ xử lý khác nhau. Nó là một chương trình song song sử dụng một thuật toán di truyền để có được một giải pháp tốt cho vấn đề người bán hàng đi du lịch. Tôi đang cố gắng thiết lập môi trường MPI trên hai máy tính xử lý kép của tôi tại nhà của tôi để tôi có thể chạy nó. Khi tôi lần đầu tiên tạo chương trình này một năm trước, tôi đã có thể chạy nó tốt trên một cụm mà không được thiết lập bởi tôi. Vấn đề mà tôi đang gặp bây giờ là bất cứ khi nào tôi chạy nó, tất cả các quy trình đều nói rằng chúng có thứ hạng 0. Nếu tôi có 3 nút, thay vì chúng là các nút 1, 2 và 3, tất cả chúng đều là nút 0. Nếu bất cứ ai biết điều gì đang xảy ra, tôi chắc chắn sẽ đánh giá cao một số trợ giúp. Cảm ơn.OpenMPI: Tất cả các nút chạy dưới dạng nút 0

+0

Có lẽ bạn có thể hiển thị các lệnh/tập lệnh mà bạn sử dụng để thiết lập các quy trình? – Svante

Trả lời

1

Có lẽ khởi tạo của bạn sai hoặc bạn gặp một số lỗi khi kiểm tra thứ hạng. Đây nên là đúng cách để làm điều này:

MPI_Init(&argc, &argv); 
MPI_Comm_size(MPI_COMM_WORLD, &size); 
MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
printf("I am process %d of %d.\n", rank, size); 

Nhưng tôi giả sử bạn đã làm đúng đó, vì vậy tôi đồng ý với Harleqin, cho thấy các lệnh/script bạn sử dụng sẽ rất hữu ích.

3

Tôi đã tìm ra vấn đề là gì. Tôi đã cài đặt hai gói mà cả hai đều sử dụng lệnh mpirun. Tôi tin rằng đó là cả hai gói openmpi và mpich. Tôi đã gỡ bỏ openmpi và nó hoạt động.

Các vấn đề liên quan