On Jul 16, 2006, at 4:13 PM, Eric Thibodeau wrote:
Now that I have that out of the way, I'd like to know how I am supposed to compile my apps so that they can run on an homogenous network with mpi. Here is an example:

kyron@headless ~/1_Files/1_ETS/1_Maitrise/MGL810/Devoir2 $ mpicc -L/ usr/X/lib -lm -lX11 -O3 mandelbrot-mpi.c -o mandelbrot-mpi

kyron@headless ~/1_Files/1_ETS/1_Maitrise/MGL810/Devoir2 $ mpirun -- hostfile hostlist -np 3 ~/1_Files/1_ETS/1_Maitrise/MGL810/Devoir2/ mandelbrot-mpi

---------------------------------------------------------------------- ----

Could not execute the executable "/home/kyron/1_Files/1_ETS/ 1_Maitrise/MGL810/Devoir2/mandelbrot-mpi": Exec format error


This could mean that your PATH or executable name is wrong, or that you do not

have the necessary permissions. Please ensure that the executable is able to be

found and executed.

---------------------------------------------------------------------- ----

As can be seen with the uname -a that was run previously, I have 2 "local nodes" on the x86_64 and two i686 nodes. I tried to find examples in the Doc on howto compile applications correctly for such a setup without compromising performance but I came short of an example.

From the sound of it, you have a heterogeneous configuration -- some nodes are x86_64 and some are x86. Because of this, you either have to compile your application twice, once for each platform or compile your application for the lowest common denominator. My guess would be that it easier and more foolproof if you compiled everything in 32 bit mode. If you run in a mixed mode, using application schemas (see the mpirun man page) will be the easiest way to make things work.


Brian

--
  Brian Barrett
  Open MPI developer
  http://www.open-mpi.org/


Reply via email to