mpiexec выдает ошибку "mkstemp fail is Нет такого файла или каталога"
Я скомпилировал MPICH для Android и настроил его. Он отлично работает, когда я порождаю один процесс следующим образом
$./mpiexec -n 1 -launcher=fork ./mpi_hello_world
Hello world from processor zero, rank 0 out of 1 processors
Однако система Android отвечает следующей ошибкой, если параметр "n" больше 1, следующим образом:
$./mpiexec -n 2 -launcher=fork ./mpi_hello_world
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(474).................:
MPID_Init(190)........................: channel initialization failed
MPIDI_CH3_Init(89)....................:
MPID_nem_init(272)....................:
MPIDI_CH3I_Seg_commit(327)............:
MPIU_SHMW_Seg_create_and_attach(897)..:
MPIU_SHMW_Seg_create_attach_templ(610): mkstemp failed No such file or directory
Это может быть что-то связано с именем временного файла, создаваемого на Android? Пожалуйста помоги.
1 ответ
Проблема в том, что в файловой системе Android нет каталогов /tmp и /dev/shm, которые необходимы для создания временных файлов для обмена с общей памятью. Из-за этого mkstemp() потерпит неудачу. mkdir их, пока вы su, установите разрешения и ch3:nemesis будет работать.