Hello Gilles, Ok, I believe I have a simple toy app running as I think it should: 'n' parent processes running under mpi_comm_world, each one spawning its own 'm' child processes (each child group work together nicely, returning the expected result for an mpi_allreduce call).
Now, as I mentioned before, the apps I want to run in the spawned processes are third party mpi apps and I don't think it will be possible to exchange messages with them from my app. So, I do I tell when the spawned processes have finnished running? All I have to work with is the intercommunicator returned from the mpi_comm_spawn call... Alex 2014-12-12 2:42 GMT-02:00 Alex A. Schmidt <a...@ufsm.br>: > > Gilles, > > Well, yes, I guess.... > > I'll do tests with the real third party apps and let you know. > These are huge quantum chemistry codes (dftb+, siesta and Gaussian) > which greatly benefits from a parallel environment. My code is just > a front end to use those, but since we have a lot of data to process > it also benefits from a parallel environment. > > Alex > > > 2014-12-12 2:30 GMT-02:00 Gilles Gouaillardet < > gilles.gouaillar...@iferc.org>: >> >> Alex, >> >> just to make sure ... >> this is the behavior you expected, right ? >> >> Cheers, >> >> Gilles >> >> >> On 2014/12/12 13:27, Alex A. Schmidt wrote: >> >> Gilles, >> >> Ok, very nice! >> >> When I excute >> >> do rank=1,3 >> call MPI_Comm_spawn('hello_world',' >> ',5,MPI_INFO_NULL,rank,MPI_COMM_WORLD,my_intercomm,MPI_ERRCODES_IGNORE,status) >> enddo >> >> I do get 15 instances of the 'hello_world' app running: 5 for each parent >> rank 1, 2 and 3. >> >> Thanks a lot, Gilles. >> >> Best regargs, >> >> Alex >> >> >> >> >> 2014-12-12 1:32 GMT-02:00 Gilles Gouaillardet <gilles.gouaillar...@iferc.org >> >> : >> >> Alex, >> >> just ask MPI_Comm_spawn to start (up to) 5 tasks via the maxprocs >> parameter : >> >> int MPI_Comm_spawn(char *command, char *argv[], int maxprocs, >> MPI_Info info, >> int root, MPI_Comm comm, MPI_Comm *intercomm, >> int array_of_errcodes[]) >> >> INPUT PARAMETERS >> maxprocs >> - maximum number of processes to start (integer, significant >> only at root) >> >> Cheers, >> >> Gilles >> >> >> On 2014/12/12 12:23, Alex A. Schmidt wrote: >> >> Hello Gilles, >> >> Thanks for your reply. The "env -i PATH=..." stuff seems to work!!! >> >> call system("sh -c 'env -i PATH=/usr/lib64/openmpi/bin:/bin mpirun -n 2 >> hello_world' ") >> >> did produce the expected result with a simple openmi "hello_world" code I >> wrote. >> >> I might be harder though with the real third party app I have in mind. And >> I realize >> getting passed over a job scheduler with this approach might not work at >> all... >> >> I have looked at the MPI_Comm_spawn call but I failed to understand how it >> could help here. For instance, can I use it to launch an mpi app with the >> option "-n 5" ? >> >> Alex >> >> 2014-12-12 0:36 GMT-02:00 Gilles Gouaillardet <gilles.gouaillar...@iferc.org >> >> >> : >> >> Alex, >> >> can you try something like >> call system(sh -c 'env -i /.../mpirun -np 2 /.../app_name') >> >> -i start with an empty environment >> that being said, you might need to set a few environment variables >> manually : >> env -i PATH=/bin ... >> >> and that being also said, this "trick" could be just a bad idea : >> you might be using a scheduler, and if you empty the environment, the >> scheduler >> will not be aware of the "inside" run. >> >> on top of that, invoking system might fail depending on the interconnect >> you use. >> >> Bottom line, i believe Ralph's reply is still valid, even if five years >> have passed : >> changing your workflow, or using MPI_Comm_spawn is a much better approach. >> >> Cheers, >> >> Gilles >> >> On 2014/12/12 11:22, Alex A. Schmidt wrote: >> >> Dear OpenMPI users, >> >> Regarding to this previous >> post<http://www.open-mpi.org/community/lists/users/2009/06/9560.php> >> <http://www.open-mpi.org/community/lists/users/2009/06/9560.php> >> <http://www.open-mpi.org/community/lists/users/2009/06/9560.php> >> <http://www.open-mpi.org/community/lists/users/2009/06/9560.php> >> <http://www.open-mpi.org/community/lists/users/2009/06/9560.php> >> <http://www.open-mpi.org/community/lists/users/2009/06/9560.php> >> <http://www.open-mpi.org/community/lists/users/2009/06/9560.php> >> <http://www.open-mpi.org/community/lists/users/2009/06/9560.php> from 2009, >> I wonder if the reply >> from Ralph Castain is still valid. My need is similar but quite simpler: >> to make a system call from an openmpi fortran application to run a >> third party openmpi application. I don't need to exchange mpi messages >> with the application. I just need to read the resulting output file >> generated >> by it. I have tried to do the following system call from my fortran openmpi >> code: >> >> call system("sh -c 'mpirun -n 2 app_name") >> >> but I get >> >> ********************************************************** >> >> Open MPI does not support recursive calls of mpirun >> >> ********************************************************** >> >> Is there a way to make this work? >> >> Best regards, >> >> Alex >> >> >> >> >> _______________________________________________ >> users mailing listus...@open-mpi.org >> >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2014/12/25966.php >> >> >> >> _______________________________________________ >> users mailing listus...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this >> post:http://www.open-mpi.org/community/lists/users/2014/12/25967.php >> >> >> >> _______________________________________________ >> users mailing listus...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2014/12/25968.php >> >> >> >> _______________________________________________ >> users mailing listus...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this >> post:http://www.open-mpi.org/community/lists/users/2014/12/25969.php >> >> >> >> _______________________________________________ >> users mailing listus...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2014/12/25970.php >> >> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2014/12/25971.php >> >