>> The MPI Ports functionality (chapter 10.4 of MPI 3.1), mainly consisting of >> MPI_Open_port, MPI_Comm_accept and >> MPI_Comm_connect is not usuable without running an ompi-server as a third >> process? > > Yes, that’s correct. The reason for moving in that direction is that the > resource managers, as they continue to > integrate PMIx into them, are going to be providing that third party. This > will make connect/accept much easier to use, > and a great deal more scalable. > > See https://github.com/pmix/RFCs/blob/master/RFC0003.md for an explanation.
Ok, thanks for that input. I haven't heard of pmix so far (only as part of some ompi error messages). Using ompi-server -d -r 'ompi.connect' I was able to publish and retrieve the port name, however, still no connection could be established. % mpirun -n 1 --ompi-server "file:ompi.connect" ./a.out A Published port 3044605953.0:664448538 % mpirun -n 1 --ompi-server "file:ompi.connect" ./a.out B Looked up port 3044605953.0:664448538 at this point, both processes hang. The code is: #include <iostream> #include <string> #include <mpi.h> int main(int argc, char **argv) { MPI_Init(&argc, &argv); std::string a(argv[1]); char p[MPI_MAX_PORT_NAME]; MPI_Comm icomm; if (a == "A") { MPI_Open_port(MPI_INFO_NULL, p); MPI_Publish_name("foobar", MPI_INFO_NULL, p); printf("Published port %s\n", p); MPI_Comm_accept(p, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &icomm); } if (a == "B") { MPI_Lookup_name("foobar", MPI_INFO_NULL, p); printf("Looked up port %s\n", p); MPI_Comm_connect(p, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &icomm); } MPI_Finalize(); return 0; } Do you have any idea? Best, Florian _______________________________________________ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users