Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Set number of processes in another way than -np X
From: José Luis García Pallero (jgpallero_at_[hidden])
Date: 2013-06-06 11:24:57


2013/6/6 Ralph Castain <rhc_at_[hidden]>

> Afraid not. You could start a single process, and then have that process
> call MPI_Comm_spawn to launch the rest of them
>

Mmmm... sounds good

I'm writing an example program using ScaLAPACK. I have written the
ScaLAPACK code in an independent function that must be called after some
work in an individual node (the root one). So I need the first part of the
program be executed by one process. My example looks like:

int main()
{
    //some work that must be done by only one node
    .....
    //function that runs internally some scalapack computations
    funcCompScalapack();
    //other work must be done by the original node
    ....
    return 0;
}

void funcCompScalapack()
{
    //Initialize MPI
    MPI_Init(NULL,NULL);
    //here I think I should write some code in order to inform that the
work must be done by a number X or processors
    //maybe using MPI_Comm_spawn?
    ....
    //some BLACS and ScaLAPACK computations
    ....
    //finalize MPI
    MPI_Finalize();
    return;
}

When I execute this program as mpirun -np X myprogram, the pieces of code
before and after the call to function funcCompScalapack() are executed by X
nodes, but these orders must be executed only by one. So my idea is to
execute the binary as ./myprogram (the same I think as mpirun -np 1
myprogram) and internally set the number of processes in
funcCompScalapack() after the MPI_Init() call.

Is my idea possible?

Thanks

>
> On Jun 6, 2013, at 7:54 AM, José Luis García Pallero <jgpallero_at_[hidden]>
> wrote:
>
> Hello:
>
> I'm newbie in the use of MPI, so probably I ask some stupid question (or
> previously asked, but in this case I have searched in the archive and I
> haven't found anything):
>
> Exists any other way than -np X in order to pass the number of processes
> to start for an MPI program? I mean a function of the style
> MPI_Set_Number_Processes() or similar
>
> Thanks
>
> --
> *****************************************
> José Luis García Pallero
> jgpallero_at_[hidden]
> (o<
> / / \
> V_/_
> Use Debian GNU/Linux and enjoy!
> *****************************************
> _______________________________________________
> 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
>

-- 
*****************************************
José Luis García Pallero
jgpallero_at_[hidden]
(o<
/ / \
V_/_
Use Debian GNU/Linux and enjoy!
*****************************************