Re: [OMPI users] Extent of Distributed Array Type?

2012-07-24 Thread Richard Shaw
Thanks George, I'm glad it wasn't just me being crazy. I'll try and test that 
one soon. 

Cheers,
Richard


On Tuesday, 24 July, 2012 at 6:28 PM, George Bosilca wrote:

> Richard,
> 
> Thanks for identifying this issue and for the short example. I can confirm 
> your original understanding was right, the upper bound should be identical on 
> all ranks. I just pushed a patch (r26862), let me know if this fixes your 
> issue.
> 
>   Thanks,
> george.
> 
> 




Re: [OMPI users] Extent of Distributed Array Type?

2012-07-24 Thread Jeff Squyres
On Jul 24, 2012, at 6:28 PM, George Bosilca wrote:

> Thanks for identifying this issue and for the short example. I can confirm 
> your original understanding was right, the upper bound should be identical on 
> all ranks. I just pushed a patch (r26862), let me know if this fixes your 
> issue.

Note that this patch is on the OMPI SVN trunk.  You can either build directly 
from an SVN checkout or grab a nightly tarball here (get any r number >= 26862, 
obviously, which will be tonight around 10pm US Eastern time at the earliest):

http://www.open-mpi.org/nightly/trunk/

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/




Re: [OMPI users] Extent of Distributed Array Type?

2012-07-24 Thread George Bosilca
Richard,

Thanks for identifying this issue and for the short example. I can confirm your 
original understanding was right, the upper bound should be identical on all 
ranks. I just pushed a patch (r26862), let me know if this fixes your issue.

  Thanks,
george.

On Jul 24, 2012, at 17:27 , Richard Shaw wrote:

> I've been speaking off line to Jonathan Dursi about this problem. And it does 
> seems to be a bug.
> 
> The same problem crops up in a simplified 1d only case (test case attached). 
> In this instance the specification seems to be comprehensible - looking at 
> the pdf copy of MPI-2.2 spec, p92-93, the definition of cyclic gives 
> MPI_LB=0, MPI_UB=gsize*ex.
> 
> Test case is creating a data type for an array of 10 doubles, cyclicly 
> distributed across two processes with a block size of 1. Expected extent is 
> 10*extent(MPI_DOUBLE) = 80. Results for OpenMPI v 1.4.4:
> 
> $ mpirun -np 2 ./testextent1d
> Rank 0, size=40, extent=80, lb=0
> Rank 1, size=40, extent=88, lb=0
> 
> 
> Can anyone else confirm this?
> 
> Thanks
> Richard
> 
> On Sunday, 15 July, 2012 at 6:21 PM, Richard Shaw wrote:
> 
>> Hello,
>> 
>> I'm getting thoroughly confused trying to work out what is the correct 
>> extent of a block-cyclic distributed array type (created with 
>> MPI_Type_create_darray), and I'm hoping someone can clarify it for me.
>> 
>> My expectation is that calling MPI_Get_extent on this type should return the 
>> size of the original, global, array in bytes, whereas MPI_Type_size gives 
>> the size of the local section. This isn't really clear from the MPI 2.2 
>> spec, but from reading around it sound like that's the obvious thing to 
>> expect.
>> 
>> I've attached a minimal C example which tests this behaviour, it creates a 
>> type which views a 10x10 array of doubles, in 3x3 blocks with a 2x2 process 
>> grid. So my expectation is that the extent is 10*10*sizeof(double) = 800. 
>> I've attached the results from running this below.
>> 
>> In practice both versions of OpenMPI (v1.4.4 and v1.6) I've tested don't 
>> give the behaviour I expect. It gives the correct type size on all 
>> processes, but only the rank 0 process gets the expected extent, all the 
>> others get a somewhat higher value. As a comparison IntelMPI (v4.0.3) does 
>> give the expected value for the extent (included below).
>> 
>> I'd be very grateful if someone could explain what the extent means for a 
>> darray type? And why it isn't the global array size?
>> 
>> Thanks,
>> Richard
>> 
>> 
>> 
>> == OpenMPI (v1.4.4 and 1.6) ==
>> 
>> $ mpirun -np 4 ./testextent
>> Rank 0, size=288, extent=800, lb=0
>> Rank 1, size=192, extent=824, lb=0
>> Rank 2, size=192, extent=1040, lb=0
>> Rank 3, size=128, extent=1064, lb=0
>> 
>> 
>> 
>> == IntelMPI ==
>> 
>> $ mpirun -np 4 ./testextent
>> Rank 0, size=288, extent=800, lb=0
>> Rank 1, size=192, extent=800, lb=0
>> Rank 2, size=192, extent=800, lb=0
>> Rank 3, size=128, extent=800, lb=0
>> 
>> Attachments:
>> - testextent.c
> 
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users



Re: [OMPI users] issue with addresses

2012-07-24 Thread Iliev, Hristo
Hi, Priyesh,

The output of your program is pretty much what one would expect. 
140736841025492 is 0x7FFFD96A87D4 which pretty much corresponds to a location 
in the stack, which is to be expected as a and b are scalar variables and most 
likely end up on the stack. As c is array its location is compiler-dependent. 
Some compilers put small arrays on the stack while others make them global or 
allocate them on the heap. In your case 0x6ABAD0 could either be somewhere in 
the BSS (where uninitialised global variables reside) or in the heap, which 
starts right after BSS (I would say it is the BSS). If the array is placed in 
BSS its location is fixed with respect to the image base.

Linux by default implements partial Address Space Layout Randomisation (ASLR) 
by placing the program stack at slightly different location with each run (this 
is to make remote stack based exploits harder). That's why you see different 
addresses for variables on the stack. But things in BSS would pretty much have 
the same addresses when the code is executed multiple times or on different 
machines having the same architecture and similar OS with similar settings 
since executable images are still loaded at the same base virtual address.

Having different addresses is not an issue for MPI as it only operates with 
pointers which are local to the process as well as with relative offsets. You 
pass the MPI_Send or MPI_Recv function the address of the data buffer in the 
current process and it has nothing to do with where those buffers are located 
in the other processes. Note also that MPI supports heterogeneous computing, 
e.g. the sending process might be 32-bit and the receiving one 64-bit. In this 
scenario it is quite probable that the addresses will differ by very large 
margin (e.g. the stack address of your 64-bit output is not even valid on 
32-bit system).

Hope that helps more :)

Kind regards,
Hristo

On 24.07.2012, at 02:02, Priyesh Srivastava wrote:

> hello  Hristo 
> 
> Thank you for your reply. I was able to understand some parts of your 
> response, but still had some doubts due to my lack of knowledge about the way 
> memory is allocated.
> 
> I have created a small sample program and the resulting output which will 
> help me  pin point my question.
> The program is : 
> 
>
> program test
>   include'mpif.h'
>   
>   integer a,b,c(10),ierr,id,datatype,size(3),type(3),i,status
>   
>   integer(kind=MPI_ADDRESS_KIND) add(3)
> 
> 
>   call MPI_INIT(ierr)
>   call MPI_COMM_RANK(MPI_COMM_WORLD,id,ierr)
>   call MPI_GET_ADDRESS(a,add(1),ierr)
>   write(*,*) 'address of a ,id ', add(1), id
>   call MPI_GET_ADDRESS(b,add(2),ierr)
>   write(*,*) 'address of b,id ', add(2), id 
>   call MPI_GET_ADDRESS(c,add(3),ierr)
>   write(*,*) 'address of c,id ', add(3), id
> 
>   add(3)=add(3)-add(1)
>   add(2)=add(2)-add(1)
>   add(1)=add(1)-add(1)
>   
>   size(1)=1
>   size(2)=1
>   size(3)=10
>   type(1)=MPI_INTEGER
>   type(2)=MPI_INTEGER
>   type(3)=MPI_INTEGER
>   call MPI_TYPE_CREATE_STRUCT(3,size,add,type,datatype,ierr)
>   call MPI_TYPE_COMMIT(datatype,ierr)
>   
>   write(*,*) 'datatype ,id', datatype , id
>   write(*,*) ' relative add1 ',add(1), 'id',id
>   write(*,*) ' relative add2 ',add(2), 'id',id
>   write(*,*) ' relative add3 ',add(3), 'id',id
>   if(id==0) then
>   a = 1000
>   b=2000
>   do i=1,10
>   c(i)=i
>   end do
>   c(10)=700
>   c(1)=600
>   end if
> 
> 
> if(id==0) then
>   call MPI_SEND(a,1,datatype,1,8,MPI_COMM_WORLD,ierr)
>   end if
> 
>   if(id==1) then
>   call MPI_RECV(a,1,datatype,0,8,MPI_COMM_WORLD,status,ierr)
>   write(*,*) 'id =',id
>   write(*,*) 'a=' , a
>   write(*,*) 'b=' , b
>   do i=1,10
>   write(*,*) 'c(',i,')=',c(i)
>   end do
>   end if
>   
>   call MPI_FINALIZE(ierr)
>   end
>
> 
>  
> the output is :
> 
> 
>  address of a ,id140736841025492   0
>  address of b,id1407368410254960
>  address of c,id69946400
>  datatype ,id 58   0
>   relative add1  0   id  0
>   relative add2  4   id  0
>   relative add3 -140736834030852   id  0
>  address of a ,id140736078234324   1
>  address of b,id 140736078234328   1
>  address of c,id 6994640   1
>  datatype ,id 58   1
>   relative add1 0  id1
>   relative add2 4 id 1
>   relative add3   -140736071239684 id  1
>  id =   1
>  a=1000
>  b=2000
>  c( 1 )= 600
>  c( 2 )

Re: [OMPI users] Extent of Distributed Array Type?

2012-07-24 Thread Richard Shaw
I've been speaking off line to Jonathan Dursi about this problem. And it does 
seems to be a bug.

The same problem crops up in a simplified 1d only case (test case attached). In 
this instance the specification seems to be comprehensible - looking at the pdf 
copy of MPI-2.2 spec, p92-93, the definition of cyclic gives MPI_LB=0, 
MPI_UB=gsize*ex.

Test case is creating a data type for an array of 10 doubles, cyclicly 
distributed across two processes with a block size of 1. Expected extent is 
10*extent(MPI_DOUBLE) = 80. Results for OpenMPI v 1.4.4:

$ mpirun -np 2 ./testextent1d
Rank 0, size=40, extent=80, lb=0
Rank 1, size=40, extent=88, lb=0




Can anyone else confirm this?

Thanks
Richard


On Sunday, 15 July, 2012 at 6:21 PM, Richard Shaw wrote:

> Hello,
> 
> I'm getting thoroughly confused trying to work out what is the correct extent 
> of a block-cyclic distributed array type (created with 
> MPI_Type_create_darray), and I'm hoping someone can clarify it for me.
> 
> My expectation is that calling MPI_Get_extent on this type should return the 
> size of the original, global, array in bytes, whereas MPI_Type_size gives the 
> size of the local section. This isn't really clear from the MPI 2.2 spec, but 
> from reading around it sound like that's the obvious thing to expect.
> 
> I've attached a minimal C example which tests this behaviour, it creates a 
> type which views a 10x10 array of doubles, in 3x3 blocks with a 2x2 process 
> grid. So my expectation is that the extent is 10*10*sizeof(double) = 800. 
> I've attached the results from running this below.
> 
> In practice both versions of OpenMPI (v1.4.4 and v1.6) I've tested don't give 
> the behaviour I expect. It gives the correct type size on all processes, but 
> only the rank 0 process gets the expected extent, all the others get a 
> somewhat higher value. As a comparison IntelMPI (v4.0.3) does give the 
> expected value for the extent (included below).
> 
> I'd be very grateful if someone could explain what the extent means for a 
> darray type? And why it isn't the global array size?
> 
> Thanks,
> Richard
> 
> 
> 
> == OpenMPI (v1.4.4 and 1.6) == 
> 
> $ mpirun -np 4 ./testextent
> Rank 0, size=288, extent=800, lb=0
> Rank 1, size=192, extent=824, lb=0
> Rank 2, size=192, extent=1040, lb=0
> Rank 3, size=128, extent=1064, lb=0
> 
> 
> 
> == IntelMPI ==
> 
> $ mpirun -np 4 ./testextent
> Rank 0, size=288, extent=800, lb=0
> Rank 1, size=192, extent=800, lb=0
> Rank 2, size=192, extent=800, lb=0
> Rank 3, size=128, extent=800, lb=0
> 
> 
> 
> 
> Attachments: 
> - testextent.c
> 




testextent1d.c
Description: Binary data


Re: [OMPI users] compiling openMPI 1.6 with Intel compilers on Ubuntu, getting error

2012-07-24 Thread Stephen J. Barr
Thank you, that worked perfectly, and thanks for the explanation as well.
Best,
Stephen

On Tue, Jul 24, 2012 at 7:58 AM, David Warren
wrote:

> Instead of sudo make install do
> sudo bash
> source /opt/intel/bin/compilervars.sh intel64
> make install
>
> Once you sudo you are starting a new shell as root, not a subshell. So,
> your environment does not go with it. You need to become root, then set the
> environment.
>
> On Tue, Jul 24, 2012 at 7:47 AM, Stephen J. Barr 
> wrote:
>
>> Greetings,
>>
>> I am working on building openmpi-1.6 on ubuntu 12.04 using the intel
>> compiler suite. My configure command was:
>>
>> ./configure --prefix=/usr/local/lib CC=icc CXX=icpc F77=ifort FC=ifort
>>
>> which completed successfully, as did 'make all'
>>
>> I am having trouble with the 'sudo make install' step. Specifically,
>>
>> make[2]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
>> make[3]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
>> test -z "/usr/local/lib/lib" || /bin/mkdir -p "/usr/local/lib/lib"
>>  /bin/bash ../../../libtool   --mode=install /usr/bin/install -c
>> libmpi_cxx.la '/usr/local/lib/lib'
>> libtool: install: warning: relinking `libmpi_cxx.la'
>> libtool: install: (cd /home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx;
>> /bin/bash /home/stevejb/apps/openmpi-1.6/libtool  --silent --tag CXX
>> --mode=relink icpc -O3 -DNDEBUG -finline-functions -pthread -version-info
>> 1:1:0 -export-dynamic -o libmpi_cxx.la -rpath /usr/local/lib/lib
>> mpicxx.lo intercepts.lo comm.lo datatype.lo win.lo file.lo ../../../ompi/
>> libmpi.la -lrt -lnsl -lutil )
>> /home/stevejb/apps/openmpi-1.6/libtool: line 8979: icpc: command not found
>> libtool: install: error: relink `libmpi_cxx.la' with the above command
>> before installing it
>> make[3]: *** [install-libLTLIBRARIES] Error 1
>> make[3]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
>> make[2]: *** [install-am] Error 2
>> make[2]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
>> make[1]: *** [install-recursive] Error 1
>> make[1]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi'
>> make: *** [install-recursive] Error 1
>>
>>
>> It seems to be a similar problem to this thread:
>> http://www.open-mpi.org/community/lists/users/2010/11/14913.php but I
>> cannot seem to get it resolved. From what I can tell, libtool cannot figure
>> out where icpc is. From what I know, that location is set in my .bashrc
>> script with the line:
>>
>> source /opt/intel/bin/compilervars.sh intel64
>>
>> In addition, I explicitly set it as:
>>
>> export PATH=$PATH:/opt/intel/composer_xe_2011_sp1.11.339/bin/intel64/
>>
>> What am I missing so that I can get libtool to see where icpc is?
>>
>> Thanks and best regards,
>> Stephen
>>
>> ___
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>
>
>
> --
> David Warren
> University of Washington
> 206 543-0954
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>


Re: [OMPI users] compiling openMPI 1.6 with Intel compilers on Ubuntu, getting error

2012-07-24 Thread David Warren
Instead of sudo make install do
sudo bash
source /opt/intel/bin/compilervars.sh intel64
make install

Once you sudo you are starting a new shell as root, not a subshell. So,
your environment does not go with it. You need to become root, then set the
environment.

On Tue, Jul 24, 2012 at 7:47 AM, Stephen J. Barr wrote:

> Greetings,
>
> I am working on building openmpi-1.6 on ubuntu 12.04 using the intel
> compiler suite. My configure command was:
>
> ./configure --prefix=/usr/local/lib CC=icc CXX=icpc F77=ifort FC=ifort
>
> which completed successfully, as did 'make all'
>
> I am having trouble with the 'sudo make install' step. Specifically,
>
> make[2]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[3]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> test -z "/usr/local/lib/lib" || /bin/mkdir -p "/usr/local/lib/lib"
>  /bin/bash ../../../libtool   --mode=install /usr/bin/install -c
> libmpi_cxx.la '/usr/local/lib/lib'
> libtool: install: warning: relinking `libmpi_cxx.la'
> libtool: install: (cd /home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx;
> /bin/bash /home/stevejb/apps/openmpi-1.6/libtool  --silent --tag CXX
> --mode=relink icpc -O3 -DNDEBUG -finline-functions -pthread -version-info
> 1:1:0 -export-dynamic -o libmpi_cxx.la -rpath /usr/local/lib/lib
> mpicxx.lo intercepts.lo comm.lo datatype.lo win.lo file.lo ../../../ompi/
> libmpi.la -lrt -lnsl -lutil )
> /home/stevejb/apps/openmpi-1.6/libtool: line 8979: icpc: command not found
> libtool: install: error: relink `libmpi_cxx.la' with the above command
> before installing it
> make[3]: *** [install-libLTLIBRARIES] Error 1
> make[3]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[2]: *** [install-am] Error 2
> make[2]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[1]: *** [install-recursive] Error 1
> make[1]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi'
> make: *** [install-recursive] Error 1
>
>
> It seems to be a similar problem to this thread:
> http://www.open-mpi.org/community/lists/users/2010/11/14913.php but I
> cannot seem to get it resolved. From what I can tell, libtool cannot figure
> out where icpc is. From what I know, that location is set in my .bashrc
> script with the line:
>
> source /opt/intel/bin/compilervars.sh intel64
>
> In addition, I explicitly set it as:
>
> export PATH=$PATH:/opt/intel/composer_xe_2011_sp1.11.339/bin/intel64/
>
> What am I missing so that I can get libtool to see where icpc is?
>
> Thanks and best regards,
> Stephen
>
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>



-- 
David Warren
University of Washington
206 543-0954


Re: [OMPI users] compiling openMPI 1.6 with Intel compilers on Ubuntu, getting error

2012-07-24 Thread Stephen J. Barr
'sudo which icpc' comes up blank, so that must be the problem.

Thanks!

On Tue, Jul 24, 2012 at 7:54 AM, Ralph Castain  wrote:

> When you use sudo, the shell replaces your existing environ and executes
> the root's login script - is that setting the path to icpc? You can check
> with "sudo which icpc".
>
>
> On Jul 24, 2012, at 7:47 AM, Stephen J. Barr wrote:
>
> Greetings,
>
> I am working on building openmpi-1.6 on ubuntu 12.04 using the intel
> compiler suite. My configure command was:
>
> ./configure --prefix=/usr/local/lib CC=icc CXX=icpc F77=ifort FC=ifort
>
> which completed successfully, as did 'make all'
>
> I am having trouble with the 'sudo make install' step. Specifically,
>
> make[2]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[3]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> test -z "/usr/local/lib/lib" || /bin/mkdir -p "/usr/local/lib/lib"
>  /bin/bash ../../../libtool   --mode=install /usr/bin/install -c
> libmpi_cxx.la '/usr/local/lib/lib'
> libtool: install: warning: relinking `libmpi_cxx.la'
> libtool: install: (cd /home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx;
> /bin/bash /home/stevejb/apps/openmpi-1.6/libtool  --silent --tag CXX
> --mode=relink icpc -O3 -DNDEBUG -finline-functions -pthread -version-info
> 1:1:0 -export-dynamic -o libmpi_cxx.la -rpath /usr/local/lib/lib
> mpicxx.lo intercepts.lo comm.lo datatype.lo win.lo file.lo ../../../ompi/
> libmpi.la -lrt -lnsl -lutil )
> /home/stevejb/apps/openmpi-1.6/libtool: line 8979: icpc: command not found
> libtool: install: error: relink `libmpi_cxx.la' with the above command
> before installing it
> make[3]: *** [install-libLTLIBRARIES] Error 1
> make[3]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[2]: *** [install-am] Error 2
> make[2]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[1]: *** [install-recursive] Error 1
> make[1]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi'
> make: *** [install-recursive] Error 1
>
>
> It seems to be a similar problem to this thread:
> http://www.open-mpi.org/community/lists/users/2010/11/14913.php but I
> cannot seem to get it resolved. From what I can tell, libtool cannot figure
> out where icpc is. From what I know, that location is set in my .bashrc
> script with the line:
>
> source /opt/intel/bin/compilervars.sh intel64
>
> In addition, I explicitly set it as:
>
> export PATH=$PATH:/opt/intel/composer_xe_2011_sp1.11.339/bin/intel64/
>
> What am I missing so that I can get libtool to see where icpc is?
>
> Thanks and best regards,
> Stephen
> ___
> 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] compiling openMPI 1.6 with Intel compilers on Ubuntu, getting error

2012-07-24 Thread Ralph Castain
When you use sudo, the shell replaces your existing environ and executes the 
root's login script - is that setting the path to icpc? You can check with 
"sudo which icpc".


On Jul 24, 2012, at 7:47 AM, Stephen J. Barr wrote:

> Greetings,
> 
> I am working on building openmpi-1.6 on ubuntu 12.04 using the intel compiler 
> suite. My configure command was:
> 
> ./configure --prefix=/usr/local/lib CC=icc CXX=icpc F77=ifort FC=ifort
> 
> which completed successfully, as did 'make all'
> 
> I am having trouble with the 'sudo make install' step. Specifically,
> 
> make[2]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[3]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> test -z "/usr/local/lib/lib" || /bin/mkdir -p "/usr/local/lib/lib"
>  /bin/bash ../../../libtool   --mode=install /usr/bin/install -c   
> libmpi_cxx.la '/usr/local/lib/lib'
> libtool: install: warning: relinking `libmpi_cxx.la'
> libtool: install: (cd /home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx; /bin/bash 
> /home/stevejb/apps/openmpi-1.6/libtool  --silent --tag CXX --mode=relink icpc 
> -O3 -DNDEBUG -finline-functions -pthread -version-info 1:1:0 -export-dynamic 
> -o libmpi_cxx.la -rpath /usr/local/lib/lib mpicxx.lo intercepts.lo comm.lo 
> datatype.lo win.lo file.lo ../../../ompi/libmpi.la -lrt -lnsl -lutil )
> /home/stevejb/apps/openmpi-1.6/libtool: line 8979: icpc: command not found
> libtool: install: error: relink `libmpi_cxx.la' with the above command before 
> installing it
> make[3]: *** [install-libLTLIBRARIES] Error 1
> make[3]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[2]: *** [install-am] Error 2
> make[2]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
> make[1]: *** [install-recursive] Error 1
> make[1]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi'
> make: *** [install-recursive] Error 1
> 
> 
> It seems to be a similar problem to this thread: 
> http://www.open-mpi.org/community/lists/users/2010/11/14913.php but I cannot 
> seem to get it resolved. From what I can tell, libtool cannot figure out 
> where icpc is. From what I know, that location is set in my .bashrc script 
> with the line:
> 
> source /opt/intel/bin/compilervars.sh intel64
> 
> In addition, I explicitly set it as:
> 
> export PATH=$PATH:/opt/intel/composer_xe_2011_sp1.11.339/bin/intel64/
> 
> What am I missing so that I can get libtool to see where icpc is?
> 
> Thanks and best regards,
> Stephen
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users



[OMPI users] compiling openMPI 1.6 with Intel compilers on Ubuntu, getting error

2012-07-24 Thread Stephen J. Barr
Greetings,

I am working on building openmpi-1.6 on ubuntu 12.04 using the intel
compiler suite. My configure command was:

./configure --prefix=/usr/local/lib CC=icc CXX=icpc F77=ifort FC=ifort

which completed successfully, as did 'make all'

I am having trouble with the 'sudo make install' step. Specifically,

make[2]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
make[3]: Entering directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
test -z "/usr/local/lib/lib" || /bin/mkdir -p "/usr/local/lib/lib"
 /bin/bash ../../../libtool   --mode=install /usr/bin/install -c
libmpi_cxx.la '/usr/local/lib/lib'
libtool: install: warning: relinking `libmpi_cxx.la'
libtool: install: (cd /home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx;
/bin/bash /home/stevejb/apps/openmpi-1.6/libtool  --silent --tag CXX
--mode=relink icpc -O3 -DNDEBUG -finline-functions -pthread -version-info
1:1:0 -export-dynamic -o libmpi_cxx.la -rpath /usr/local/lib/lib mpicxx.lo
intercepts.lo comm.lo datatype.lo win.lo file.lo
../../../ompi/libmpi.la-lrt -lnsl -lutil )
/home/stevejb/apps/openmpi-1.6/libtool: line 8979: icpc: command not found
libtool: install: error: relink `libmpi_cxx.la' with the above command
before installing it
make[3]: *** [install-libLTLIBRARIES] Error 1
make[3]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi/mpi/cxx'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/stevejb/apps/openmpi-1.6/ompi'
make: *** [install-recursive] Error 1


It seems to be a similar problem to this thread:
http://www.open-mpi.org/community/lists/users/2010/11/14913.php but I
cannot seem to get it resolved. From what I can tell, libtool cannot figure
out where icpc is. From what I know, that location is set in my .bashrc
script with the line:

source /opt/intel/bin/compilervars.sh intel64

In addition, I explicitly set it as:

export PATH=$PATH:/opt/intel/composer_xe_2011_sp1.11.339/bin/intel64/

What am I missing so that I can get libtool to see where icpc is?

Thanks and best regards,
Stephen