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 будет работать.

Другие вопросы по тегам