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