On Jun 6, 2013, at 8:58 AM, José Luis García Pallero <jgpall...@gmail.com> 
wrote:

> 2013/6/6 Ralph Castain <r...@open-mpi.org>
> should work!
> 
> Thank you for your answer.
> 
> So I understand that MPI_Comm_spawn() is my function. But I see in the 
> documentation that the first argument is char* command, and command is the 
> name of the program to spawn, but I not want to execute an external program. 
> Only a piece of code in the same program. How can I deal with that.

You'll have to move that code into a separate program, then pass any data it 
requires using MPI_Send/receive or a collective operation

> The second argument is char* argv[]. Admits MPI_Comm_spawn() the NULL value 
> for argv[], as MPI_Init()?
> 
> I know also that I can do my program by putting the code before and after the 
> call funcCompScalapack() into an if() checking if the node is the root and 
> then these pieces of code will be executed only by the root. But I want to 
> maintain all the program free of MPI code except the funcCompScalapack() 
> function
> 
> Cheers
> 
> On Jun 6, 2013, at 8:24 AM, José Luis García Pallero <jgpall...@gmail.com> 
> wrote:
> 
>> 2013/6/6 Ralph Castain <r...@open-mpi.org>
>> 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 <jgpall...@gmail.com> 
>> 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
>>> jgpall...@gmail.com
>>> (o<
>>> / / \
>>> V_/_
>>> Use Debian GNU/Linux and enjoy!
>>> *****************************************
>>> _______________________________________________
>>> 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
>> 
>> 
>> 
>> -- 
>> *****************************************
>> José Luis García Pallero
>> jgpall...@gmail.com
>> (o<
>> / / \
>> V_/_
>> Use Debian GNU/Linux and enjoy!
>> *****************************************
>> _______________________________________________
>> 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
> 
> 
> 
> -- 
> *****************************************
> José Luis García Pallero
> jgpall...@gmail.com
> (o<
> / / \
> V_/_
> Use Debian GNU/Linux and enjoy!
> *****************************************
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to