[OMPI users] How can I start building apps in Open MPI? any docs?
I'll be starting some parallel programs in Open MPI and I would like to find a guide or any docs of Open MPI, any suggestions please? I couldn't find any docs on the website, how do I know about the APIs or the functions that I should use? Thank you Amir
[OMPI users] C or C++ or Fortran?
Which one is better for parallel programs? and depends on what? Thank you Amir
Re: [OMPI users] How can I start building apps in Open MPI? any docs?
Amir Saad wrote: I'll be starting some parallel programs in Open MPI and I would like to find a guide or any docs of Open MPI, any suggestions please? I couldn't find any docs on the website, how do I know about the APIs or the functions that I should use? Here are videos about OpenMPI/MPI - http://www.open-mpi.org/video/ FAQ - http://www.open-mpi.org/faq/ Pasha.
Re: [OMPI users] C or C++ or Fortran?
Hi, language choice depends by your problem to solved. C and Fortran are in general more quick than C++. 2008/7/27 Amir Saad > Which one is better for parallel programs? and depends on what? > Thank you > Amir > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users > -- Gabriele Fatigati CINECA Systems & Tecnologies Department Supercomputing Group Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy www.cineca.it Tel: +39 051 6171722 g.fatig...@cineca.it
Re: [OMPI users] How can I start building apps in Open MPI? any docs?
In addition to what Pasha said, keep in mind that Open MPI implements the standardized MPI API. There are many books and web tutorials available about MPI. There's a few at NCSA, for example: http://ci-tutor.ncsa.uiuc.edu/browse.php?category=-1&search=MPI&include=all&filter=Filter On Jul 27, 2008, at 2:16 AM, Pavel Shamis (Pasha) wrote: Amir Saad wrote: I'll be starting some parallel programs in Open MPI and I would like to find a guide or any docs of Open MPI, any suggestions please? I couldn't find any docs on the website, how do I know about the APIs or the functions that I should use? Here are videos about OpenMPI/MPI - http://www.open-mpi.org/video/ FAQ - http://www.open-mpi.org/faq/ Pasha. ___ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres Cisco Systems
Re: [OMPI users] How can I start building apps in Open MPI? any docs?
For beginners, it is worth picking up some books. I have used Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface by Gropp, Lusk, and Skjellum. The reference for MPI is available online at http://www.mpi-forum.org/docs/docs.html, but hard copies are nice to have: MPI: The Complete Reference by Snir and Gropp. mch 2008/7/27 Amir Saad : > I'll be starting some parallel programs in Open MPI and I would like to > find a guide or any docs of Open MPI, any suggestions please? I couldn't > find any docs on the website, how do I know about the APIs or the functions > that I should use? > Thank you > Amir > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >
[OMPI users] Want to build a static openmpi with both myrinet and tcp
We now have a cluster with myrinet and another cluster with tcp. I want to build a static OPENMPI that will detect if there is myrinet on the cluster and use that, if myrinet is not available, run with tcp. I see the --enable-mca-static option but am confused as to how to use it for what I want to do. Could someone please provide an example of the configure command to do what I want?? Thanx, Bernie Borenstein The Boeing Company
Re: [OMPI users] How to cease the process triggered by OPENMPI
Dear Brock Palen, Thank you for your responding. My linux is redhat enterprise 4. My compiler is 10.1.015 version of intel fortran and intel c. You said 'when the job is killed all the children are also' But I started my OPENMPI job using the nohup command to put the job background like this, " nohup mpirun -hostfile ~/hostfile -np 64 pw.x < input > output & ". When I killed one of the process named pw.x, all the others didn't stop. When I killed the process named orted, the pw.x process in the same node stoped immediately, but the job in the other node were still running. Do you think there is something wrong with my cluster or openmpi or the software named pw.x? Is there a command for openmpi to force all the process to stop in the cluster or a list of nodes to stop. Vega Lew (weijia liu) PH.D Candidate in Chemical Engineering State Key Laboratory of Materials-oriented Chemical Engineering College of Chemistry and Chemical Engineering Nanjing University of Technology, 210009, Nanjing, Jiangsu, China From: bro...@umich.edu List-Post: users@lists.open-mpi.org Date: Sat, 26 Jul 2008 12:52:08 -0400 To: us...@open-mpi.org Subject: Re: [OMPI users] How to cease the process triggered by OPENMPI Does the cluster your using use a batch system? Like SLURM, PBS or other? If so many have native ways to launch jobs that OMPI can use. SO that when the job is killed all the children are also. Brock Palenwww.umich.edu/~brockpCenter for Advanced computingbro...@umich.edu(734)936-1985 On Jul 26, 2008, at 12:25 PM, vega lew wrote: Dear all, I have enjoyed the openmpi a couple of days. With the help of openmpi I could run ESPRESSO efficiently. I started the mpi-job by the openmpi command like this, " nohup mpirun -hostfile ~/hostfile -np 64 pw.x < input > output &". When I want to stop the job before it finished, I find it not easy to stop all the process manually. When I killed the process in one node of the cluster, the processes in other nodes were still running. So I must ssh to every node, find the process id and kill the process. If there are 100 processors or more for one mpi job, the situation even worse. Is there a command for openmpi to force all the process to stop in the cluster or a list of nodes to stop. vega Vega Lew (weijia liu) PH.D Candidate in Chemical Engineering State Key Laboratory of Materials-oriented Chemical Engineering College of Chemistry and Chemical Engineering Nanjing University of Technology, 210009, Nanjing, Jiangsu, China Explore the seven wonders of the world Learn more!___users mailing listusers@open-mpi.orghttp://www.open-mpi.org/mailman/listinfo.cgi/users _ News, entertainment and everything you care about at Live.com. Get it now! http://www.live.com/getstarted.aspx
Re: [OMPI users] Want to build a static openmpi with both myrinet and tcp
Add the following flags to your configure line. --disable-dlopen --disable-shared --enable-static --with-mx=/some/path/ to/mx/lib Even if everything is compiled static, the selection logic (as well as the mca parameters --mca btl=tcp,mx,self...) will continue working as usual. Last, there is no clear benefit in compiling static on systems supporting dynamic. Aurelien Le 27 juil. 08 à 13:20, Borenstein, Bernard S a écrit : We now have a cluster with myrinet and another cluster with tcp. I want to build a static OPENMPI that will detect if there is myrinet on the cluster and use that, if myrinet is not available, run with tcp. I see the --enable-mca-static option but am confused as to how to use it for what I want to do. Could someone please provide an example of the configure command to do what I want?? Thanx, Bernie Borenstein The Boeing Company ___ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users -- * Dr. Aurélien Bouteiller * Sr. Research Associate at Innovative Computing Laboratory * University of Tennessee * 1122 Volunteer Boulevard, suite 350 * Knoxville, TN 37996 * 865 974 6321
Re: [OMPI users] how to make a process start and then join a MPI group
Perhaps I am doing something wrong. The childrens' calls to MPI_Intercomm_merge never return. Here's the chronology (with 2 children): parent calls MPI_Init parent calls MPI_Comm_spawn child calls MPI_Init child calls MPI_Init parent call to MPI_Comm_spawn returns (long pause inserted) parent calls MPI_Intercomm_merge child MPI_Init returns child calls MPI_Intercomm_merge child MPI_Init returns child calls MPI_Intercomm_merge parent MPI_Intercomm_merge returns ... but the child processes never return from the MPI_InterComm_merge function. Here are some code snippets: # parent: MPI_Init(NULL,NULL); int nkids=2; int errs[nkids]; MPI_Comm kid; cerr << "parent calls MPI_Comm_spawn" << endl; CHECK_MPI_CODE( MPI_Comm_spawn("test_mpi",NULL,nkids,MPI_INFO_NULL,0,MPI_COMM_WORLD,&kid,errs) ); cerr << "parent call to MPI_Comm_spawn returns" << endl; for (k=0;k MPI_Intercomm_merge is what you are looking for. Aurelien Le 26 juil. 08 à 13:23, Mark Borgerding a écrit : Okay, so I've gotten a little bit closer. I'm using MPI_Comm_spawn to start several children processes. The problem is that the children are in their own group, separate from the parent (just the like the documentation says). I want to merge the children's group with the parent group so I can efficiently Send/Recv data between them.. Is this possible? Plan B: I guess if there is no elegant way to merge all those processes into one group, I can connect sockets and make intercomms to talk from the parent directly to each child. -- Mark Mark Borgerding wrote: I am writing a code module that plugs into a larger application framework. That framework loads my code module as a shared object. So I do not control how the first process gets started, but I still want it to be able to start and participate in an MPI group. Here's roughly what I want to happen ( I think): framework app running (not under my control) -> framework loads mycode.so shared object into its process -> mycode.so starts mpi programs on several hosts (e.g. via system call to mpiexec ) -> initial mycode.so process participates in the group he just started (e.g. he shows up in MPI_Comm_group, can use MPI_Send, MPI_Recv, etc. ) Can this be done? I am running under Centos 5.2 Thanks, Mark ___ 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 ___ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users
Re: [OMPI users] how to make a process start and then join a MPI group
I got something working, but I'm not 100% sure why. The children woke up and returned from their calls to MPI_Intercomm_merge only after the parent used the intercomm to send some data to the children via MPI_Send. Mark Borgerding wrote: Perhaps I am doing something wrong. The childrens' calls to MPI_Intercomm_merge never return. Here's the chronology (with 2 children): parent calls MPI_Init parent calls MPI_Comm_spawn child calls MPI_Init child calls MPI_Init parent call to MPI_Comm_spawn returns (long pause inserted) parent calls MPI_Intercomm_merge child MPI_Init returns child calls MPI_Intercomm_merge child MPI_Init returns child calls MPI_Intercomm_merge parent MPI_Intercomm_merge returns ... but the child processes never return from the MPI_InterComm_merge function. Here are some code snippets: # parent: MPI_Init(NULL,NULL); int nkids=2; int errs[nkids]; MPI_Comm kid; cerr << "parent calls MPI_Comm_spawn" << endl; CHECK_MPI_CODE( MPI_Comm_spawn("test_mpi",NULL,nkids,MPI_INFO_NULL,0,MPI_COMM_WORLD,&kid,errs) ); cerr << "parent call to MPI_Comm_spawn returns" << endl; for (k=0;k MPI_Intercomm_merge is what you are looking for. Aurelien Le 26 juil. 08 à 13:23, Mark Borgerding a écrit : Okay, so I've gotten a little bit closer. I'm using MPI_Comm_spawn to start several children processes. The problem is that the children are in their own group, separate from the parent (just the like the documentation says). I want to merge the children's group with the parent group so I can efficiently Send/Recv data between them.. Is this possible? Plan B: I guess if there is no elegant way to merge all those processes into one group, I can connect sockets and make intercomms to talk from the parent directly to each child. -- Mark Mark Borgerding wrote: I am writing a code module that plugs into a larger application framework. That framework loads my code module as a shared object. So I do not control how the first process gets started, but I still want it to be able to start and participate in an MPI group. Here's roughly what I want to happen ( I think): framework app running (not under my control) -> framework loads mycode.so shared object into its process -> mycode.so starts mpi programs on several hosts (e.g. via system call to mpiexec ) -> initial mycode.so process participates in the group he just started (e.g. he shows up in MPI_Comm_group, can use MPI_Send, MPI_Recv, etc. ) Can this be done? I am running under Centos 5.2 Thanks, Mark ___ 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 ___ 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