Я могу запустить свою программу mpi на одной машине с любым количеством процессов, но не могу сделать это на нескольких машинах. У меня есть файл «machines», в котором указано количество процессов на хостах:
localhost:6
another_host:4
Ниже я привел 3 примера:
// When I run the program on only localhost, everything is OK.
mpirun -n 10 ./myMpiProg parameter1 parameter2
// In this case, everything is OK, too.
mpirun -f machinesFile -n 10 ./myMpiProg parameter1 parameter2
// This is also OK
mpirun -n 8 ./myMpiProg parameter1 parameter2
Когда я изменил файл машины, например:
localhost:6
another_host:2
...
// But this does not work.
mpirun -f machinesFile -n 8 ./myMpiProg parameter1 parameter2
Приведенная ниже ошибка возникает, когда я запускаю программу в распределенной среде. Что еще интересно, так всегда бывает с некоторыми дистрибутивами: типа 8 процессов, 12 процессов. И это никогда не происходит с 10 процессами.
terminate called after throwing an instance of 'std::length_error' what(): vector::reserve
Итак, есть ли разница между запуском программы mpi на одной машине и на нескольких машинах?
./myMpiProg ...
чем-то таким простым, какhostname
? - person Hristo Iliev   schedule 12.10.2015