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/