[OMPI users] file `opal/mca/hwloc/hwloc131/configure.m4' does not exist in svn repo
Dear all, I updated ompi-trunk to the most recent trunk: il...@frpd2.utcpd.sk:~/bin/openmpi_i32lp64_intel_static/ompi-trunk/.svn info Path: . URL: http://svn.open-mpi.org/svn/ompi/trunk Repository Root: http://svn.open-mpi.org/svn/ompi Repository UUID: 63e3feb5-37d5-0310-a306-e8a459e722fe Revision: 26166 Node Kind: directory Schedule: normal Last Changed Author: miked Last Changed Rev: 26166 Last Changed Date: 2012-03-20 11:00:52 +0100 (Tue, 20 Mar 2012) and did configure, which returned with this error: ../configure --prefix=/home/ilias/bin/openmpi_i32lp64_intel_static --without-memory-manager CXX=icpc CC=icc F77=ifort FC=ifort LDFLAGS=--static --disable-share --enable-static . . . config.status: orte/include/orte_config.h is unchanged config.status: creating ompi/include/ompi_config.h config.status: ompi/include/ompi_config.h is unchanged config.status: creating ompi/include/mpi.h config.status: error: cannot find input file: `opal/mca/hwloc/hwloc131/hwloc/include/private/autogen/config.h.in' il...@frpd2.utcpd.sk:~/bin/openmpi_i32lp64_intel_static/ompi-trunk/.make all install CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/ilias/bin/openmpi_i32lp64_intel_static/ompi-trunk/config/missing --run aclocal-1.11 -I config aclocal-1.11: config/autogen_found_items.m4:286: file `opal/mca/hwloc/hwloc131/configure.m4' does not exist make: *** [aclocal.m4] Error 1 Miro
Re: [OMPI users] file `opal/mca/hwloc/hwloc131/configure.m4' does not exist in svn repo
Did you run autogen.pl? (if you're working with the Open MPI trunk for development reasons, you might want to post to the de...@open-mpi.org list, not the general users list) On Mar 20, 2012, at 8:31 AM, Ilias Miroslav wrote: > Dear all, > > I updated ompi-trunk to the most recent trunk: > > il...@frpd2.utcpd.sk:~/bin/openmpi_i32lp64_intel_static/ompi-trunk/.svn info > Path: . > URL: http://svn.open-mpi.org/svn/ompi/trunk > Repository Root: http://svn.open-mpi.org/svn/ompi > Repository UUID: 63e3feb5-37d5-0310-a306-e8a459e722fe > Revision: 26166 > Node Kind: directory > Schedule: normal > Last Changed Author: miked > Last Changed Rev: 26166 > Last Changed Date: 2012-03-20 11:00:52 +0100 (Tue, 20 Mar 2012) > > and did configure, which returned with this error: > > ../configure --prefix=/home/ilias/bin/openmpi_i32lp64_intel_static > --without-memory-manager CXX=icpc CC=icc F77=ifort FC=ifort LDFLAGS=--static > --disable-share --enable-static > . > . > . > config.status: orte/include/orte_config.h is unchanged > config.status: creating ompi/include/ompi_config.h > config.status: ompi/include/ompi_config.h is unchanged > config.status: creating ompi/include/mpi.h > config.status: error: cannot find input file: > `opal/mca/hwloc/hwloc131/hwloc/include/private/autogen/config.h.in' > il...@frpd2.utcpd.sk:~/bin/openmpi_i32lp64_intel_static/ompi-trunk/.make all > install > CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh > /home/ilias/bin/openmpi_i32lp64_intel_static/ompi-trunk/config/missing --run > aclocal-1.11 -I config > aclocal-1.11: config/autogen_found_items.m4:286: file > `opal/mca/hwloc/hwloc131/configure.m4' does not exist > make: *** [aclocal.m4] Error 1 > > Miro > > ___ > 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/
[OMPI users] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel 10.0 compiler, but on a newer system in which the default g++ headers are incompatible with Intel. Thus the C and Fortran compilers function normally but the Intel C++ compiler fails to build even a simple "hello world" code. Is there a way to build OMPI without a C++ compiler? I tried using the --disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just for the resulting bindings. The configure step still continues to search for a working C++ compiler. Yes, I know I can upgrade the Intel compiler but we don't have that as an option in this case. Thanks, david -- David Gunter HPC-3: Infrastructure Team Los Alamos National Laboratory
Re: [OMPI users] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
On 3/20/12 10:06 AM, "Gunter, David O" wrote: >I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel 10.0 >compiler, but on a newer system in which the default g++ headers are >incompatible with Intel. Thus the C and Fortran compilers function >normally but the Intel C++ compiler fails to build even a simple "hello >world" code. > >Is there a way to build OMPI without a C++ compiler? I tried using the >--disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just for >the resulting bindings. The configure step still continues to search for >a working C++ compiler. > >Yes, I know I can upgrade the Intel compiler but we don't have that as an >option in this case. Unfortunately, you're a bit out of luck. Open MPI 1.4.x requires C++ even if you're not building the C++ bindings. This is not true of 1.5.x and later. If you don't need the C++ bindings, I would build Open MPI with GNU C and C++ and Intel Fortran. After building, edit /share/openmpi/mpicc-wrapper-data.txt to change the compiler=gcc line to compiler=. There's not going to be much performance difference between the two compilers for Open MPI itself. GNU C and Intel C are link compatible, so that should work out for you and the users will never be the wiser. Brian -- Brian W. Barrett Dept. 1423: Scalable System Software Sandia National Laboratories
Re: [OMPI users] Problem with MPI_Barrier (Inter-communicator)
do you have by any chance the actual or a small reproducer? It might be much easier to hunt the problem down... Thanks Edgar On 3/19/2012 8:12 PM, Rodrigo Oliveira wrote: > Hi there. > > I am facing a very strange problem when using MPI_Barrier over an > inter-communicator after some operations I describe bellow: > > 1) I start a server calling mpirun. > 2) The server spawns 2 copies of a client using MPI_Comm_spawn, creating > an inter-communicator between the two groups. The server group with 1 > process (lets name it as A) and the client group with 2 processes (group B). > 3) After that, I need to detach one of the processes (rank 0) in group B > from the inter-communicator AB. To do that I do the following steps: > > Server side: > . > tmp_inter_comm = client_comm.Create ( client_comm.Get_group ( ) ); > client_comm.Free ( ); > client_comm = tmp_inter_comm; > . > client_comm.Barrier(); > . > > Client side: > > rank = 0; > tmp_inter_comm = server_comm.Create ( server_comm.Get_group ( > ).Excl ( 1, &rank ) ); > server_comm.Free ( ); > server_comm = tmp_inter_comm; > . > if (server_comm != MPI::COMM_NULL) > server_comm.Barrier(); > > > The problem: everything works fine until the call to Barrier. In that > point, the server exits the barrier, but the client at the group B does > not. Observe that we have only one process inside B, because I used Excl > to remove one process from the original group. > > p.s.: This occurs in the version 1.5.4 and the C++ API. > > I am very concerned about this problem because this solution plays a > very important role in my master thesis. > > Is this an ompi problem or am I doing something wrong? > > Thanks in advance > > Rodrigo Oliveira > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users signature.asc Description: OpenPGP digital signature
Re: [OMPI users] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
I wish it were that easy. When I go that route, I get error messages like the following when trying to compile the parallel code with Intel: libmpi.so: undefined reference to `__intel_sse2_strcpy' and other messages for every single Intel-implemented standard C-function. -david -- David Gunter HPC-3: Infrastructure Team Los Alamos National Laboratory On Mar 20, 2012, at 8:18 AM, Barrett, Brian W wrote: > On 3/20/12 10:06 AM, "Gunter, David O" wrote: > >> I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel 10.0 >> compiler, but on a newer system in which the default g++ headers are >> incompatible with Intel. Thus the C and Fortran compilers function >> normally but the Intel C++ compiler fails to build even a simple "hello >> world" code. >> >> Is there a way to build OMPI without a C++ compiler? I tried using the >> --disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just for >> the resulting bindings. The configure step still continues to search for >> a working C++ compiler. >> >> Yes, I know I can upgrade the Intel compiler but we don't have that as an >> option in this case. > > Unfortunately, you're a bit out of luck. Open MPI 1.4.x requires C++ even > if you're not building the C++ bindings. This is not true of 1.5.x and > later. > > If you don't need the C++ bindings, I would build Open MPI with GNU C and > C++ and Intel Fortran. After building, edit > /share/openmpi/mpicc-wrapper-data.txt to change the compiler=gcc > line to compiler=. There's not going to be much > performance difference between the two compilers for Open MPI itself. GNU > C and Intel C are link compatible, so that should work out for you and the > users will never be the wiser. > > Brian > > -- > Brian W. Barrett > Dept. 1423: Scalable System Software > Sandia National Laboratories > > > > > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users
Re: [OMPI users] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
Can you build with g++ instead of icpc? All the C++ MPI bindings are inlined anyway, so the performance difference between the two might be negligible. On Mar 20, 2012, at 11:35 AM, Gunter, David O wrote: > I wish it were that easy. When I go that route, I get error messages like > the following when trying to compile the parallel code with Intel: > > libmpi.so: undefined reference to `__intel_sse2_strcpy' > > and other messages for every single Intel-implemented standard C-function. > > -david > -- > David Gunter > HPC-3: Infrastructure Team > Los Alamos National Laboratory > > > > > On Mar 20, 2012, at 8:18 AM, Barrett, Brian W wrote: > >> On 3/20/12 10:06 AM, "Gunter, David O" wrote: >> >>> I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel 10.0 >>> compiler, but on a newer system in which the default g++ headers are >>> incompatible with Intel. Thus the C and Fortran compilers function >>> normally but the Intel C++ compiler fails to build even a simple "hello >>> world" code. >>> >>> Is there a way to build OMPI without a C++ compiler? I tried using the >>> --disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just for >>> the resulting bindings. The configure step still continues to search for >>> a working C++ compiler. >>> >>> Yes, I know I can upgrade the Intel compiler but we don't have that as an >>> option in this case. >> >> Unfortunately, you're a bit out of luck. Open MPI 1.4.x requires C++ even >> if you're not building the C++ bindings. This is not true of 1.5.x and >> later. >> >> If you don't need the C++ bindings, I would build Open MPI with GNU C and >> C++ and Intel Fortran. After building, edit >> /share/openmpi/mpicc-wrapper-data.txt to change the compiler=gcc >> line to compiler=. There's not going to be much >> performance difference between the two compilers for Open MPI itself. GNU >> C and Intel C are link compatible, so that should work out for you and the >> users will never be the wiser. >> >> Brian >> >> -- >> Brian W. Barrett >> Dept. 1423: Scalable System Software >> Sandia National Laboratories >> >> >> >> >> >> >> ___ >> 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] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
I tried that at first but hit the same problem I'm having now - lot's of "__intel_" undefined errors when I go to compile even the simplest of mpi codes. -david -- David Gunter HPC-3: Infrastructure Team Los Alamos National Laboratory On Mar 20, 2012, at 9:36 AM, Jeffrey Squyres wrote: > Can you build with g++ instead of icpc? > > All the C++ MPI bindings are inlined anyway, so the performance difference > between the two might be negligible. > > > On Mar 20, 2012, at 11:35 AM, Gunter, David O wrote: > >> I wish it were that easy. When I go that route, I get error messages like >> the following when trying to compile the parallel code with Intel: >> >> libmpi.so: undefined reference to `__intel_sse2_strcpy' >> >> and other messages for every single Intel-implemented standard C-function. >> >> -david >> -- >> David Gunter >> HPC-3: Infrastructure Team >> Los Alamos National Laboratory >> >> >> >> >> On Mar 20, 2012, at 8:18 AM, Barrett, Brian W wrote: >> >>> On 3/20/12 10:06 AM, "Gunter, David O" wrote: >>> I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel 10.0 compiler, but on a newer system in which the default g++ headers are incompatible with Intel. Thus the C and Fortran compilers function normally but the Intel C++ compiler fails to build even a simple "hello world" code. Is there a way to build OMPI without a C++ compiler? I tried using the --disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just for the resulting bindings. The configure step still continues to search for a working C++ compiler. Yes, I know I can upgrade the Intel compiler but we don't have that as an option in this case. >>> >>> Unfortunately, you're a bit out of luck. Open MPI 1.4.x requires C++ even >>> if you're not building the C++ bindings. This is not true of 1.5.x and >>> later. >>> >>> If you don't need the C++ bindings, I would build Open MPI with GNU C and >>> C++ and Intel Fortran. After building, edit >>> /share/openmpi/mpicc-wrapper-data.txt to change the compiler=gcc >>> line to compiler=. There's not going to be much >>> performance difference between the two compilers for Open MPI itself. GNU >>> C and Intel C are link compatible, so that should work out for you and the >>> users will never be the wiser. >>> >>> Brian >>> >>> -- >>> Brian W. Barrett >>> Dept. 1423: Scalable System Software >>> Sandia National Laboratories >>> >>> >>> >>> >>> >>> >>> ___ >>> 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/ > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users
Re: [OMPI users] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
That doesn't make a whole lot of sense; what compile / link line is resulting in that error message? The error message is saying that libmpi.so depends on an Intel built-in function, but since you built libmpi.so with gcc, that shouldn't happen. Are you sure that libmpi.so wasn't build against the Intel compilers? Brian On 3/20/12 11:35 AM, "Gunter, David O" wrote: >I wish it were that easy. When I go that route, I get error messages >like the following when trying to compile the parallel code with Intel: > >libmpi.so: undefined reference to `__intel_sse2_strcpy' > >and other messages for every single Intel-implemented standard C-function. > >-david >-- >David Gunter >HPC-3: Infrastructure Team >Los Alamos National Laboratory > > > > >On Mar 20, 2012, at 8:18 AM, Barrett, Brian W wrote: > >> On 3/20/12 10:06 AM, "Gunter, David O" wrote: >> >>> I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel >>>10.0 >>> compiler, but on a newer system in which the default g++ headers are >>> incompatible with Intel. Thus the C and Fortran compilers function >>> normally but the Intel C++ compiler fails to build even a simple "hello >>> world" code. >>> >>> Is there a way to build OMPI without a C++ compiler? I tried using the >>> --disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just >>>for >>> the resulting bindings. The configure step still continues to search >>>for >>> a working C++ compiler. >>> >>> Yes, I know I can upgrade the Intel compiler but we don't have that as >>>an >>> option in this case. >> >> Unfortunately, you're a bit out of luck. Open MPI 1.4.x requires C++ >>even >> if you're not building the C++ bindings. This is not true of 1.5.x and >> later. >> >> If you don't need the C++ bindings, I would build Open MPI with GNU C >>and >> C++ and Intel Fortran. After building, edit >> /share/openmpi/mpicc-wrapper-data.txt to change the compiler=gcc >> line to compiler=. There's not going to be much >> performance difference between the two compilers for Open MPI itself. >>GNU >> C and Intel C are link compatible, so that should work out for you and >>the >> users will never be the wiser. >> >> Brian >> >> -- >> Brian W. Barrett >> Dept. 1423: Scalable System Software >> Sandia National Laboratories >> >> >> >> >> >> >> ___ >> 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 > > -- Brian W. Barrett Dept. 1423: Scalable System Software Sandia National Laboratories
Re: [OMPI users] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
On 03/20/2012 08:35 AM, Gunter, David O wrote: I wish it were that easy. When I go that route, I get error messages like the following when trying to compile the parallel code with Intel: libmpi.so: undefined reference to `__intel_sse2_strcpy' and other messages for every single Intel-implemented standard C-function. -david -- There was a suggestion in the snipped portion which suggested you use gcc/g++ together with ifort; that doesn't appear to be what you mean by "that route." (unless you forgot to recompile your .c files by gcc) You have built some objects with an Intel compiler (either ifort or icc/icpc) which is referring to this Intel library function, but you apparently didn't link against the library which provides it. If you use one of those Intel compilers to drive the link, and your environment paths are set accordingly, the Intel libraries would be linked automatically. There was a single release of the compiler several years ago (well out of support now) where that sse2 library was omitted, although the sse3 version was present. -- Tim Prince
Re: [OMPI users] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
You are right, Brian. I failed to build from a fresh untar, so I had some leftover intel-compiled bits. Your suggestion seems to work so I'll pass it along to the user to try out. Thanks! -david -- David Gunter HPC-3: Infrastructure Team Los Alamos National Laboratory On Mar 20, 2012, at 9:52 AM, Barrett, Brian W wrote: > That doesn't make a whole lot of sense; what compile / link line is > resulting in that error message? The error message is saying that > libmpi.so depends on an Intel built-in function, but since you built > libmpi.so with gcc, that shouldn't happen. Are you sure that libmpi.so > wasn't build against the Intel compilers? > > Brian > > On 3/20/12 11:35 AM, "Gunter, David O" wrote: > >> I wish it were that easy. When I go that route, I get error messages >> like the following when trying to compile the parallel code with Intel: >> >> libmpi.so: undefined reference to `__intel_sse2_strcpy' >> >> and other messages for every single Intel-implemented standard C-function. >> >> -david >> -- >> David Gunter >> HPC-3: Infrastructure Team >> Los Alamos National Laboratory >> >> >> >> >> On Mar 20, 2012, at 8:18 AM, Barrett, Brian W wrote: >> >>> On 3/20/12 10:06 AM, "Gunter, David O" wrote: >>> I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel 10.0 compiler, but on a newer system in which the default g++ headers are incompatible with Intel. Thus the C and Fortran compilers function normally but the Intel C++ compiler fails to build even a simple "hello world" code. Is there a way to build OMPI without a C++ compiler? I tried using the --disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just for the resulting bindings. The configure step still continues to search for a working C++ compiler. Yes, I know I can upgrade the Intel compiler but we don't have that as an option in this case. >>> >>> Unfortunately, you're a bit out of luck. Open MPI 1.4.x requires C++ >>> even >>> if you're not building the C++ bindings. This is not true of 1.5.x and >>> later. >>> >>> If you don't need the C++ bindings, I would build Open MPI with GNU C >>> and >>> C++ and Intel Fortran. After building, edit >>> /share/openmpi/mpicc-wrapper-data.txt to change the compiler=gcc >>> line to compiler=. There's not going to be much >>> performance difference between the two compilers for Open MPI itself. >>> GNU >>> C and Intel C are link compatible, so that should work out for you and >>> the >>> users will never be the wiser. >>> >>> Brian >>> >>> -- >>> Brian W. Barrett >>> Dept. 1423: Scalable System Software >>> Sandia National Laboratories >>> >>> >>> >>> >>> >>> >>> ___ >>> 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 >> >> > > > -- > Brian W. Barrett > Dept. 1423: Scalable System Software > Sandia National Laboratories > > > > > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users
Re: [OMPI users] [EXTERNAL] Possible to build ompi-1.4.3 or 1.4.5 without a C++ compiler?
David - No problem. Generally, you can get away with that trick whenever you're compiling shared libraries and using the system compiler. The biggest advantage is that the chance of the code being mis-compiled goes down significantly when using the system compiler. The kernel is a good stress test that all the atomics got implemented properly :). Brian On 3/20/12 1:24 PM, "Gunter, David O" wrote: >You are right, Brian. I failed to build from a fresh untar, so I had some >leftover intel-compiled bits. > >Your suggestion seems to work so I'll pass it along to the user to try >out. > >Thanks! > >-david >-- >David Gunter >HPC-3: Infrastructure Team >Los Alamos National Laboratory > > > > >On Mar 20, 2012, at 9:52 AM, Barrett, Brian W wrote: > >> That doesn't make a whole lot of sense; what compile / link line is >> resulting in that error message? The error message is saying that >> libmpi.so depends on an Intel built-in function, but since you built >> libmpi.so with gcc, that shouldn't happen. Are you sure that libmpi.so >> wasn't build against the Intel compilers? >> >> Brian >> >> On 3/20/12 11:35 AM, "Gunter, David O" wrote: >> >>> I wish it were that easy. When I go that route, I get error messages >>> like the following when trying to compile the parallel code with Intel: >>> >>> libmpi.so: undefined reference to `__intel_sse2_strcpy' >>> >>> and other messages for every single Intel-implemented standard >>>C-function. >>> >>> -david >>> -- >>> David Gunter >>> HPC-3: Infrastructure Team >>> Los Alamos National Laboratory >>> >>> >>> >>> >>> On Mar 20, 2012, at 8:18 AM, Barrett, Brian W wrote: >>> On 3/20/12 10:06 AM, "Gunter, David O" wrote: > I need to build ompi-1.4.3 (or the newer 1.4.5) with an older Intel > 10.0 > compiler, but on a newer system in which the default g++ headers are > incompatible with Intel. Thus the C and Fortran compilers function > normally but the Intel C++ compiler fails to build even a simple >"hello > world" code. > > Is there a way to build OMPI without a C++ compiler? I tried using >the > --disable-mpi-cxx and --disable-mpi-cxx-seek flags but these are just > for > the resulting bindings. The configure step still continues to search > for > a working C++ compiler. > > Yes, I know I can upgrade the Intel compiler but we don't have that >as > an > option in this case. Unfortunately, you're a bit out of luck. Open MPI 1.4.x requires C++ even if you're not building the C++ bindings. This is not true of 1.5.x and later. If you don't need the C++ bindings, I would build Open MPI with GNU C and C++ and Intel Fortran. After building, edit /share/openmpi/mpicc-wrapper-data.txt to change the compiler=gcc line to compiler=. There's not going to be much performance difference between the two compilers for Open MPI itself. GNU C and Intel C are link compatible, so that should work out for you and the users will never be the wiser. Brian -- Brian W. Barrett Dept. 1423: Scalable System Software Sandia National Laboratories ___ 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 >>> >>> >> >> >> -- >> Brian W. Barrett >> Dept. 1423: Scalable System Software >> Sandia National Laboratories >> >> >> >> >> >> >> ___ >> 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 > > -- Brian W. Barrett Dept. 1423: Scalable System Software Sandia National Laboratories
Re: [OMPI users] Problem with MPI_Barrier (Inter-communicator)
Hi Edgar. Thanks for the response. The simplified code is attached: server, client and a .h containing some constants. I put some "prints" to show the behavior. Regards Rodrigo On Tue, Mar 20, 2012 at 11:47 AM, Edgar Gabriel wrote: > do you have by any chance the actual or a small reproducer? It might be > much easier to hunt the problem down... > > Thanks > Edgar > > On 3/19/2012 8:12 PM, Rodrigo Oliveira wrote: > > Hi there. > > > > I am facing a very strange problem when using MPI_Barrier over an > > inter-communicator after some operations I describe bellow: > > > > 1) I start a server calling mpirun. > > 2) The server spawns 2 copies of a client using MPI_Comm_spawn, creating > > an inter-communicator between the two groups. The server group with 1 > > process (lets name it as A) and the client group with 2 processes (group > B). > > 3) After that, I need to detach one of the processes (rank 0) in group B > > from the inter-communicator AB. To do that I do the following steps: > > > > Server side: > > . > > tmp_inter_comm = client_comm.Create ( client_comm.Get_group ( ) > ); > > client_comm.Free ( ); > > client_comm = tmp_inter_comm; > > . > > client_comm.Barrier(); > > . > > > > Client side: > > > > rank = 0; > > tmp_inter_comm = server_comm.Create ( server_comm.Get_group ( > > ).Excl ( 1, &rank ) ); > > server_comm.Free ( ); > > server_comm = tmp_inter_comm; > > . > > if (server_comm != MPI::COMM_NULL) > > server_comm.Barrier(); > > > > > > The problem: everything works fine until the call to Barrier. In that > > point, the server exits the barrier, but the client at the group B does > > not. Observe that we have only one process inside B, because I used Excl > > to remove one process from the original group. > > > > p.s.: This occurs in the version 1.5.4 and the C++ API. > > > > I am very concerned about this problem because this solution plays a > > very important role in my master thesis. > > > > Is this an ompi problem or am I doing something wrong? > > > > Thanks in advance > > > > Rodrigo Oliveira > > > > > > ___ > > 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 > #define OP_SHUT 0 #define OP_REM 1#include #include #include #include #include #include #include #include #include "constants.h" using namespace std; MPI::Intercomm spawn ( MPI::Intracomm& self_comm, vector > & argv, vector& commands, vector& hosts, int* number_process, string& work_directory ); void removeClient ( MPI::Intercomm& client_comm, int rank ); int main ( int argc, char *argv[] ) { MPI::Init ( argc, argv ); /** Initializations */ MPI::Intracomm self_comm = MPI::COMM_SELF; MPI::Intercomm client_comm; vector < string > commands; vector < vector > arguments; vector < string > hosts; int number_process[1]; vector < string > arg; commands.push_back ( "client" ); arg.push_back ( "none" ); arguments.push_back ( arg ); hosts.push_back ( "hera" ); /** This is the host where the server will spawn the clients. */ number_process[0] = 2; string server_work_directory = "/home/speed/rsilva/Desktop"; /** This have to be changed. */ cout << "++ Server spawning 2 copies of client" << endl; client_comm = spawn ( self_comm, arguments, commands, hosts, number_process, server_work_directory ); cout << "++ Server removing the client rank 0" << endl; removeClient ( client_comm, 0 ); for (int i = 0; i < client_comm.Get_remote_size ( ); ++i) { client_comm.Send ( NULL, 0, MPI::BYTE, i, OP_SHUT ); } cout << "++ Server before barrier " << endl; client_comm.Barrier(); cout << "++ Server after barrier " << endl; MPI::Finalize ( ); } void removeClient ( MPI::Intercomm& client_comm, int rank ) { MPI::Intercomm tmp_inter_comm; int message; message = rank; for (int i = 0; i < client_comm.Get_remote_size ( ); ++i) { client_comm.Send ( (void*) &message, sizeof(int), MPI::BYTE, i, OP_REM ); } tmp_inter_comm = client_comm.Create ( client_comm.Get_group ( ) ); client_comm.Free ( ); client_comm = tmp_inter_comm; } MPI::Intercomm spawn ( MPI::Intracomm& self_comm, vector > & argv, vector& commands, vector& hosts, int* number_process, string& work_directory ) { char* cmd[commands.size ( )]; char **arguments[argv.size ( )]; MPI::Info info[hosts.size ( )]; MPI::Intercomm children_intercomm; string err_message; /** Creates the data structures required by the mpi spawn_multiple command. */ for (int i = 0; i < (int) hosts.size ( ); ++i) { /** Commands */ cmd[i] = (char*) malloc ( sizeof(char) * commands[i].length ( ) ); strcpy ( cmd[i], commands[i].c_str ( ) ); /** Commands' argument
Re: [OMPI users] Problem with MPI_Barrier (Inter-communicator)
The command I use to compile and run is: mpic++ server.cc -o server && mpic++ client.cc -o client && mpirun -np 1 ./server Rodrigo On Tue, Mar 20, 2012 at 3:40 PM, Rodrigo Oliveira wrote: > Hi Edgar. > > Thanks for the response. The simplified code is attached: server, client > and a .h containing some constants. I put some "prints" to show the > behavior. > > Regards > > Rodrigo > > > On Tue, Mar 20, 2012 at 11:47 AM, Edgar Gabriel wrote: > >> do you have by any chance the actual or a small reproducer? It might be >> much easier to hunt the problem down... >> >> Thanks >> Edgar >> >> On 3/19/2012 8:12 PM, Rodrigo Oliveira wrote: >> > Hi there. >> > >> > I am facing a very strange problem when using MPI_Barrier over an >> > inter-communicator after some operations I describe bellow: >> > >> > 1) I start a server calling mpirun. >> > 2) The server spawns 2 copies of a client using MPI_Comm_spawn, creating >> > an inter-communicator between the two groups. The server group with 1 >> > process (lets name it as A) and the client group with 2 processes >> (group B). >> > 3) After that, I need to detach one of the processes (rank 0) in group B >> > from the inter-communicator AB. To do that I do the following steps: >> > >> > Server side: >> > . >> > tmp_inter_comm = client_comm.Create ( client_comm.Get_group ( ) >> ); >> > client_comm.Free ( ); >> > client_comm = tmp_inter_comm; >> > . >> > client_comm.Barrier(); >> > . >> > >> > Client side: >> > >> > rank = 0; >> > tmp_inter_comm = server_comm.Create ( server_comm.Get_group ( >> > ).Excl ( 1, &rank ) ); >> > server_comm.Free ( ); >> > server_comm = tmp_inter_comm; >> > . >> > if (server_comm != MPI::COMM_NULL) >> > server_comm.Barrier(); >> > >> > >> > The problem: everything works fine until the call to Barrier. In that >> > point, the server exits the barrier, but the client at the group B does >> > not. Observe that we have only one process inside B, because I used Excl >> > to remove one process from the original group. >> > >> > p.s.: This occurs in the version 1.5.4 and the C++ API. >> > >> > I am very concerned about this problem because this solution plays a >> > very important role in my master thesis. >> > >> > Is this an ompi problem or am I doing something wrong? >> > >> > Thanks in advance >> > >> > Rodrigo Oliveira >> > >> > >> > ___ >> > 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 >> > >
[OMPI users] oMPI hang with IB question
Hello, I've been having trouble for awhile now running some OpenMPI+IB jobs on multiple tasks. The problems are all "hangs" and are not reproducible - the same execution started again will in general proceed just fine where previously it got stuck, but then later get stuck. These stuck processes are pegged at 100% CPU usage and remain there for days if not killed. The same nature of problem exists in oMPI 1.2.5, 1.4.2, and 1.5.3 (for the code I am running). This is quite possible some problem in the configuration/cluster, I am not claiming that it is a bug in oMPI, but was just hopeful that someone might have a guess as to what is going on. In ancient 1.2.5 the problem manifests as (I attach gdb to the stalled process on one of the child nodes): (gdb) bt #0 0x2b8135b3f699 in ibv_cmd_create_qp () from /usr/lib64/libmlx4-rdmav2.so #1 0x2b8135b3faa6 in ibv_cmd_create_qp () from /usr/lib64/libmlx4-rdmav2.so #2 0x2b813407bff1 in btl_openib_component_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib/openmpi/mca_btl_openib.so #3 0x2b8133e6f04a in mca_bml_r2_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib/openmpi/mca_bml_r2.so #4 0x2b812f52c9ba in opal_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libopen-pal.so.0 #5 0x2b812f067b05 in ompi_request_wait_all () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libmpi.so.0 #6 0x in ?? () (gdb) next Single stepping until exit from function ibv_cmd_create_qp, which has no line number information. 0x2b8135b3f358 in pthread_spin_unlock@plt () from /usr/lib64/libmlx4-rdmav2.so (gdb) next Single stepping until exit from function pthread_spin_unlock@plt, which has no line number information. 0x0038c860b760 in pthread_spin_unlock () from /lib64/libpthread.so.0 (gdb) next Single stepping until exit from function pthread_spin_unlock, which has no line number information. 0x2b8135b3fc21 in ibv_cmd_create_qp () from /usr/lib64/libmlx4-rdmav2.so (gdb) next Single stepping until exit from function ibv_cmd_create_qp, which has no line number information. 0x2b813407bff1 in btl_openib_component_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib/openmpi/mca_btl_openib.so (gdb) next Single stepping until exit from function btl_openib_component_progress, which has no line number information. 0x2b8133e6f04a in mca_bml_r2_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib/openmpi/mca_bml_r2.so (gdb) next Single stepping until exit from function mca_bml_r2_progress, which has no line number information. 0x2b812f52c9ba in opal_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libopen-pal.so.0 (gdb) next Single stepping until exit from function opal_progress, which has no line number information. 0x2b812f067b05 in ompi_request_wait_all () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libmpi.so.0 (gdb) next Single stepping until exit from function ompi_request_wait_all, which has no line number information. ---hang--- (infinite loop?) On a different task: 0x2ba2383b4982 in opal_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libopen-pal.so.0 (gdb) bt #0 0x2ba2383b4982 in opal_progress () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libopen-pal.so.0 #1 0x2ba237eefb05 in ompi_request_wait_all () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libmpi.so.0 #2 0x in ?? () (gdb) next Single stepping until exit from function opal_progress, which has no line number information. 0x2ba237eefb05 in ompi_request_wait_all () from /n/sw/openmpi-1.2.5-gcc-4.1.2/lib64/libmpi.so.0 (gdb) next Single stepping until exit from function ompi_request_wait_all, which has no line number information. ---hang--- On 1.5.3 a similar "hang" problem happens but the backtrace goes back to the original code call which is a MPI_Sendrecv(): 3510OPAL_THREAD_UNLOCK(&endpoint->eager_rdma_local.lock); (gdb) bt #0 progress_one_device () at btl_openib_component.c:3510 #1 btl_openib_component_progress () at btl_openib_component.c:3541 #2 0x2b722f348b35 in opal_progress () at runtime/opal_progress.c:207 #3 0x2b722f287025 in opal_condition_wait (buf=0x2b636298, count=251328, datatype=0x6ef240, dst=12, tag=35, sendmode=MCA_PML_BASE_SEND_STANDARD, comm=0x6ee430) at ../../../../opal/threads/condition.h:99 #4 ompi_request_wait_completion (buf=0x2b636298, count=251328, datatype=0x6ef240, dst=12, tag=35, sendmode=MCA_PML_BASE_SEND_STANDARD, comm=0x6ee430) at ../../../../ompi/request/request.h:377 #5 mca_pml_ob1_send (buf=0x2b636298, count=251328, datatype=0x6ef240, dst=12, tag=35, sendmode=MCA_PML_BASE_SEND_STANDARD, comm=0x6ee430) at pml_ob1_isend.c:125 #6 0x2b722f1cb568 in PMPI_Sendrecv (sendbuf=0x2aaba9587398, sendcount=251328, sendtype=0x6ef240, dest=12,