I do pass the ompi-server argument to both mpirun calls, and they find the orte-server instance, since they can do the publish and lookup calls. But when I then do a MPI_Comm_connect on the port (MPI_Open_port) returned by MPI_Lookup_name, I get the error that they can't find each other. This comes from the BML and I specify only the self and TCP BTLs can be used. Should the BML be able to figure out the other processes' address just from the integer in the port?
Thanks, Pieter ________________________________ From: devel <devel-boun...@lists.open-mpi.org> on behalf of r...@open-mpi.org <r...@open-mpi.org> Sent: Tuesday, November 8, 2016 2:30:52 PM To: OpenMPI Devel Subject: Re: [OMPI devel] PMIx in 2.x Yes, they should find one another. You do have to pass the server’s URI on the mpirun cmd line so it can find it. On Nov 8, 2016, at 12:40 PM, Pieter Noordhuis <piet...@fb.com<mailto:piet...@fb.com>> wrote: I'll open an issue on GitHub with more details. As far as the accept/connect issue, do you expect the processes to find each other if they do a publish/lookup through the same orte-server if they are started separately? I can try with master as well. I'm working off of 2.0.1 now (using stable because I want to rule out any other issues that might be present in master). Thanks, Pieter ________________________________ From: devel <devel-boun...@lists.open-mpi.org<mailto:devel-boun...@lists.open-mpi.org>> on behalf of r...@open-mpi.org<mailto:r...@open-mpi.org> <r...@open-mpi.org<mailto:r...@open-mpi.org>> Sent: Tuesday, November 8, 2016 12:17:29 PM To: OpenMPI Devel Subject: Re: [OMPI devel] PMIx in 2.x Should be handled more gracefully, of course. When a proc departs, we cleanup any published storage that wasn’t specifically indicated to be retained for a longer period of time (see pmix_common.h for the various supported options). You’ve obviously found a race condition, and we’ll have to track it down. I gather you are working off of the OMPI 2.x repo? The PMIx support over there is fairly far behind the OMPI master, though neither branches have seen any real testing with the orte-server support. I’m a little buried at the moment, but can try to check that out in a bit. On Nov 8, 2016, at 10:30 AM, Pieter Noordhuis <piet...@fb.com<mailto:piet...@fb.com>> wrote: ... accidentally sent before finishing. This error happened because lookup was returning multiple published entries, N-1 of which had already disconnected. Should this case be handled more gracefully, or is it expected to fail like this? Thanks, Pieter ________________________________ From: Pieter Noordhuis Sent: Tuesday, November 8, 2016 10:29:02 AM To: OpenMPI Devel Subject: Re: [OMPI devel] PMIx in 2.x Ah, that's good to know. I'm trying to wire things up through orte-server on 2.x now and am at the point where I can do an MPI_Publish_name on one node and MPI_Lookup_name on another (both started through their own mpirun calls). Then, when the first process does an MPI_Comm_accept and the second process does an MPI_Comm_connect on that port, I'm getting an unreachable error from ompi/mca/bml/r2/bml_r2.c. I don't see the IPs of either process being communicated and with just the PMIx port name they won't be able to connect. Is there anything I'm missing? Also, when trying to get this to work, I kept orte-server running between runs, and saw a rather alarming error when doing a lookup: [[8602,0],0] recvd lookup returned data ServerName of type 3 from source [[49864,1],0] [[8602,0],0] recvd lookup returned data ServerName of type 3 from source [[10062,1],0] PACK-PMIX-VALUE: UNSUPPORTED TYPE 0 PMIX ERROR: ERROR in file src/server/pmix_server.c at line 1881 ________________________________ From: devel <devel-boun...@lists.open-mpi.org<mailto:devel-boun...@lists.open-mpi.org>> on behalf of r...@open-mpi.org<mailto:r...@open-mpi.org> <r...@open-mpi.org<mailto:r...@open-mpi.org>> Sent: Monday, November 7, 2016 12:16:50 PM To: OpenMPI Devel Subject: Re: [OMPI devel] PMIx in 2.x I’m not sure your description of the 1.x behavior is entirely accurate. What actually happened in that scenario is that the various mpirun’s would connect to each other, proxying the various MPI dynamic calls across each other. You had to tell each mpirun how to find the other - this was in the “port” string you might have been using. It might be possible to recreate it by adding the PMIx server address of the other mpirun to the string, though it would still be an ugly way to start a job. The other option in 1.x was to start the orte-server and let it provide the rendezvous point. This option remains - it just uses PMIx calls to implement the rendezvous. On Nov 7, 2016, at 9:23 AM, Pieter Noordhuis <piet...@fb.com<mailto:piet...@fb.com>> wrote: Hi folks, Question about PMIx in the 2.x tree: on 1.x I used to be able to start N individual jobs through mpirun with -np1 and have them gradually join a single intercommunicator through MPI_Comm_accept, MPI_Comm_connect, MPI_Intercomm_create, and MPI_Intercomm_merge. The port that one of the processes would listen on included its IP address and others would connect to that. I tried porting this code to the 2.x tree and found the port is now just an integer. Reading up on the changelogs and commit history, I found PMIx replaced DPM starting with 2.x. Reading up on PMIx and OpenMPI, my understanding is that OpenMPI ships with a PMIx server implementation, and that all processes in the job have to be connected to this PMIx server at start. It looks like MPI_Comm_accept and MPI_Comm_connect communicate through k/v pairs in the PMIx server. This means it's no longer possible to start jobs through multiple mpirun executions and then join them into a single intercommunicator at runtime. Is my understanding correct? Thank you, Pieter _______________________________________________ devel mailing list devel@lists.open-mpi.org<mailto:devel@lists.open-mpi.org> https://rfd.newmexicoconsortium.org/mailman/listinfo/devel<https://urldefense.proofpoint.com/v2/url?u=https-3A__rfd.newmexicoconsortium.org_mailman_listinfo_devel&d=DQMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=tuQ8EqTFx1hLmZlGmHhKyQ&m=Ko4MqU7Lpf3quKyo-Iml09eDyTnf9tsKHvuTE8dG88g&s=yUt8936rdnMy7-4MI8taEASydqFMg5eY8Uzb960HBFg&e=> _______________________________________________ devel mailing list devel@lists.open-mpi.org<mailto:devel@lists.open-mpi.org> https://rfd.newmexicoconsortium.org/mailman/listinfo/devel<https://urldefense.proofpoint.com/v2/url?u=https-3A__rfd.newmexicoconsortium.org_mailman_listinfo_devel&d=DQMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=tuQ8EqTFx1hLmZlGmHhKyQ&m=UcLPYEEqXenFPuKX59icTAh4eAeNZdUBKKfaSnO6pQg&s=Y9XQZqG6q8jSq7R9_jAfm2cPAY9Z5upHqvKIjki5GcE&e=> _______________________________________________ devel mailing list devel@lists.open-mpi.org<mailto:devel@lists.open-mpi.org> https://rfd.newmexicoconsortium.org/mailman/listinfo/devel<https://urldefense.proofpoint.com/v2/url?u=https-3A__rfd.newmexicoconsortium.org_mailman_listinfo_devel&d=DQMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=tuQ8EqTFx1hLmZlGmHhKyQ&m=MaX3Xey2GPtHb5VPQ4ROKrt19ESdHFOkZ4FUQhrHtus&s=5nc4jyq7QNEHedaYNjuW8-11ADM6dXL0fzxmSxK5hu8&e=>
_______________________________________________ devel mailing list devel@lists.open-mpi.org https://rfd.newmexicoconsortium.org/mailman/listinfo/devel