Re: [OMPI users] environment variables and MPI_Comm_spawn
It would have to be done via MPI_Info arguments, and we never had a request to do so (and hence, don't define such an argument). It would be easy enough to do so (look in the ompi/mca/dpm/orte/dpm_orte.c code). MPI implementations generally don't forcibly propagate envars because it is so hard to know which ones to handle - it is easy to propagate a system envar that causes bad things to happen on the remote end. One thing you could do, of course, is add that envar to your default shell setup (.bashrc or whatever). This would set the variable by default on your remote locations (assuming you are using rsh/ssh for your launcher), and then any process you start would get it. However, that won't help if this is an envar intended only for the comm_spawned process. I can add this capability to the OMPI trunk, and port it to the 1.7 release - but we don't go all the way back to the 1.4 series any more. On Wed, Dec 11, 2013 at 2:10 PM, tom fogal wrote: > Hi all, > > I'm developing on Open MPI 1.4.5-ubuntu2 on Ubuntu 13.10 (so, Ubuntu's > packaged Open MPI) at the moment. > > I'd like to pass environment variables to processes started via > MPI_Comm_spawn. Unfortunately, the MPI 3.0 standard (at least) does > not seem to specify a way to do this; thus I have been searching for > implementation-specific ways to accomplish my task. > > I have tried setting the environment variable using the POSIX setenv(3) > call, but it seems that Open MPI comm-spawn'd processes do not inherit > environment variables. See the attached 2 C99 programs; one prints > out the environment it receives, and one sets the MEANING_OF_LIFE > environment variable, spawns the previous 'env printing' program, and > exits. I run via: > > $ env -i HOME=/home/tfogal \ > PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin \ > mpirun -x TJFVAR=testing -n 5 ./mpienv ./envpar > > and expect (well, hope) to find the MEANING_OF_LIFE in 'envpar's > output. I do see TJFVAR, but the MEANING_OF_LIFE sadly does not > propagate. Perhaps I am asking the wrong question... > > I found another MPI implementation which allowed passing such > information via the MPI_Info argument, however I could find no > documentation of similar functionality in Open MPI. > > Is there a way to accomplish what I'm looking for? I could even be > convinced to hack source, but a starting pointer would be appreciated. > > Thanks, > > -tom > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >
Re: [OMPI users] Prototypes for Fortran MPI_ commands using 64-bit indexing
"Jeff Squyres (jsquyres)" writes: > On Dec 10, 2013, at 10:42 AM, Dave Love wrote: > >> This doesn't seem to have been fixed, and I think it's going to bite >> here. Is this the right change? > > Thanks for reminding us. > >> --- openmpi-1.6.5/ompi/config/ompi_setup_mpi_fortran.m4~ 2012-04-03 >> 15:30:24.0 +0100 >> +++ openmpi-1.6.5/ompi/config/ompi_setup_mpi_fortran.m4 2013-12-10 >> 12:23:54.232854527 + >> @@ -127,8 +127,8 @@ >> AC_MSG_RESULT([skipped (no Fortran bindings)]) >> else >> bytes=`expr 4 \* $ac_cv_sizeof_int + $ac_cv_sizeof_size_t` >> -num_integers=`expr $bytes / $OMPI_SIZEOF_FORTRAN_INTEGER` >> -sanity=`expr $num_integers \* $OMPI_SIZEOF_FORTRAN_INTEGER` >> +num_integers=`expr $bytes / $ac_cv_sizeof_int` >> +sanity=`expr $num_integers \* $ac_cv_sizeof_int` > > I think this is right, but it is has different implications for different > series: > > 1. No more releases are planned for the v1.6 series. Yes, but I need it for compatibility. (In case anyone else tries: for some reason I can't rebuild configure with the autotools on RHEL6, though it has the specified versions or above; I patched configure directly.) > We can commit this fix over there, and it will be available via nightly > tarballs. There are also ABI implications -- see #2, below. I'm building rpms with patches anyhow. > 2. This fix changes the ABI for the 1.5/1.6 and 1.7/1.8 series > (separately, of course). As such, we will need to make this a > non-default configure option. E.g., only do this new behavior if > --enable-abi-breaking-fortran-status-i8-fix is specified (or some name > like that). By default, we have to keep the ABI for the entire > 1.5/1.6 and 1.7/1.8 series -- so if you specify this switch, you > acknowledge that you're breaking ABI for the -i8 case. OK, but I assumed that was a non-issue since the ABI is broken anyhow in the case where it changes, as I understand it. > 3. For the v1.9 series (i.e., currently the SVN trunk), we can make this be > the default, and the --enable-abi-breaking... switch will not exist. > > Sound ok? It doesn't matter to me as long as I know the change DTRT, but my OK probably isn't relevant. Thanks.
Re: [OMPI users] environment variables and MPI_Comm_spawn
Won't OMPI still automatically pick up env variables that are named beginning with "OMPI_"? On Dec 12, 2013, at 9:47 AM, Ralph Castain wrote: > It would have to be done via MPI_Info arguments, and we never had a request > to do so (and hence, don't define such an argument). It would be easy enough > to do so (look in the ompi/mca/dpm/orte/dpm_orte.c code). > > MPI implementations generally don't forcibly propagate envars because it is > so hard to know which ones to handle - it is easy to propagate a system envar > that causes bad things to happen on the remote end. > > One thing you could do, of course, is add that envar to your default shell > setup (.bashrc or whatever). This would set the variable by default on your > remote locations (assuming you are using rsh/ssh for your launcher), and then > any process you start would get it. However, that won't help if this is an > envar intended only for the comm_spawned process. > > I can add this capability to the OMPI trunk, and port it to the 1.7 release - > but we don't go all the way back to the 1.4 series any more. > > > > On Wed, Dec 11, 2013 at 2:10 PM, tom fogal wrote: > Hi all, > > I'm developing on Open MPI 1.4.5-ubuntu2 on Ubuntu 13.10 (so, Ubuntu's > packaged Open MPI) at the moment. > > I'd like to pass environment variables to processes started via > MPI_Comm_spawn. Unfortunately, the MPI 3.0 standard (at least) does > not seem to specify a way to do this; thus I have been searching for > implementation-specific ways to accomplish my task. > > I have tried setting the environment variable using the POSIX setenv(3) > call, but it seems that Open MPI comm-spawn'd processes do not inherit > environment variables. See the attached 2 C99 programs; one prints > out the environment it receives, and one sets the MEANING_OF_LIFE > environment variable, spawns the previous 'env printing' program, and > exits. I run via: > > $ env -i HOME=/home/tfogal \ > PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin \ > mpirun -x TJFVAR=testing -n 5 ./mpienv ./envpar > > and expect (well, hope) to find the MEANING_OF_LIFE in 'envpar's > output. I do see TJFVAR, but the MEANING_OF_LIFE sadly does not > propagate. Perhaps I am asking the wrong question... > > I found another MPI implementation which allowed passing such > information via the MPI_Info argument, however I could find no > documentation of similar functionality in Open MPI. > > Is there a way to accomplish what I'm looking for? I could even be > convinced to hack source, but a starting pointer would be appreciated. > > Thanks, > > -tom > > > ___ > 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 -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
Re: [OMPI users] ?????? ?????? ?????? can you help me please ?thanks
The reply chains have become intermingled, and there seems to be a lot of confusion on exactly what is being asked and what answers have already been provided. I'm sorry -- I'm unable to follow exactly where we are in this question. Can you start a single new thread with an explicit description of what you are asking? On Dec 9, 2013, at 7:54 PM, <781578...@qq.com> wrote: > it means that only three 3 processors have worked,and other processors have > done nothing.why? > > > -- -- > ??: "Ralph Castain";; > : 2013??12??9??(??) 11:18 > ??: "Open MPI Users"; > : Re: [OMPI users]?? ?? can you help me please ?thanks > > Forgive me, but I have no idea what that output means. Why do you think only > 3 processors are being used? > > On Dec 9, 2013, at 5:05 AM, <781578...@qq.com> wrote: > >> I have a server with 12 cores.when I run mpi program with 10 >> processors.only three processors works.Here are a picture about the problem >> >> <40f6d...@e690af16.27c0a552.jpg> >> >> why?Is the problem with process schedule?? >> -- -- >> ??: "Bruno Coutinho";; >> : 2013??12??6??(??) 11:14 >> ??: "Open MPI Users"; >> : Re: [OMPI users]?? can you help me please ?thanks >> >> Probably it was the changing from eager to rendezvous protocols as Jeff said. >> >> If you don't know what are these, read this: >> https://computing.llnl.gov/tutorials/mpi_performance/#Protocols >> http://blogs.cisco.com/performance/what-is-an-mpi-eager-limit/ >> http://blogs.cisco.com/performance/eager-limits-part-2/ >> >> You can tune eager limit chaning mca parameters btl_tcp_eager_limit (for >> tcp), btl_self_eager_limit (comunication fron one process to itself), >> btl_sm_eager_limit (shared memory) and btl_udapl_eager_limit or >> btl_openib_eager_limit (if you use infiniband). >> >> >> 2013/12/6 Jeff Squyres (jsquyres) >> I sent you some further questions yesterday: >> >> http://www.open-mpi.org/community/lists/users/2013/12/23158.php >> >> >> On Dec 6, 2013, at 1:35 AM, <781578...@qq.com> wrote: >> >> > Here is my code: >> > int*a=(int*)malloc(sizeof(int)*number); >> > MPI_Send(a,number, MPI_INT, 1, 1,MPI_COMM_WORLD); >> > >> > int*b=(int*)malloc(sizeof(int)*number); >> > MPI_Recv(b, number, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status); >> > >> > number here is the size of my array(eg,a or b). >> > I have try it on my local compute and my rocks cluster.On rocks cluster, >> > one processor on one frontend node use "MPI_Send" send a message ,other >> > processors on compute nodes use "MPI_Recv" receive message . >> > when number is least than 1,other processors can receive message fast; >> > but when number is more than 15000,other processors can receive message >> > slowly >> > why?? becesue openmpi API ?? or other problems? >> > >> > it spends me a few days , I want your help,thanks for all readers. good >> > luck for you >> > >> > >> > >> > >> > -- -- >> > ??: "Ralph Castain";; >> > : 2013??12??5??(??) 6:52 >> > ??: "Open MPI Users"; >> > : Re: [OMPI users] can you help me please ?thanks >> > >> > You are running 15000 ranks on two nodes?? My best guess is that you are >> > swapping like crazy as your memory footprint problem exceeds available >> > physical memory. >> > >> > >> > >> > On Thu, Dec 5, 2013 at 1:04 AM, <781578...@qq.com> wrote: >> > My ROCKS cluster includes one frontend and two compute nodes.In my >> > program,I have use the openmpi API such as MPI_Send and MPI_Recv . but >> > when I run the progam with 3 processors . one processor send a message >> > ,other receive message .here are some code. >> > int*a=(int*)malloc(sizeof(int)*number); >> > MPI_Send(a,number, MPI_INT, 1, 1,MPI_COMM_WORLD); >> > >> > int*b=(int*)malloc(sizeof(int)*number); >> > MPI_Recv(b, number, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status); >> > >> > when number is least than 1,it runs fast. >> > but number is more than 15000,it runs slowly >> > >> > why?? becesue openmpi API ?? or other problems? >> > -- -- >> > ??: "Ralph Castain";; >> > : 2013??12??3??(??) 1:39 >> > ??: "Open MPI Users"; >> > : Re: [OMPI users] can you help me please ?thanks >> > >> > >> > >> > >> > >> > On Mon, Dec 2, 2013 at 9:23 PM, <781578...@qq.com> wrote: >> > A simple program at my 4-node ROCKS cluster runs fine with command: >> > /opt/openmpi/bin/mpirun -np 4 -machinefile machines ./sort_mpi6 >> > >> > >> > Another bigger programs runs fine on the head node only with command: >> > >> > cd ./sphere; /opt/openmpi/bin/mpirun -np 4 ../bin/sort_mpi6 >> > >> > But with the command: >> > >> > cd /sphere; /opt/openmpi/bin/mpirun -np 4 -machinefile ../machines >> > ../bin/sort_mpi6 >> > >> > It