>> 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
[email protected]
https://lists.open-mpi.org/mailman/listinfo/users