On Mar 23, 2007, at 10:53 AM, Ricardo Fonseca wrote:

I'm having problems compiling openmpi 1.2 under AIX 5.2. Here are the configure parameters:

./configure  --disable-shared --enable-static \
                   CC=xlc CXX=xlc++ F77=xlf FC=xlf95

To get it to work I have to do 2 changes:

diff -r openmpi-1.2/ompi/mpi/cxx/mpicxx.cc openmpi-1.2-aix/ompi/mpi/ cxx/mpicxx.cc
34a35,38
> #undef SEEK_SET
> #undef SEEK_CUR
> #undef SEEK_END
>

Hrm. This one is problematic in the general case; there's very weird mojo involved with the MPI C++ bindings to get MPI::SEEK_SET and friends to work properly.

Our support for MPI::SEEK_* isn't 100% correct yet (you can't use them in switch/case statements -- it's a long, convoluted story), so I don't think that I want to apply this patch to the general code base.

diff -r openmpi-1.2/orte/mca/pls/poe/pls_poe_module.c openmpi-1.2- aix/orte/mca/pls/poe/pls_poe_module.c
636a637,641
> static int pls_poe_cancel_operation(void)
> {
>     return ORTE_ERR_NOT_IMPLEMENTED;
> }

This last one means that when you run OpenMPI jobs through POE you get a:

[r1blade003:381130] [0,0,0] ORTE_ERROR_LOG: Not implemented in file errmgr_hnp.c at line 90 ---------------------------------------------------------------------- ---- mpirun was unable to cleanly terminate the daemons for this job. Returned value Not implemented instead of ORTE_SUCCESS.

at the job end.

Gotcha.

How about this compromise: since AIX is not an officially supported platform, I've added a category in the FAQ about AIX and put a link to this mail so that AIX users can manually apply these changes to get a working Open MPI.

(Our web server seems to be having some problems right now; I'll get the category added to the live site shortly)

Thanks for the patches!

--
Jeff Squyres
Cisco Systems

Reply via email to