Ich habe MPICH für Android kompiliert und konfiguriert. Es funktioniert gut, wenn ich einen einzigen Prozess erzeugen alsmpiexec löst Fehler "mkstemp fehlgeschlagen Keine solche Datei oder Verzeichnis"
$./mpiexec -n 1 -launcher=fork ./mpi_hello_world
Hello world from processor zero, rank 0 out of 1 processors
folgt jedoch das Android-System mit folgenden Fehler reagiert, wenn der Parameter „n“ größer als 1 ist wie folgt:
$./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
Es kann etwas sein im Zusammenhang mit dem Namen der Temp-Datei auf Android erstellt wird? Bitte helfen Sie.
Ich bin nicht sicher, was das Problem oder die Lösung hier ist, aber ich muss sagen, dass die Kreuzung der MPI-Entwickler und Android-Entwickler an dieser Stelle wahrscheinlich nur Sie, also müssen Sie genug zu graben Erfahren Sie mehr darüber, was MPICH versucht, damit Android-Leute Ihnen helfen können. Obwohl, ein erster Stich wäre, dass es kein Programm namens mkstemp in der Android-Installation gibt, die Sie verwenden. Sie müssen möglicherweise einen Pfad hinzufügen oder eine Alternative herausfinden. –
Wenn Sie MPICH ohne Unterstützung für gemeinsamen Speicher erstellen, sollte die 'mkstemp'-Funktion nicht benötigt werden. Fügen Sie Ihrer Konfigurationszeile '--with-device = ch3: sock' hinzu. In diesem Build verlieren Sie jedoch die Leistung für Übertragungen innerhalb von Knoten. – kraffenetti
@kraffenetti, Danke für den Kommentar, ich benutze bereits --with-device = ch3: sock option. –