Let me rephrase the previous message: Putting "/bin/sh" in command with info key "ompi_non_mpi" set to ".true." (if command is empty, mpi_comm_spawn tries to execute ' ') of mpi_comm_spawn and "-c" "mpirun -n 1 myapp" in args results in this message:
********************************************************** Open MPI does not support recursive calls of mpirun ********************************************************** Putting a single string in args as "-c mpirun -n 1 myapp" or "-c 'mpirun -n 1 myapp' " returns /usr/bin/sh: - : invalid option Alex 2014-12-17 21:47 GMT-02:00 Alex A. Schmidt <a...@ufsm.br>: > > Putting "/bin/sh" in command with info key "ompi_non_mpi" set to > ".true." > (if command is empty, mpi_comm_spawn tries to execute ' ') of > mpi_comm_spawn and "-c" "mpirun -n 1 myapp" in args results in > this message: > > /usr/bin/sh: -c: option requires an argument > > Putting a single string in args as "-c mpirun -n 1 myapp" or "-c 'mpirun > -n 1 myapp' " > returns > > /usr/bin/sh: - : invalid option > > Alex > > 2014-12-17 20:17 GMT-02:00 George Bosilca <bosi...@icl.utk.edu>: >> >> I don't think this has any chance of working. The redirection is >> something interpreted by the shell, and when Open MPI "fork-exec" a process >> it does not behave as the shell. >> >> Thus a potentially non-portable solution would be to instead of launching >> the mpirun directly to launch it through a shell. Maybe something like >> "/bin/sh", "-c", "mpirun -n 1 myapp". >> >> George. >> >> >> On Wed, Dec 17, 2014 at 5:02 PM, Alex A. Schmidt <a...@ufsm.br> wrote: >> >>> Ralph, >>> >>> Sorry, "<" as an element of argv to mpi_comm_spawn is interpreted just >>> the >>> same, as another parameter by the spawnee process. >>> >>> But I am confused: wouldn't it be redundant to put "mpirun" "-n" "1" >>> "myapp" >>> as elements of argv, considering role of the other parameters of >>> mpi_comm_spawn >>> like the 1st and 3rd ? >>> >>> Imho, it seems to me that stdin and stdout should be keys to "info" and >>> the >>> respective filenames the values of those keys, if that is possible to >>> implement... >>> >>> Alex >>> >>> >>> >>> 2014-12-17 15:16 GMT-02:00 Ralph Castain <r...@open-mpi.org>: >>>> >>>> Have you tried putting the "<" as a separate parameter? In other words, >>>> since you are specifying the argv, you have to specify each of them >>>> separately. So it looks more like: >>>> >>>> "mpirun", "-n", "1", "myapp", "<", "stdinfile" >>>> >>>> Does that work? >>>> Ralph >>>> >>>> >>>> On Wed, Dec 17, 2014 at 8:07 AM, Alex A. Schmidt <a...@ufsm.br> wrote: >>>> >>>>> Ralph, >>>>> >>>>> I am afraid I will have to insist on i/o redirection matter >>>>> for the spawnee process. >>>>> >>>>> I have a "child" mpi code that do just 2 things: read the 3 parameters >>>>> passed to it and print them, and then read data from stdin and show >>>>> it. >>>>> So, if "stdin_file" is a text file with two lines, say: >>>>> >>>>> 10 >>>>> 20 >>>>> >>>>> executing "mpirun -n 1 child A B < stdin_file" wiil ouput two lines: >>>>> >>>>> [A] [B] [] >>>>> 10 20 >>>>> >>>>> On the other hand , calling "child" from >>>>> MPI_Comm_spawn("child",args,...) >>>>> where >>>>> >>>>> args(1) = "A" >>>>> args(2) = "B" >>>>> args(3) ="< stdin_file" >>>>> args(4) = " " >>>>> >>>>> will make "child" outputs only 1 line >>>>> >>>>> [A] [B] [< stdin_file] >>>>> >>>>> and then fails because there is not stdin data to read from. >>>>> >>>>> Please, note that surprisingly the whole string "< stdin_file" is >>>>> interpreted >>>>> as a third parameter to "child" and not a stdin... >>>>> >>>>> Alex >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 2014-12-15 17:26 GMT-02:00 Alex A. Schmidt <a...@ufsm.br>: >>>>> >>>>>> Ralph, >>>>>> >>>>>> I guess you mean "call mpi_comm_spawn( 'siesta', '< infile' , 2 ,...)" >>>>>> >>>>>> to execute 'mpirun -n 2 siesta < infile' on the spawnee side. That >>>>>> was >>>>>> my first choice. Well, siesta behaves as if no stdin file was >>>>>> present... >>>>>> >>>>>> Alex >>>>>> >>>>>> >>>>>> 2014-12-15 17:07 GMT-02:00 Ralph Castain <r...@open-mpi.org>: >>>>>>> >>>>>>> You should be able to just include that in your argv that you pass >>>>>>> to the Comm_spawn API. >>>>>>> >>>>>>> >>>>>>> On Mon, Dec 15, 2014 at 9:27 AM, Alex A. Schmidt <a...@ufsm.br> >>>>>>> wrote: >>>>>>> >>>>>>>> George, >>>>>>>> >>>>>>>> Thanks for the tip. In fact, calling mpi_comm_spawn right away >>>>>>>> with MPI_COMM_SELF >>>>>>>> has worked for me just as well -- no subgroups needed at all. >>>>>>>> >>>>>>>> I am testing this openmpi app named "siesta" in parallel. The >>>>>>>> source code is available, >>>>>>>> so making it "spawn ready" by adding the pair mpi_comm_get_parent >>>>>>>> + mpi_comm_disconnect >>>>>>>> into the main code can be done. If it works, maybe the siesta's >>>>>>>> developers can be convinced >>>>>>>> to add this feature in a future release. >>>>>>>> >>>>>>>> However, siesta is launched only by specifying input/output files >>>>>>>> with i/o redirection like >>>>>>>> >>>>>>>> mpirun -n <*some number*> siesta < infile > outfile >>>>>>>> >>>>>>>> So far, I could not find anything about how to set an stdin file >>>>>>>> for an spawnee process. >>>>>>>> Specifiyng it in a app context file doesn't seem to work. Can it be >>>>>>>> done? Maybe through >>>>>>>> an MCA parameter? >>>>>>>> >>>>>>>> Alex >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 2014-12-15 2:43 GMT-02:00 George Bosilca <bosi...@icl.utk.edu>: >>>>>>>>> >>>>>>>>> Alex, >>>>>>>>> >>>>>>>>> The code looks good, and is 100% MPI standard accurate. >>>>>>>>> >>>>>>>>> I would change the way you create the subcoms in the parent. You >>>>>>>>> do a lot of useless operations, as you can achieve exactly the same >>>>>>>>> outcome >>>>>>>>> (one communicator per node), either by duplicating MPI_COMM_SELF or >>>>>>>>> doing >>>>>>>>> an MPI_Comm_split with the color equal to your rank. >>>>>>>>> >>>>>>>>> George. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, Dec 14, 2014 at 2:20 AM, Alex A. Schmidt <a...@ufsm.br> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Sorry, guys. I don't think the newbie here can follow any >>>>>>>>>> discussion >>>>>>>>>> beyond basic mpi... >>>>>>>>>> >>>>>>>>>> Anyway, if I add the pair >>>>>>>>>> >>>>>>>>>> call MPI_COMM_GET_PARENT(mpi_comm_parent,ierror) >>>>>>>>>> call MPI_COMM_DISCONNECT(mpi_comm_parent,ierror) >>>>>>>>>> >>>>>>>>>> on the spawnee side I get the proper response in the spawning >>>>>>>>>> processes. >>>>>>>>>> >>>>>>>>>> Please, take a look at the attached toy codes parent.F and >>>>>>>>>> child.F >>>>>>>>>> I've been playing with. 'mpirun -n 2 parent' seems to work as >>>>>>>>>> expected. >>>>>>>>>> >>>>>>>>>> Alex >>>>>>>>>> >>>>>>>>>> 2014-12-13 23:46 GMT-02:00 Gilles Gouaillardet < >>>>>>>>>> gilles.gouaillar...@gmail.com>: >>>>>>>>>>> >>>>>>>>>>> Alex, >>>>>>>>>>> >>>>>>>>>>> Are you calling MPI_Comm_disconnect in the 3 "master" tasks and >>>>>>>>>>> with the same remote communicator ? >>>>>>>>>>> >>>>>>>>>>> I also read the man page again, and MPI_Comm_disconnect does not >>>>>>>>>>> ensure the remote processes have finished or called >>>>>>>>>>> MPI_Comm_disconnect, so >>>>>>>>>>> that might not be the thing you need. >>>>>>>>>>> George, can you please comment on that ? >>>>>>>>>>> >>>>>>>>>>> Cheers, >>>>>>>>>>> >>>>>>>>>>> Gilles >>>>>>>>>>> >>>>>>>>>>> George Bosilca <bosi...@icl.utk.edu> wrote: >>>>>>>>>>> MPI_Comm_disconnect should be a local operation, there is no >>>>>>>>>>> reason for it to deadlock. I looked at the code and everything is >>>>>>>>>>> local >>>>>>>>>>> with the exception of a call to PMIX.FENCE. Can you attach to your >>>>>>>>>>> deadlocked processes and confirm that they are stopped in the >>>>>>>>>>> pmix.fence? >>>>>>>>>>> >>>>>>>>>>> George. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Sat, Dec 13, 2014 at 8:47 AM, Alex A. Schmidt <a...@ufsm.br> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi >>>>>>>>>>>> >>>>>>>>>>>> Sorry, I was calling mpi_comm_disconnect on the group comm >>>>>>>>>>>> handler, not >>>>>>>>>>>> on the intercomm handler returned from the spawn call as it >>>>>>>>>>>> should be. >>>>>>>>>>>> >>>>>>>>>>>> Well, calling the disconnect on the intercomm handler does halt >>>>>>>>>>>> the spwaner >>>>>>>>>>>> side but the wait is never completed since, as George points >>>>>>>>>>>> out, there is no >>>>>>>>>>>> disconnect call being made on the spawnee side.... and that >>>>>>>>>>>> brings me back >>>>>>>>>>>> to the beginning of the problem since, being a third party app, >>>>>>>>>>>> that call would >>>>>>>>>>>> never be there. I guess an mpi wrapper to deal with that could >>>>>>>>>>>> be made for >>>>>>>>>>>> the app, but I fell the wrapper itself, at the end, would face >>>>>>>>>>>> the same problem >>>>>>>>>>>> we face right now. >>>>>>>>>>>> >>>>>>>>>>>> My application is a genetic algorithm code that search optimal >>>>>>>>>>>> configuration >>>>>>>>>>>> (minimum or maximum energy) of cluster of atoms. The work flow >>>>>>>>>>>> bottleneck >>>>>>>>>>>> is the calculation of the cluster energy. For the cases which >>>>>>>>>>>> an analytical >>>>>>>>>>>> potential is available the calculation can be made internally >>>>>>>>>>>> and the workload >>>>>>>>>>>> is distributed among slaves nodes from a master node. This is >>>>>>>>>>>> also done >>>>>>>>>>>> when an analytical potential is not available and the energy >>>>>>>>>>>> calculation must >>>>>>>>>>>> be done externally by a quantum chemistry code like dftb+, >>>>>>>>>>>> siesta and Gaussian. >>>>>>>>>>>> So far, we have been running these codes in serial mode. No >>>>>>>>>>>> need to say that >>>>>>>>>>>> we could do a lot better if they could be executed in parallel. >>>>>>>>>>>> >>>>>>>>>>>> I am not familiar with DMRAA but it seems to be the right >>>>>>>>>>>> choice to deal with >>>>>>>>>>>> job schedulers as it covers the ones I am interested in >>>>>>>>>>>> (pbs/torque and loadlever). >>>>>>>>>>>> >>>>>>>>>>>> Alex >>>>>>>>>>>> >>>>>>>>>>>> 2014-12-13 7:49 GMT-02:00 Gilles Gouaillardet < >>>>>>>>>>>> gilles.gouaillar...@gmail.com>: >>>>>>>>>>>>> >>>>>>>>>>>>> George is right about the semantic >>>>>>>>>>>>> >>>>>>>>>>>>> However i am surprised it returns immediatly... >>>>>>>>>>>>> That should either work or hang imho >>>>>>>>>>>>> >>>>>>>>>>>>> The second point is no more mpi related, and is batch manager >>>>>>>>>>>>> specific. >>>>>>>>>>>>> >>>>>>>>>>>>> You will likely find a submit parameter to make the command >>>>>>>>>>>>> block until the job completes. Or you can write your own wrapper. >>>>>>>>>>>>> Or you can retrieve the jobid and qstat periodically to get >>>>>>>>>>>>> the job state. >>>>>>>>>>>>> If an api is available, this is also an option. >>>>>>>>>>>>> >>>>>>>>>>>>> Cheers, >>>>>>>>>>>>> >>>>>>>>>>>>> Gilles >>>>>>>>>>>>> >>>>>>>>>>>>> George Bosilca <bosi...@icl.utk.edu> wrote: >>>>>>>>>>>>> You have to call MPI_Comm_disconnect on both sides of the >>>>>>>>>>>>> intercommunicator. On the spawner processes you should call it on >>>>>>>>>>>>> the >>>>>>>>>>>>> intercom, while on the spawnees you should call it on the >>>>>>>>>>>>> MPI_Comm_get_parent. >>>>>>>>>>>>> >>>>>>>>>>>>> George. >>>>>>>>>>>>> >>>>>>>>>>>>> On Dec 12, 2014, at 20:43 , Alex A. Schmidt <a...@ufsm.br> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Gilles, >>>>>>>>>>>>> >>>>>>>>>>>>> MPI_comm_disconnect seem to work but not quite. >>>>>>>>>>>>> The call to it returns almost immediatly while >>>>>>>>>>>>> the spawn processes keep piling up in the background >>>>>>>>>>>>> until they are all done... >>>>>>>>>>>>> >>>>>>>>>>>>> I think system('env -i qsub...') to launch the third party apps >>>>>>>>>>>>> would take the execution of every call back to the scheduler >>>>>>>>>>>>> queue. How would I track each one for their completion? >>>>>>>>>>>>> >>>>>>>>>>>>> Alex >>>>>>>>>>>>> >>>>>>>>>>>>> 2014-12-12 22:35 GMT-02:00 Gilles Gouaillardet < >>>>>>>>>>>>> gilles.gouaillar...@gmail.com>: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Alex, >>>>>>>>>>>>>> >>>>>>>>>>>>>> You need MPI_Comm_disconnect at least. >>>>>>>>>>>>>> I am not sure if this is 100% correct nor working. >>>>>>>>>>>>>> >>>>>>>>>>>>>> If you are using third party apps, why dont you do something >>>>>>>>>>>>>> like >>>>>>>>>>>>>> system("env -i qsub ...") >>>>>>>>>>>>>> with the right options to make qsub blocking or you manually >>>>>>>>>>>>>> wait for the end of the job ? >>>>>>>>>>>>>> >>>>>>>>>>>>>> That looks like a much cleaner and simpler approach to me. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Gilles >>>>>>>>>>>>>> >>>>>>>>>>>>>> "Alex A. Schmidt" <a...@ufsm.br> wrote: >>>>>>>>>>>>>> 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 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> 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/25974.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/25975.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/25978.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/25979.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/25981.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/25982.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/25991.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/26002.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/26003.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/26010.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/26011.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/26013.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/26014.php >> >