Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
(help) new kind of error <-> OcamlMPI
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-10-08 (07:32)
From: Rod <rodiney@g...>
Subject: Re: (help) new kind of error <-> OcamlMPI
Hi again folks!!
I'm really happy to announce you, guys, that, eventually, I got OcamlMPI
working good on my cluster. What I mean is: the problem about compiling and
executing the examples files provided by the latest release of OcamlMPI (i.e:
testmpi 'n test_mandel) is now definitely solved. Thus, once more, I would
like to thank Andres Varon and Rabih Chaar for helping me handling that
issue. You guys rock! :D
Well... let me to explain how I get OcamlMPI working nice with MPICH2. Then,
maybe, this could be useful for someone else. Here we go:

By watching the Makefile of OcamlMPI, I could understand that it is always
making reference to libmpi.a library (-lmpi). However, MPICH2 doesn't have
any libmpi.a. So, what to do then??
Well.. there isn't any libmpi.a but there is a lib called libmpich.a
Therefore, all I did was replace the '-lmpi' options found in such Makefile
with '-lmpich'. What this means it that the Makefile will now look for a lib
called libmpich.a (and no more libmpi.a) which exists in the MPICH2
implementation of MPI.
That is it!! After doing this and following some further instructions as we
can read in the README file (e.g.: ./configure, make, make install, etc)
found in the OcamlMPI install directory, everything worked good.

As mentioned earlier by our friend Andres Varon, the line "ocamlc -cc mpicc
-o testmpi unix.cma mpi.cma -ccopt -L." was enough to Ocaml for
proper compilation and linking.

OK. If MPICH2 is proper installed and configured on your cluster system,
there will be no problems for running the examples files (as well as others

So, OcamlMPI problem is now solved. Thanks y'all guys for everything you
Best regards,

                      Rodiney E.

On 10/1/07, Andres Varon <> wrote:
> On Sep 29, 2007, at 11:22 PM, Rod wrote:
> Hi there!! Here we go!
> Well.. I'm still having some troubles with OcamlMPI.
> Mr. Andres Varon, I just tried to compile file (i.e.: regression
> test), which is available on the latest release provided by Mr. Xavier
> Leroy, by doing what you suggested me to do. Unfortunately, it still didn't
> work. Thanks anyway, mate!
> So, after some time working on that issue, I've eventually got it compiled
> by doing the following:
> [rodiney@homer ocamlmpi-1.01]$ ocamlc -o testmpi mpi.cma unix.cma -L/usr/lib/lam -ccopt -L/usr/lib/ocaml/ocamlmpi -ccopt -llam -ccopt
> -lutil
> Here is the output:
> [rodiney@homer ocamlmpi-1.01]$ ocamlc -o testmpi mpi.cma unix.cma -L/usr/lib/lam -ccopt -L/usr/lib/ocaml/ocamlmpi -ccopt -llam -ccopt
> -lutil
> File "", line 144, characters 6-9:
> Warning Y: unused variable res.
> [rodiney@homer ocamlmpi-1.01]$
> As you all can see, there is only a warning message. I mean.. no big deal.
> So, that command line works pretty good.
> The problem occurs when I try to execute 'testmpi' file.
> I'm  getting the following message when doing this:
> rodiney@homer ocamlmpi-1.01]$ mpirun -np 1 ./testmpi
> ---------------------------------------------------------------------------------------
> It seems that there is no lamd running on the host homer.
> This indicates that the LAM/MPI runtime environment is not operating.
> The LAM/MPI runtime environment is necessary for MPI programs to run
> (the MPI program tired to invoke the "MPI_Init" function).
> Please run the "lamboot" command the start the LAM/MPI runtime
> environment.  See the LAM/MPI documentation for how to invoke
> "lamboot" across multiple machines.
> ---------------------------------------------------------------------------------------
> The same message appears by doing 'mpiexec -n 1 ./testmpi' as well.
> I would like to remember you, guys, that I'm using MPICH2 implementation
> of MPI (mpich2-1.0.6).
> So, although MPICH2 is already installed and configured properly, the
> message displayed above is just asking to start 'lamboot'. However,
> 'lamboot' is a tool provided by LAM/MPI: yet another an MPI implementation.
> Why it is asking me for 'lamboot' if I'm using the 'mpd' daemon (i.e.: the
> process manager) from MPICH2??
> Hmm. OK.. I've just started 'lamboot' and I did 'mpiexec -n 1 ./testmp'
> (or 'mpirun -np 1 ./testmpi') once more. Below is the output:
> [rodiney@homer ocamlmpi-1.01]$ mpiexec -n 1 ./testmpi
> MPI process rank 0 (n0, p3915) caught a SIGSEGV in MPI_Errhandler_free.
> Rank (0, MPI_COMM_WORLD): Call stack within LAM:
> Rank (0, MPI_COMM_WORLD):  - MPI_Errhandler_free()
> Rank (0, MPI_COMM_WORLD):  - MPI_Errhandler_set()
> Rank (0, MPI_COMM_WORLD):  - main()
> So, that's the point. What should I do to solve this problem and get
> 'testmpi' working??
> Please, help me!!! I'm almost loosing my mind!! LOL
> I'm looking forward for any help!!!
> Thanks in advance and sorry for such a long message. That's it!!
> You are compiling with lam, and so your program is not using MPICH2 but
> Lam/MPI. I strongly recommend you to use the line I suggested to compile the
> program, and make sure that the mpicc, mpiexe, and mpd that you run belong
> the the version of MPICH2 that you have installed. (you can use "which
> mpicc" to verify the path of the executable mpicc found by your shell, and
> that the path belongs to MPICH2's mpicc).
> Check the documentation of MPICH2 for compilation instructions. Really,
> all you need is mpicc. That's part of MPI's standard.
> That's all the help I can give you. Good luck,
> Andres
> Best regards,
>                     Rodiney