Re: [OMPI users] cross-compiling openmpi-1.8.4 with static linking
OK, thank you for the clarification. As I said I was wondering about the general procedure. For example I have also another machine to which I would like to compile, that is the following Linux other_machine 3.17.6-200.fc20.x86_64 #1 SMP Mon Dec 8 15:21:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux * In first place: I am not sure I am considering the correct configuration triplets, because I have been using x86_64-pc-linux-gnu, and I would be grateful if somebody could give me feedback about that. *Because I am porting the code to a machine where I don't have compiler, I would like to know if the configuration I am using is correct for generating statically linked library (this is what I need, isn't it?). I have compiled without specifying host and build and now I get: ldd ../openmpi-1.8.4-cc/bin/mpif90 linux-vdso.so.1 => (0x2aaab000) libm.so.6 => /lib64/libm.so.6 (0x00322d80) libdl.so.2 => /lib64/libdl.so.2 (0x00322dc0) librt.so.1 => /lib64/librt.so.1 (0x00322e80) libutil.so.1 => /lib64/libutil.so.1 (0x00323440) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x2aac7000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00322e00) libc.so.6 => /lib64/libc.so.6 (0x00322d40) /lib64/ld-linux-x86-64.so.2 (0x00322d00) I thought that I would get no shared linking with LDFLAGS=-static-intel but now I see this refers only to intel library, is there a way to make all the linking static? Moreover mpirun has some broken links: ldd ./openmpi-1.8.4-cc/bin/mpirun linux-vdso.so.1 => (0x7fffc55b7000) libbat.so => not found liblsf.so => not found libnsl.so.1 => /lib/libnsl.so.1 (0x7f7c3ded9000) libm.so.6 => /lib/libm.so.6 (0x7f7c3dc56000) libdl.so.2 => /lib/libdl.so.2 (0x7f7c3da51000) librt.so.1 => /lib/librt.so.1 (0x7f7c3d849000) libutil.so.1 => /lib/libutil.so.1 (0x7f7c3d646000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x7f7c3d42f000) libpthread.so.0 => /lib/libpthread.so.0 (0x7f7c3d212000) libc.so.6 => /lib/libc.so.6 (0x7f7c3ce8e000) /lib64/ld-linux-x86-64.so.2 (0x7f7c3e10d000) *Moreover,when I try to compile with mpif90 on system B I get an error: Cannot open configuration file /data/user/data/local/openmpi-1.8.4-cc/share/openmpi/mpif90-wrapper-data.txt (that is a file that refers to the full path on system A, but on system B it has a different path, the fact is that I have no root-access on any of the two systems) Thanks 2015-02-08 18:57 GMT+01:00 Ralph Castain : > Well, the first thing is that there is no reason to cross compile in this > arrangement. Your target and host are the same, and the configuration won’t > do anything with it. > > Normally you would set host and target. However, like I said, in this case > you are providing the same argument to both, and so nothing will happen. > > > > On Feb 8, 2015, at 3:45 AM, simona bellavista wrote: > > > > I have two systems A (aka Host) and B (aka Target). On A a compiler > suite is installed (intel 14.0.2), on B there is no compiler. I want to > compile openmpi on A for running it on system B (in particular, I want to > use mpirun and mpif90), so I want to have static linking to the intel > libraries. First of all, I would like to know if it is possible to do this. > > > > The output of uname -a on the two systems is: > > 1) Host > > Linux host 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 > x86_64 x86_64 x86_64 GNU/Linux > > > > 2) Target > > Linux target 2.6.35-32-server #67-Ubuntu SMP Mon Mar 5 21:13:25 UTC 2012 > x86_64 GNU/Linux > > > > I am using the following configuration: > > > > export CC=icc > > export FC=ifort > > export CXX=icpc > > export LDFLAGS=-static-intel > > export LANG=C > > > > ./configure --prefix=/home/user/local/openmpi-1.8.4-cc/ > --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --enable-static > --disable-shared > > > > I am not sure if the configuration triplets I am using are correct. I > know that in this case I am not technically cross-compiling, but I was > wondering if in the general case I have also to set --target and to what. > > > > I get this error: > > > > Catastrophic error: could not set locale "" to allow processing of > multibyte characters > > > > I attach make.out and output.out (zipped) > > > ___ > > users mailing list > > us...@open-mpi.org > > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > > Link to this post: > http://www.open-mpi.org/community/lists/users/2015/02/26305.php > > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2015/02/26306.php
Re: [OMPI users] Max Registerable Memory Warning
This is what I got from our sys admins, Installed Packages Name : openib Arch : noarch Version: 1.5.4.1 Release: 4.el5 Size : 0.0 Repo : installed Summary: OpenIB Infiniband Driver Stack URL: http://www.openfabrics.org/ License: GPL/BSD Description: InfiniBand "verbs", Access Layer and ULPs They are planning to set, *options mlx4_core log_num_mtt=12* in */etc/modprobe.d/mlx4_core.**conf* I'll let you know how this goes on. Thank you, Saliya On Sun, Feb 8, 2015 at 4:41 PM, Deva wrote: > What OFED version you are running? If not latest, is it possible to > upgrade to latest OFED?. Otherwise, Can you try latest OMPI release (>= > v1.8.4), where this warning is ignored on older OFEDs > > -Devendar > > On Sun, Feb 8, 2015 at 12:37 PM, Saliya Ekanayake > wrote: > >> Hi, >> >> OpenMPI reports that the OpebFabrics is allowing it to register only part >> of the memory (error attached). I've looked at the suggested FAQ entry and >> see that *ulimit *settings are all unlimited (pasted below). Could you >> please give some suggestion to correct this? >> >> ulimit -a >> core file size (blocks, -c) 0 >> data seg size (kbytes, -d) unlimited >> scheduling priority (-e) 0 >> file size (blocks, -f) unlimited >> pending signals (-i) 386359 >> max locked memory (kbytes, -l) unlimited >> max memory size (kbytes, -m) unlimited >> open files (-n) 1024 >> pipe size(512 bytes, -p) 8 >> POSIX message queues (bytes, -q) 819200 >> real-time priority (-r) 0 >> stack size (kbytes, -s) 10240 >> cpu time (seconds, -t) unlimited >> max user processes (-u) 386359 >> virtual memory (kbytes, -v) unlimited >> file locks (-x) unlimited >> >> Thank you, >> Saliya >> >> >> -- >> Saliya Ekanayake >> Ph.D. Candidate | Research Assistant >> School of Informatics and Computing | Digital Science Center >> Indiana University, Bloomington >> Cell 812-391-4914 >> http://saliya.org >> >> ___ >> users mailing list >> us...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users >> Link to this post: >> http://www.open-mpi.org/community/lists/users/2015/02/26307.php >> > > > > -- > > > -Devendar > > ___ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2015/02/26308.php > -- Saliya Ekanayake Ph.D. Candidate | Research Assistant School of Informatics and Computing | Digital Science Center Indiana University, Bloomington Cell 812-391-4914 http://saliya.org
Re: [OMPI users] cross-compiling openmpi-1.8.4 with static linking
Simona, On 2015/02/08 20:45, simona bellavista wrote: > I have two systems A (aka Host) and B (aka Target). On A a compiler suite > is installed (intel 14.0.2), on B there is no compiler. I want to compile > openmpi on A for running it on system B (in particular, I want to use > mpirun and mpif90), so I want to have static linking to the intel > libraries. First of all, I would like to know if it is possible to do this. as Ralph already wrote, there is no need to cross compile. you are building on a fedora box, and plan running on an ubuntu box, all i can think is you might get some issues with system libraries versions. also, since both systems have different paths, that might be a mess to build (the simplest option is to run configure and make on system A and run make install on system B) do you really want to use mpif90 on system B ? since system B has no compilers, that will not work. -static-intel means the intel runtime is linked statically. this is necessary only if system B do not have the intel runtime installed, and you might want to configure with --with-wrapper-{c,cxx,fc}flags=-static-intel if you want to build ompi with static libs only, then you can configure with --enable-static --disable-shared about the missing libraries (liblsf and libbat), i can only assume system A has LSF installed but not system B. in this case, you can add the --without-lsf parameter to your configure line. since system B is an ubuntu box, i think things would be much easier for you if you built an ubuntu virtual machine with the same os version, set accounts and path the way they are set on system B (you are root on your vm) , and build ompi on this VM. Cheers, Gilles