My employer has a nice new Cray XC30 (aka Cascade), and I thought I'd give Open MPI a quick test.
Given that it is INTENDED to be API-compatible with the XE series, I began configuring with
CC=cc CXX=CC FC=ftn --with-platform=lanl/cray_xe6/optimized-nopanasas
However, since this is Intel h/w, I commented-out the following 2 lines in the platform file:
with_wrapper_cflags="-march=amdfam10"
CFLAGS=-march=amdfam10
I am using PrgEnv-gnu/5.0.15, though PrgEnv-intel is the default on our system
As far as I know, use of 1.6.x is out - no ugni at all, right?
So, I didn't even try.
I gave openmpi-1.7rc6 a try, but the ALPS headers and libs have moved (as mentioned in ompi-trunk/config/orte_check_alps.m4).
Perhaps one should CMR the updated-for-CLE-5 configure logic to the 1.7 branch?
Next, I tried a trunk nightly tarball: openmpi-1.9a1r27862.tar.bz2
As I mentioned above, the trunk has the right logic for locating ALPS.
However, it looks like there is some untested code, protected by "#if WANT_CRAY_PMI2_EXT", that needs work:
make[2]: Entering directory `/global/scratch/sd/hargrove/OMPI/openmpi-1.9a1r27862/BUILD/orte/mca/db/pmi'
CC db_pmi_component.lo
CC db_pmi.lo
../../../../../orte/mca/db/pmi/db_pmi.c: In function 'store':
../../../../../orte/mca/db/pmi/db_pmi.c:202: error: 'ptr' undeclared (first use in this function)
../../../../../orte/mca/db/pmi/db_pmi.c:202: error: (Each undeclared identifier is reported only once
../../../../../orte/mca/db/pmi/db_pmi.c:202: error: for each function it appears in.)
make[2]: *** [db_pmi.lo] Error 1
make[2]: Leaving directory `/global/scratch/sd/hargrove/OMPI/openmpi-1.9a1r27862/BUILD/orte/mca/db/pmi'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/global/scratch/sd/hargrove/OMPI/openmpi-1.9a1r27862/BUILD/orte'
make: *** [all-recursive] Error 1
I added the missing "char *ptr" declaration a few lines before it's first use, and resumed the build.
This time the build terminated at
make[2]: Entering directory `/global/scratch/sd/hargrove/OMPI/openmpi-1.9a1r27862/BUILD/opal/tools/wrappers'
CC opal_wrapper.o
CCLD opal_wrapper
/usr/bin/ld: attempted static link of dynamic object `../../../opal/.libs/libopen-pal.so'
collect2: error: ld returned 1 exit status
So I went back to the platform file and changed
enable_shared=yes
to
enable_shared=no
No big deal there - I had to make the same change for our XE6.
And so I started back at configure (after a "make distclean", to be safe), and here is the next error:
Making all in tools/orte-info
make[2]: Entering directory `/global/scratch/sd/hargrove/OMPI/openmpi-1.9a1r27862/BUILD/orte/tools/orte-info'
CCLD orte-info
../../../orte/.libs/libopen-rte.a(orte_info_support.o): In function `orte_info_show_orte_version':
orte_info_support.c:(.text+0xd70): multiple definition of `orte_info_show_orte_version'
version.o:version.c:(.text+0x4b0): first defined here
../../../orte/.libs/libopen-rte.a(orte_info_support.o):(.data+0x0): multiple definition of `orte_info_type_orte'
orte-info.o:(.data+0x10): first defined here
/usr/bin/ld: link errors found, deleting executable `orte-info'
collect2: error: ld returned 1 exit status
make[2]: *** [orte-info] Error 1
I am not sure how to fix this, but I would guess this is probably a simple fix for somebody who knows OMPI's build infrastructure better than I.
-Paul
--
Future Technologies Group
Computer and Data Sciences Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900