Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Please help me with this simple setup. i am stuck
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-05-11 08:47:48


It looks like you have a heterogeneous setup -- the error is
complaining that the executable you compiled on one machine will not
run on the other because the executable format is different.

You'll probably need to have different executables compiled for each
node (there's probably other ways to do it, but this is likely the
simplest). You probably also need separate OMPI installations on each
node -- make sure that the versions are the same. It is probably
easiest if the OMPI that is found in the default path on each node is
the one relevant for that platform. For example, see:

     http://www.open-mpi.org/faq/?category=building#where-to-install

Also, if you build two different pi programs, you might want to do
something like this:

    hardy$ mpicc pi.c -o pi.hardy

    lenny$ mpicc pi.c -o pi.lenny
    lenny$ mpiexec -np 2 --host lenny pi.lenny : -np 1 --host hardy
pi.hardy

Where the ":" effectively separates clauses on the mpiexec command
line; you end up launching pi.lenny on the lenny box and pi.hardy on
the hardy box.

On May 9, 2009, at 11:42 AM, Venu Gopal wrote:

> I am venu,
>
> I have tried to setup a simple 2 node openmpi system.
>
> on two machines one is running debian lenny (ip 10.0.3.1)
> other is running ubuntu hardy (ip 10.0.3.3)
>
> I am getting error when i try to execute a file using mpiexec, i am
> sure password is correct. as ssh is working
> and the file pi3 is in directory code which in turn is in my home
> directory venu.
>
> the file pi.c is below
>
>
>
> /* To run this
> program: */
> /
> *---------------------
> */
> /
> *
> */
> /
> *
> */
> /* Issue: time mpirun -np [nprocs] ./pi (SGI,
> Beowulf) */
> /
> *
> */
> /
> *
> */
> /*
> ------------------------------------------------------------------ */
>
> #include <stdio.h>
> #include <stdlib.h>
>
> #include "mpi.h"
>
> int main(int argc, char *argv[])
> {
> int i, n;
> double h, pi, x;
>
> int me, nprocs;
> double piece;
>
> /* --------------------------------------------------- */
>
> MPI_Init (&argc, &argv);
>
> MPI_Comm_size (MPI_COMM_WORLD, &nprocs);
> MPI_Comm_rank (MPI_COMM_WORLD, &me);
>
> /* --------------------------------------------------- */
>
> if (me == 0)
> {
> printf("%s", "Input number of intervals:\n");
> scanf ("%d", &n);
> }
>
> /* --------------------------------------------------- */
>
> MPI_Bcast (&n, 1, MPI_INT,
> 0, MPI_COMM_WORLD);
>
> /* --------------------------------------------------- */
>
> h = 1. / (double) n;
>
> piece = 0.;
>
> for (i=me+1; i <= n; i+=nprocs)
> {
> x = (i-1)*h;
>
> piece = piece + (
> 4/
> (1+(x)*(x))
> +
> 4/
> (1+(x+h)*(x+h))
> ) / 2 * h;
> }
>
> printf("%d: pi = %25.15f\n", me, piece);
>
> /* --------------------------------------------------- */
>
> MPI_Reduce (&piece, &pi, 1, MPI_DOUBLE,
> MPI_SUM, 0, MPI_COMM_WORLD);
>
> /* --------------------------------------------------- */
>
> if (me == 0)
> {
> printf("pi = %25.15f\n", pi);
> }
>
> /* --------------------------------------------------- */
>
> MPI_Finalize();
>
> return 0;
> }
>
>
>
> the code directory is nfs shared and mounted on the client system
> which is 10.0.3.3.
> the server system is 10.0.3.1
>
> i can ping the client from server and also server from client. ssh
> is working bothways.
>
> the /etc/openmpi/openmpi-default-hostfile is having the line on the
> first node ie. 10.0.3.1
>
> 10.0.3.3 slots=2
>
>
> the other nodes file is just empty. i mean only comments are there.
>
>
> this is the error is get when i execute.
>
>
> venu_at_mainframe:~$ mpiexec -np 3 ./code/pi3
> venu_at_10.0.3.3's password:
> --------------------------------------------------------------------------
> Could not execute the executable "./code/pi3": 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.
>
> --------------------------------------------------------------------------
> --------------------------------------------------------------------------
> Could not execute the executable "./code/pi3": 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.
>
> --------------------------------------------------------------------------
> --------------------------------------------------------------------------
> Could not execute the executable "./code/pi3": 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.
>
> --------------------------------------------------------------------------
>
>
>
> now, when i remove that line from /etc/openmpi/openmpi-default-
> hostfile on the first node
>
> the program compiles and executes on the first node node.
>
> same, when i compile it and execute it on the second node, it works.
>
> only problem is when i try to run it on both.
>
> i get the error mesage as above.
>
>
> someone, please help me. as i am trying to setup this system for the
> first time.
>
> and i am stuck.
>
> i am fairly good with linux. so i know my way around linux. but am
> stuck with open mpi.
> --
>
> Regards,
>
> Venu Gopal
>
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
Cisco Systems