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 12:57:47


Reuti wrote:
> Are you speaking of the same?

Good point, Reuti. I was thinking of a cluster scheduler like SGE or
Torque.
>
> 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]
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>
>> --
>> Prentice Bisbal
>> Linux Software Support Specialist/System Administrator
>> School of Natural Sciences
>> Institute for Advanced Study
>> Princeton, NJ
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

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