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 >