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
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

_______________________________________________
users mailing list
us...@open-mpi.org
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
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to