[OMPI users] Problems compiling 1.2.4 using Intel Compiler 10.1.006 on Leopard

2007-11-20 Thread Mark Dobossy
I am running into some roadblocks in compiling OpenMPI 1.2.4 using the  
latest Intel Compilers (icc, icpc, ifort) version 10.1.006 on OS X  
Leopard (10.5.1).  Using the last revision of the intel compilers  
(version 10.0.20) works, but I need the 10.1 compilers to fix  
compilation of the code I am trying to parallelize, so I need to get  
everything working with 10.1.x.


If I issue my standard ./configure line:
./configure --prefix=/usr/local/openmpi --with-fortran --enable-shared  
--disable-static --with-xgrid


None of the test c or c++ programs can be compiled, due to a locale  
error:
Catastrophic error: could not set locale "" to allow processing of  
multibyte characters


This is a problem that intel seems to know about, and they have  
suggested adding a -no-multibyte-chars flag to fix it.  When I add the  
-no-multibyte-chars flag (via CFLAGS=-no-multibyte-chars CXXFLAGS=-no- 
multibyte-chars), the configure script runs successfully.  However,  
when I then try to compile, I fail with the following when making asm:


Making all in asm
source='asm.c' object='asm.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/sh ../../config/depcomp \
	/bin/sh ../../libtool --tag=CC   --mode=compile /Users/mark/Desktop/ 
openmpi-1.2.4/config/compile icc -DHAVE_CONFIG_H -I. -I../../opal/ 
include -I../../orte/include -I../../ompi/include   -I../..  - 
D_REENTRANT  -O3 -DNDEBUG -no-multibyte-chars -finline-functions -fno- 
strict-aliasing -restrict  -c -o asm.lo asm.c
libtool: compile:  /Users/mark/Desktop/openmpi-1.2.4/config/compile  
icc -DHAVE_CONFIG_H -I. -I../../opal/include -I../../orte/include - 
I../../ompi/include -I../.. -D_REENTRANT -O3 -DNDEBUG -no-multibyte- 
chars -finline-functions -fno-strict-aliasing -restrict -c asm.c  -fno- 
common -DPIC -o .libs/asm.o

rm -f atomic-asm.s
ln -s "../../opal/asm/generated/atomic-local.s" atomic-asm.s
/bin/sh ../../libtool   --mode=compile /Users/mark/Desktop/ 
openmpi-1.2.4/config/compile icc  -O3 -DNDEBUG -no-multibyte-chars - 
finline-functions -fno-strict-aliasing -restrict -c -o atomic-asm.lo  
atomic-asm.s
libtool: compile:  /Users/mark/Desktop/openmpi-1.2.4/config/compile  
icc -O3 -DNDEBUG -no-multibyte-chars -finline-functions -fno-strict- 
aliasing -restrict -c atomic-asm.s  -fno-common -DPIC -o .libs/atomic- 
asm.o
/bin/sh ../../libtool --tag=CC   --mode=link /Users/mark/Desktop/ 
openmpi-1.2.4/config/compile icc  -O3 -DNDEBUG -no-multibyte-chars - 
finline-functions -fno-strict-aliasing -restrict   -export-dynamic   - 
Wl,-u,_munmap -Wl,-multiply_defined,suppress -o libasm.la  asm.lo  
atomic-asm.lo  -lutil

libtool: link: ar cru .libs/libasm.a .libs/asm.o .libs/atomic-asm.o
ar: .libs/atomic-asm.o: No such file or directory
make[2]: *** [libasm.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1


Attached to this email are two tar/gzipped files.  The first,  
"openMPI_config_fail.tgz" contains the config.log, and output from ./ 
configure, if I do not specify the -no-multibyte-chars option.  The  
second, openMPI_make_fail.tgz, contains the config.log, ./configure  
output, and make output, if I do specify -no-multibyte-chars.


Any feedback on how to solve this issue would be greatly appreciated.   
Thanks!


-Mark




openMPI_config_fail.tgz
Description: Binary data


openMPI_make_fail.tgz
Description: Binary data






Re: [OMPI users] Problems compiling 1.2.4 using Intel Compiler 10.1.006 on Leopard

2007-11-21 Thread Mark Dobossy

Thanks for the suggestion Jeff.

Unfortunately, that didn't fix the issue.

-Mark

On Nov 21, 2007, at 7:55 AM, Jeff Squyres wrote:


Can you try also adding CCASFLAGS=-no-multibyte-chars?


On Nov 20, 2007, at 2:45 PM, Mark Dobossy wrote:


I am running into some roadblocks in compiling OpenMPI 1.2.4 using
the latest Intel Compilers (icc, icpc, ifort) version 10.1.006 on OS
X Leopard (10.5.1).  Using the last revision of the intel compilers
(version 10.0.20) works, but I need the 10.1 compilers to fix
compilation of the code I am trying to parallelize, so I need to get
everything working with 10.1.x.

If I issue my standard ./configure line:
./configure --prefix=/usr/local/openmpi --with-fortran --enable-
shared --disable-static --with-xgrid

None of the test c or c++ programs can be compiled, due to a locale
error:
Catastrophic error: could not set locale "" to allow processing of
multibyte characters

This is a problem that intel seems to know about, and they have
suggested adding a -no-multibyte-chars flag to fix it.  When I add
the -no-multibyte-chars flag (via CFLAGS=-no-multibyte-chars
CXXFLAGS=-no-multibyte-chars), the configure script runs
successfully.  However, when I then try to compile, I fail with the
following when making asm:

Making all in asm
source='asm.c' object='asm.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/sh ../../config/depcomp \
/bin/sh ../../libtool --tag=CC   --mode=compile /Users/mark/Desktop/
openmpi-1.2.4/config/compile icc -DHAVE_CONFIG_H -I. -I../../opal/
include -I../../orte/include -I../../ompi/include   -I../..  -
D_REENTRANT  -O3 -DNDEBUG -no-multibyte-chars -finline-functions -
fno-strict-aliasing -restrict  -c -o asm.lo asm.c
libtool: compile:  /Users/mark/Desktop/openmpi-1.2.4/config/compile
icc -DHAVE_CONFIG_H -I. -I../../opal/include -I../../orte/include -
I../../ompi/include -I../.. -D_REENTRANT -O3 -DNDEBUG -no-multibyte-
chars -finline-functions -fno-strict-aliasing -restrict -c asm.c  -
fno-common -DPIC -o .libs/asm.o
rm -f atomic-asm.s
ln -s "../../opal/asm/generated/atomic-local.s" atomic-asm.s
/bin/sh ../../libtool   --mode=compile /Users/mark/Desktop/
openmpi-1.2.4/config/compile icc  -O3 -DNDEBUG -no-multibyte-chars -
finline-functions -fno-strict-aliasing -restrict -c -o atomic-asm.lo
atomic-asm.s
libtool: compile:  /Users/mark/Desktop/openmpi-1.2.4/config/compile
icc -O3 -DNDEBUG -no-multibyte-chars -finline-functions -fno-strict-
aliasing -restrict -c atomic-asm.s  -fno-common -DPIC -o .libs/
atomic-asm.o
/bin/sh ../../libtool --tag=CC   --mode=link /Users/mark/Desktop/
openmpi-1.2.4/config/compile icc  -O3 -DNDEBUG -no-multibyte-chars -
finline-functions -fno-strict-aliasing -restrict   -export-dynamic
-Wl,-u,_munmap -Wl,-multiply_defined,suppress -o libasm.la  asm.lo
atomic-asm.lo  -lutil
libtool: link: ar cru .libs/libasm.a .libs/asm.o .libs/atomic-asm.o
ar: .libs/atomic-asm.o: No such file or directory
make[2]: *** [libasm.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1


Attached to this email are two tar/gzipped files.  The first,
"openMPI_config_fail.tgz" contains the config.log, and output from ./
configure, if I do not specify the -no-multibyte-chars option.  The
second, openMPI_make_fail.tgz, contains the config.log, ./configure
output, and make output, if I do specify -no-multibyte-chars.

Any feedback on how to solve this issue would be greatly
appreciated.  Thanks!

-Mark






--
Jeff Squyres
Cisco Systems

___
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users




[OMPI users] Outputting rank and size for all outputs.

2008-06-24 Thread Mark Dobossy
Lately I have been doing a great deal of MPI debugging.  I have, on an  
occasion or two, fallen into the trap of "Well, that error MUST be  
coming from rank X.  There is no way it could be coming from any other  
rank..."  Then proceeding to debug what's happening at rank X, only to  
find out a few frustrating hours later that rank Y is throwing the  
output (I'm sure no one else out there has fallen into this trap).  It  
was at that point, I decided to write up some code to automatically  
(sort of) output the rank and size of my domain with every output.  I  
write mostly in C++, and this is what I came up with:


#include 
#include 

std::ostream &mpi_info(std::ostream &s) {
int rank, size;
rank = MPI::COMM_WORLD.Get_rank();
size = MPI::COMM_WORLD.Get_size();
s << "[rk:" << rank << ",sz:" << size << "]: ";
return s;
}

Then in my code, I have changed:

std::cerr << "blah" << std::endl;

to:

std::cerr << mpi_info << "blah" << std::endl;

(or cout, or file stream, etc...)

where "blah" is some amazingly informative error message.

Are there other ways people do this?  Simpler ways perhaps?

-Mark


Re: [OMPI users] Outputting rank and size for all outputs.

2008-07-11 Thread Mark Dobossy
That sounds great Ralph!  Do you have any more details about how the  
process rank would be added?


And thanks for the other suggestions from Ashley and Galen.  Both  
methods look like they would work great, and are probably a little  
nicer than my current setup.


-Mark


On Jul 11, 2008, at 9:46 AM, Ralph H Castain wrote:

Adding the ability to tag stdout/err with the process rank is fairly  
simple.
We are going to talk about this next week at a design meeting - we  
have
several different tagging schemes that people have requested, so we  
want to
define a way to meet them all that doesn't create too much ugliness  
in the

code.

Will get back to you on this one. Regardless, the earliest version  
it could
show up in would be 1.3 (which is a tight question given current  
release

plans).


On 6/24/08 9:36 AM, "Ashley Pittman" thinking.com>

wrote:



If you are using the openmpi mpirun then you can put the following  
in a
wrapper script which will prefix stdout in a manner similar to what  
you
appear to want.  Simply add the wrapper script before the name of  
your

application.

Is this the kind of thing you were aiming for?  I'm quite surprised
mpirun doesn't have an option for this actually, it's a fairly common
thing to want.

Ashley Pittman.

#!/bin/sh

$@ | sed "s/^/\[rk:$OMPI_MCA_ns_nds_vpid,sz: 
$OMPI_MCA_ns_nds_num_procs

\]/"

On Tue, 2008-06-24 at 11:06 -0400, Mark Dobossy wrote:
Lately I have been doing a great deal of MPI debugging.  I have,  
on an

occasion or two, fallen into the trap of "Well, that error MUST be
coming from rank X.  There is no way it could be coming from any  
other
rank..."  Then proceeding to debug what's happening at rank X,  
only to

find out a few frustrating hours later that rank Y is throwing the
output (I'm sure no one else out there has fallen into this  
trap).  It

was at that point, I decided to write up some code to automatically
(sort of) output the rank and size of my domain with every  
output.  I

write mostly in C++, and this is what I came up with:

#include 
#include 

std::ostream &mpi_info(std::ostream &s) {
int rank, size;
rank = MPI::COMM_WORLD.Get_rank();
size = MPI::COMM_WORLD.Get_size();
s << "[rk:" << rank << ",sz:" << size << "]: ";
return s;
}

Then in my code, I have changed:

std::cerr << "blah" << std::endl;

to:

std::cerr << mpi_info << "blah" << std::endl;

(or cout, or file stream, etc...)

where "blah" is some amazingly informative error message.

Are there other ways people do this?  Simpler ways perhaps?

-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