Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI users] running external program on same processor (Fortran)
From: abc def (cannonjunk_at_[hidden])
Date: 2010-03-03 07:17:30


I don't know (I'm a little new to this area), but I figured out how to get around the problem:

Using SGE and MVAPICH2, the "-env MV2_CPU_MAPPING 0:1....." option in mpiexec seems to do the trick.

So when calling the external program with mpiexec, I map the called
process to the current core rank, and it seems to stay distributed and
separated as I want.

Hope someone else finds this useful in the future.

> Date: Wed, 3 Mar 2010 13:13:01 +1100
> Subject: Re: [OMPI users] running external program on same processor (Fortran)
>
> Surely this is the problem of the scheduler that your system uses,
> rather than MPI?
>
>
> 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
                                               
_________________________________________________________________
We want to hear all your funny, exciting and crazy Hotmail stories. Tell us now
http://clk.atdmt.com/UKM/go/195013117/direct/01/