<table cellspacing='0' cellpadding='0' border='0' ><tr><td valign='top' style='font: inherit;'>It is you to set up your system/env correctly for what ou need to get done.&nbsp; I set mine up to work with 6 platforms, including linux 32 and linux 64.&nbsp; and that is truely a piece of cake if you put in the time.<br><br>tan<br><br><br>--- On <b>Thu, 6/26/08, Daniel Fetchinson <i>&lt;fetchinson@googlemail.com&gt;</i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">From: Daniel Fetchinson &lt;fetchinson@googlemail.com&gt;<br>Subject: Re: [mpich-discuss] building 32 bit shmem on 64 bit linux system<br>To: mpich-discuss@mcs.anl.gov<br>Date: Thursday, June 26, 2008, 8:23 AM<br><br><pre>&gt; It must be the mpirun then. Make sure you use the mpirun from the same<br>&gt; build. Give the full path if necessary.<br>&gt;<br>&gt; Rajeev<br><br>Thanks, but there is only one installation of mpi on the
 machine and<br>that installation is the one I keep compiling. So even if it wanted to<br>execute the wrong mpicc/mpirun/etc it couldn't because there is only 1<br>copy at any given time.<br><br>Nevertheless I recompiled now mpi as well as my program and still I<br>get the same error:<br><br>0 - MPI_INIT : MPIRUN chose the wrong device ch_shmem; program needs<br>device ch_p4<br>/home/fetchinson/mpich32shmem/bin/mpirun.ch_shmem: line 91: 21976<br>Segmentation fault      /home/fetchinson/test "testinput"<br><br>Any ideas?<br>Daniel<br><br><br><br>&gt;&gt; &gt; Did you recompile the program? Make sure you use the mpicc<br>&gt;&gt; from this<br>&gt;&gt; &gt; build and not some other mpicc from another directory. Give<br>&gt;&gt; the full<br>&gt;&gt; &gt; path if necessary.<br>&gt;&gt; &gt;<br>&gt;&gt; &gt; Rajeev<br>&gt;&gt;<br>&gt;&gt; Yes, I did recompile the program using mpicc from the newly<br>&gt;&gt; built mpi library. Actually, there is only one
 mpicc on the<br>&gt;&gt; whole machine.<br>&gt;&gt;<br>&gt;&gt; Cheers,<br>&gt;&gt; Daniel<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; &gt;&gt; Actually, I spoke a bit too soon. Configure, make, make<br>&gt;&gt; install all<br>&gt;&gt; &gt;&gt; work but the code still doesn't run, saying:<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; 0 - MPI_INIT : MPIRUN chose the wrong device ch_shmem;<br>&gt;&gt; program needs<br>&gt;&gt; &gt;&gt; device ch_p4<br>&gt;&gt; &gt;&gt; /home/fetchinson/mpi32shmem/bin/mpirun.ch_shmem: line 91:<br>17761<br>&gt;&gt; &gt;&gt; Segmentation fault      /home/fetchinson/test<br>"testinput"<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; The exact same code runs on another machine where someone<br>else<br>&gt;&gt; &gt;&gt; installed a 32-bit shmem mpich1 library, I'm trying to do<br>&gt;&gt; the same on<br>&gt;&gt; &gt;&gt; a different machine now. It's an intel quad core so I<br>suppose the<br>&gt;&gt; &gt;&gt; shmem device should
 work. The configure options I used for<br>&gt;&gt; compiling<br>&gt;&gt; &gt;&gt; are<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; export CC='gcc -m32'<br>&gt;&gt; &gt;&gt; export F77='g77 -m32'<br>&gt;&gt; &gt;&gt; ./configure  --with-device=ch_shmem<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Do I need to specify the --with-arch option? Going through<br>&gt;&gt; the list<br>&gt;&gt; &gt;&gt; of available --with-arch options I'm not sure what I need<br>for an<br>&gt;&gt; &gt;&gt; Intel(R)<br>&gt;&gt; &gt;&gt; Core(TM)2 Quad CPU Q6600 @ 2.40GHz.<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; What am I doing wrong?<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; Cheers,<br>&gt;&gt; &gt;&gt; Daniel<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt; Thanks Anthony, that worked!<br>&gt;&gt; &gt;&gt; &gt;<br>&gt;&gt; &gt;&gt; &gt; Concerning MPICH2: I'm not in a position to change<br>the<br>&gt;&gt; &gt;&gt; communication<br>&gt;&gt;
 &gt;&gt; &gt; routines in the code  I use so this would only be an<br>option<br>&gt;&gt; &gt;&gt; if MPICH2<br>&gt;&gt; &gt;&gt; &gt; is fully backward compatible with MPICH1. Is this the<br>case?<br>&gt;&gt; &gt;&gt; Can I just<br>&gt;&gt; &gt;&gt; &gt; start using MPICH2 without changing anything in the code<br>if<br>&gt;&gt; &gt;&gt; it works<br>&gt;&gt; &gt;&gt; &gt; with MPICH1?<br>&gt;&gt; &gt;&gt; &gt;<br>&gt;&gt; &gt;&gt; &gt; Cheers,<br>&gt;&gt; &gt;&gt; &gt; Daniel<br>&gt;&gt; &gt;&gt; &gt;<br>&gt;&gt; &gt;&gt; &gt;<br>&gt;&gt; &gt;&gt; &gt;&gt; Since you are using MPICH-1, you can try setting CC,<br>F77 and F90<br>&gt;&gt; &gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt; CC="gcc -m32"<br>&gt;&gt; &gt;&gt; &gt;&gt; F77="g77 -m32"<br>&gt;&gt; &gt;&gt; &gt;&gt; ....<br>&gt;&gt; &gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt; BTW, can you use MPICH2 instead ?  We have shifted<br>all our<br>&gt;&gt; &gt;&gt; &gt;&gt; development effort to MPICH2
 which is more robust<br>than<br>&gt;&gt; &gt;&gt; MPICH-1.  If<br>&gt;&gt; &gt;&gt; &gt;&gt; you are using MPICH2, setting CFLAGS and FFLAGS<br>should<br>&gt;&gt; &gt;&gt; work, and you<br>&gt;&gt; &gt;&gt; &gt;&gt; can use nemesis which shared memory for intranode<br>communication.<br>&gt;&gt; &gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt; A.Chan<br>&gt;&gt; &gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt; ----- "Daniel Fetchinson"<br>&lt;fetchinson@googlemail.com&gt; wrote:<br>&gt;&gt; &gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; Hi folks,<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; I'd like to build the 32-bit shmem mpi<br>library because<br>&gt;&gt; &gt;&gt; the code I'll<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; use with mpi only works in 32-bit because of<br>some<br>&gt;&gt; 32-bit specific<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; assembly code. The machine is a 64-bit machine<br>with a<br>&gt;&gt; &gt;&gt; 64-bit linux<br>&gt;&gt;
 &gt;&gt; &gt;&gt;&gt; distribution (suse).<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; I tried configuring mpich-1.2.7p1 in a number of<br>ways:<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; ./configure --with-device=ch_shmem ./configure<br>&gt;&gt; --with-arch=LINUX<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; --with-device=ch_shmem ./configure<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; --with-arch=LINUX32 --with-device=ch_shmem<br>./configure<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; --with-arch=i386 --with-device=ch_shmem<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; with and without setting the following<br>environment<br>&gt;&gt; variables (in<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; bash):<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; export CFLAGS=-m32<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; export FFLAGS=-m32<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; Configuring went all
 right but none of the above<br>&gt;&gt; &gt;&gt; combinations worked<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; with 'make' unfortunately :( The error<br>in 'make' is<br>&gt;&gt; the following:<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; /home/fetchinson/mpich-1.2.7p1/bin/mpicc  -o<br>overtake<br>&gt;&gt; overtake.o<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; test.o<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt;<br>/usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse<br>&gt;&gt; &gt;&gt; -linux/bin/ld:<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; skipping incompatible<br>&gt;&gt; &gt;&gt; /home/fetchinson/mpich-1.2.7p1/lib/libmpich.a<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; when searching for -lmpich<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt;<br>/usr/lib64/gcc/x86_64-suse-linux/4.2.1/../../../../x86_64-suse<br>&gt;&gt; &gt;&gt; -linux/bin/ld:<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; cannot find -lmpich<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;
 collect2: ld returned 1 exit status<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; make[4]: *** [overtake] Error 1<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; make[3]: [linktest1] Error 2 (ignored) Could not<br>link<br>&gt;&gt; a C program<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; with MPI libraries<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; make[3]: *** [linktest1] Error 1<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; make[2]: *** [linktest] Error 2<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; make[1]: *** [mpi-lib-test] Error 2<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; make: *** [mpi] Error 2<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; Which makes me believe that I was not able to<br>convince the<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; compiler/linker/etc that I really want<br>everything in 32-bit.<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; What would be the correct way of compiling the<br>whole mpi<br>&gt;&gt; &gt;&gt; library to<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;
 32-bit?<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; Cheers,<br>&gt;&gt; &gt;&gt; &gt;&gt;&gt; Daniel<br>&gt;&gt; &gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; &gt;<br>&gt;&gt; &gt;&gt; &gt;<br>&gt;&gt; &gt;&gt; &gt; --<br>&gt;&gt; &gt;&gt; &gt; Psss, psss, put it down! -<br>http://www.cafepress.com/putitdown<br>&gt;&gt; &gt;&gt; &gt;<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt; --<br>&gt;&gt; &gt;&gt; Psss, psss, put it down! - http://www.cafepress.com/putitdown<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;&gt;<br>&gt;&gt; &gt;<br>&gt;&gt; &gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; --<br>&gt;&gt; Psss, psss, put it down! - http://www.cafepress.com/putitdown<br>&gt;&gt;<br>&gt;&gt;<br>&gt;<br>&gt;<br><br><br>-- <br>Psss, psss, put it down! - http://www.cafepress.com/putitdown</pre></blockquote></td></tr></table><br>