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: Reuti (reuti_at_[hidden])
Date: 2010-03-03 12:23:54

Are you speaking of the same?

Am 03.03.2010 um 17:32 schrieb Prentice Bisbal:

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

This I would also state.

>> rather than MPI?

Scheduler in the Linux kernel?

> That's not true. The scheduler only assigns the initial processes to
> nodes

Scheduler in MPI?

> 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,

When the processes are bound to one and the same core, these
addititonal processes won't intefere with other jobs' processes on
the same node which run on the other cores.

-- Reuti

> 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
> _______________________________________________
> users mailing list
> users_at_[hidden]