See https://trac.mpich.org/projects/mpich/ticket/1074 and http://lists.mpich.org/pipermail/devel/2016-July/000717.html. Best, Jeff Sent from my iPhone
On Nov 20, 2016, at 5:55 PM, Rui Liu <[email protected]> wrote:
Hi folks,
I am working on a simple client/server program but I don’t want to use mpirun/mpiexec to start the program (In nature, I just want to adopt MPI API into my own project but cannot start it using mpirun). I mostly followed the singleton mode of MPI, using APIs like MPI_Open_port, MPI_Comm_connect, and MPI_Comm_accept. But it doesn’t work. The error info is presented as following,
[mpiexec@ciidaa-a01] match_arg (utils/args/args.c:159): unrecognized argument pmi_args [mpiexec@ciidaa-a01] HYDU_parse_array (utils/args/args.c:174): argument matching returned error [mpiexec@ciidaa-a01] parse_args (ui/mpich/utils.c:1596): error parsing input array [mpiexec@ciidaa-a01] HYD_uii_mpx_get_parameters (ui/mpich/utils.c:1648): unable to parse user arguments [mpiexec@ciidaa-a01] main (ui/mpich/mpiexec.c:153): error parsing parameters
Anyone knows how to achieve that? I attach my server and client key source code for your reference.
server side:
char myport[MPI_MAX_PORT_NAME]; MPI_Open_port(MPI_INFO_NULL, myport); cout << myport << endl; (assume myport is tag#0$description#ciidaa-a01$port#52985$ifname#10.10.10.1$, it always return string like this) MPI_Comm_accept(myport, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &client); MPI_Recv(&number, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, client, &status);
client side:
char name[] = "tag#0$description#ciidaa-a01$port#52985$ifname#10.10.10.1$"; MPI_Comm_connect(name, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &server); int number = -1 ; MPI_Send(&number, 1, MPI_INT, 0, 0, server);
Best, Rui
_______________________________________________ To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/devel