2016-04-04 69 views
0

Android için çapraz derlenmiş MPICH uygulamasına sahiptim ve yapılandırdım.mpiexec hata veriyor "mkstemp başarısız oldu Böyle bir dosya veya dizin yok"

$./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 

O bir şey olabilir: Android Sistemi aşağıdaki gibi parametre "n" 1'den büyük olması durumunda hatayı aşağıdaki ile yanıt Ancak

$./mpiexec -n 1 -launcher=fork ./mpi_hello_world        
Hello world from processor zero, rank 0 out of 1 processors 

şöyle Tek bir işlem spawn zaman iyi çalışır android oluşturulan geçici dosya adı ile ilgili? Lütfen yardım et.

+1

Sorun ya da çözümün burada olduğundan emin değilim, ancak bu noktada MPI geliştiricilerinin ve Android geliştiricilerinin kesişiminin muhtemelen sadece siz olduğunu söylemeliyim. MPICH'nin ne yapmaya çalıştığına dair daha fazla bilgi edinin, böylece Android kullanıcıları size yardımcı olabilir. Yine de, ilk bıçak, kullanmakta olduğunuz Android yüklemesinde mkstemp adlı bir program olmamasıdır. Bir yol eklemeniz veya bir alternatif oluşturmanız gerekebilir. –

+0

Paylaşılan bellek desteği olmadan MPICH oluşturursanız, 'mkstemp' işlevine gerek duyulmamalıdır. Yapılandırma satırına 'with-device = ch3: sock 'eklemeyi deneyin. Bununla birlikte, bu yapıda düğüm içi aktarımlar için performansınızı kaybedersiniz. – kraffenetti

+0

@kraffenetti, Yorumunuz için teşekkürler, zaten --with-device = ch3: çorap seçeneğini kullanıyorum. –

cevap

0

Sorun şu ki, Android dosya sisteminde, paylaşımlı bellek iletişimi için geçici dosyalar oluşturmak için kullanılan/tmp ve/dev/shm dizinlerine sahip değilsiniz. Bu nedenle, mkstemp() başarısız olur. Siz onları kullanırken mkdir, izinleri ayarlayın ve ch3: nemesis işe yarayacaktır.

İlgili konular