Ralph, thank you the reply.
You need to use MPI_Comm_spawn_multiple. Despite the name, it results in a single communicator being created by a single launch - it just allows you to specify multiple applications to run.In this case, we use the same app, but give each element a different "host" info key to get the behavior we want. Looks something like this:MPI_Comm child;char *cmds[3] = {"myapp", "myapp", "myapp"};MPI_Info info[3];int maxprocs[] = { 1, 3, 1 };MPI_Info_create(&info[0]);MPI_Info_set(info[0], "host", "m1");MPI_Info_create(&info[1]);MPI_Info_set(info[1], "host", "m2");MPI_Info_create(&info[2]);MPI_Info_set(info[2], "host", "m1");MPI_Comm_spawn_multiple(3, cmds, NULL, maxprocs,info, 0, MPI_COMM_WORLD,&child, MPI_ERRCODES_IGNORE);I won't claim the above is correct - but it gives the gist of the idea.On May 16, 2011, at 12:19 PM, Thatyene Louise Alves de Souza Ramos wrote:Ralph,I have the same issue and I've been searching how to do this, but I couldn't find.What exactly must be the string in the host info key to do what Rodrigo described?<<< Inside your master, you would create an MPI_Info key "host" that has a value<<< consisting of a string "host1,host2,host3" identifying the hosts you want
<<< your slave to execute upon. Those hosts must have been included in
<<< my_hostfile. Include that key in the MPI_Info array passed to your Spawn.
I tried to do what you said above but ompi ignores the repetition of hosts. Using Rodrigo's example I did:
host info key = "m1,m2,m2,m2,m3" and number of processes = 5 and the result was
m1 -> 2m2 -> 2m3 -> 1and not
m1 -> 1m2 -> 3m3 -> 1as I wanted._______________________________________________Thanks in advance.Thatyene RamosOn Fri, May 13, 2011 at 9:16 PM, Ralph Castain <rhc@open-mpi.org> wrote:I believe I answered that question. You can use the hostfile info key, or you can use the host info key - either one will do what you require.On May 13, 2011, at 4:11 PM, Rodrigo Silva Oliveira wrote:_______________________________________________Hi,I think I was not specific enough. I need to spawn the copies of a process in a unique mpi_spawn call. It is, I have to specify a list of machines and how many copies of the process will be spawned on each one. Is it possible?I would be something like that:machines #copiesm1 1m2 3m3 1After an unique call to spawn, I want the copies running in this fashion. I tried use a hostfile with the option slot, but I'm not sure if it is the best way.hostfile:m1 slots=1m2 slots=3m3 slots=1Thanks
--
Rodrigo Silva Oliveira
M.Sc. Student - Computer Science
Universidade Federal de Minas Gerais
www.dcc.ufmg.br/~rsilva
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users