I wanted to test builds of OpenMPI 1.5rc5 and 1.4.3rc1 on Linux/PPC64.
As it happens the only such hast I currently have access to is the
front-end for a BG/P. It was NOT my intention to build Open MPI (or
VapirTrace) for the BG/P, but VT's configure logic decided I was on a
BG/P and so built using the front-end compiler with the compute-node
headers (which was a messy situation).
The autoconf for VT uses a macro ACVT_PLATFORM, located in
openmpi-1.4.3rc1/ompi/contrib/vt/vt/m4/acinclude.pform.m4
openmpi-1.5rc5/ompi/contrib/vt/vt/config/m4/acinclude.pform.m4
In 1.4.3rc4, that macro includes the following logic run if --platform
is not specified:
linux*)
AS_IF([test "$host_cpu" = "ia64" -a -f
/etc/sgi-release],
[PLATFORM=altix],
[AS_IF([test "$host_cpu" = "powerpc64"
-a -d /bgl/BlueLight],
[PLATFORM=bgl],
[AS_IF([test "$host_cpu" = "x86_64" -a
-d /opt/xt-boot],
[PLATFORM=crayxt],
[PLATFORM=linux])])])
;;
In 1.5rc5 that has expanded to detect more platforms, including the BG/P
where I was working:
case $host_os in
linux*)
AS_IF([test "$host_cpu" = "ia64" -a -f
/etc/sgi-release],
[PLATFORM=altix],
[AS_IF([test "$host_cpu" = "powerpc64"
-a -d /bgl/BlueLight],
[PLATFORM=bgl],
[AS_IF([test "$host_cpu" = "powerpc64"
-a -d /bgsys],
[PLATFORM=bgp],
[AS_IF([test "$host_cpu" = "x86_64" -a
-d /opt/xt-boot],
[PLATFORM=crayxt],
[AS_IF([test "$host_cpu" = "mips64"
-a -d /opt/sicortex],
[PLATFORM=sicortex],
[PLATFORM=linux])])])])])
;;
So the issue I have is that if building on the front-end for any of
these specialized systems, I will get a VT build for the "back-end"
unless I explicitly pass --platform=linux. By itself that sounds OK,
though something about this in ompi/contrib/vt/vt/INSTALL would be nice.
The NEXT problem comes from the fact that Open MPI's top-level configure
has the OMPI_LOAD_PLATFORM macro which expects
--with-platform=<filename>. Thus there appears to be a conflict between
the VT INSTALL documentation and the OMPI configure script.
I am not a newbie, so I DID find the desired solution:
--with-contrib-vt-flags=--platform=linux
However, the only documentation I could find for --with-contrib-vt-flags
in the source tree (as in "grep -R with-contrib-vt-flags") is the output
of "configure --help". I did eventually also find the related FAQ
entry: http://www.open-mpi.org/faq/?category=vampirtrace#vt_options
but that was only AFTER I knew of the problem passing --platform.
So, 3 requests of the VT folks:
1) Document the fact that compilation on a "front-end" of various
systems (Altix, BGP, BGL, SiCortex and CrayXT) will default to building
for the "back-end" system if one doesn't explicitly set platform=linux.
This would be good in the VT INSTALL, and in the VT-related FAQ page for
OpenMPI.
2) Document --with-contrib-vt-flags in the Open MPI README, the VT
INSTALL, or in both places.
3) Consider for the BGL, BGP and CrayXT cases checking in ACVT_PLATFORM
whether back-end compiler is being used. I know that is not possible
for the Altix and SiCortex.
-Paul
--
Paul H. Hargrove phhargr...@lbl.gov
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900