Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] running external program on same processor (Fortran)
From: Prentice Bisbal (prentice_at_[hidden])
Date: 2010-03-03 11:32:32

Terry Frankcombe wrote:
> Surely this is the problem of the scheduler that your system uses,
> rather than MPI?

That's not true. The scheduler only assigns the initial processes to
nodes and starts them. It can kill the processes it starts if they use
too much memory or run too long, but doesn't prevent them from spawning
more processes, and once spawned, unless they are spawned through the
scheduler, it has no control over them.
> On Wed, 2010-03-03 at 00:48 +0000, abc def wrote:
>> Hello,
>> I wonder if someone can help.
>> The situation is that I have an MPI-parallel fortran program. I run it
>> and it's distributed on N cores, and each of these processes must call
>> an external program.
>> This external program is also an MPI program, however I want to run it
>> in serial, on the core that is calling it, as if it were part of the
>> fortran program. The fortran program waits until the external program
>> has completed, and then continues.
>> The problem is that this external program seems to run on any core,
>> and not necessarily the (now idle) core that called it. This slows
>> things down a lot as you get one core doing multiple tasks.
>> Can anyone tell me how I can call the program and ensure it runs only
>> on the core that's calling it? Note that there are several cores per
>> node. I can ID the node by running the hostname command (I don't know
>> a way to do this for individual cores).
>> Thanks!
>> ====
>> Extra information that might be helpful:
>> If I simply run the external program from the command line (ie, type
>> "/path/myprogram.ex <enter>"), it runs fine. If I run it within the
>> fortran program by calling it via
>> CALL SYSTEM("/path/myprogram.ex")
>> it doesn't run at all (doesn't even start) and everything crashes. I
>> don't know why this is.
>> If I call it using mpiexec:
>> CALL SYSTEM("mpiexec -n 1 /path/myprogram.ex")
>> then it does work, but I get the problem that it can go on any core.
>> ______________________________________________________________________
>> Do you want a Hotmail account? Sign-up now - Free
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
> _______________________________________________
> users mailing list
> users_at_[hidden]

Prentice Bisbal
Linux Software Support Specialist/System Administrator
School of Natural Sciences
Institute for Advanced Study
Princeton, NJ