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

Reply via email to