[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fortran libraries on the Blue Gene with mpi
From: |
Ralf Wildenhues |
Subject: |
Re: Fortran libraries on the Blue Gene with mpi |
Date: |
Sun, 19 Apr 2009 09:11:27 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
[ adding the libtool-patches list, moving libtool list to Bcc: so you
can omit it from followups ]
Hello John, Christian,
thanks to both of you for all your feedback so far.
We have a pretty good idea of what is happening for the C compilers now,
but the C++ and the Fortran compilers still need research. Also, I'm
not sure yet how to integrate the -qnostaticlink flag automatically, so
for now let's do it manually.
Below is a first cut at a patch to add support for BG to Libtool.
I would like you to test it for me. This is going to be a bit of work,
as it will involve several steps. Please try to follow them all.
First, please ensure that you have Autoconf 2.63 and Automake 1.10.2
installed somewhere (below the same --prefix) and found early in $PATH.
Then, grab either the git master branch of the Libtool tree, or a
nightly snapshot; the Libtool homepage has a link. Extract the tarball.
Apply the patch at the end of this message to the Libtool tree, then run
./bootstrap
If there are any problems or error messages, stop right here and report
back with them. Otherwise, continue:
Create six build trees and build and run the Libtool test suites
with each of the compiler combinations (the following assumes
Bourne-shell syntax):
mkdir build-gcc build-xl build-bgcc build-bgxl build-mpigcc build-mpixl
# GCC, non-BG
cd build-gcc
../configure CC=gcc CXX=g++ F77=g77 FC=gfortran GCJ=no
make
make -k check VERBOSE=yes 2>&1 | tee checklog-gcc-1
cd ..
# XL, non-BG
cd build-xl
../configure CC=xlc CXX=xlC F77=xlf FC=xlf95 GCJ=no
make
make -k check VERBOSE=yes 2>&1 | tee checklog-xl-1
cd ..
# GCC, BG
cd build-bgcc
../configure CC=bgcc CXX=bgc++ F77=bgf77 FC=bgfortran GCJ=no \
LDFLAGS=-dynamic
make
make -k check VERBOSE=yes 2>&1 | tee checklog-bgcc-1
cd ..
# XL, BG
cd build-bgxl
../configure CC=bgxlc CXX=bgxlC F77=bgfort FC=bgxlf95 GCJ=no \
LDFLAGS=-qnostaticlink
make
make -k check VERBOSE=yes 2>&1 | tee checklog-bgxl-1
cd ..
# GCC, MPI
cd build-mpigcc
../configure CC=mpicc CXX=mpicxx F77=mpif77 FC=mpif90 GCJ=no \
LDFLAGS=-dynamic
make
make -k check VERBOSE=yes 2>&1 | tee checklog-mpigcc-1
cd ..
# XL, MPI
cd build-mpixl
../configure CC=mpixlc CXX=mpixlC F77=mpixlf FC=mpixlf95 GCJ=no \
LDFLAGS=-qnostaticlink
make
make -k check VERBOSE=yes 2>&1 | tee checklog-mpixl-1
cd ..
I might have added some typos above, so if you happen to see obvious
errors, feel free to correct them (e.g., I'm not sure whether bgfort
is an XL or GCC Fortran compiler).
If any of the configure runs fail due to failure to guess the system
type, then please try adding
--host=powerpc-bgp-linux --build=powerpc-bgp-linux
and if that still causes bogus run time test results, you can also try
--host=powerpc-bgp-linux --build=powerpc-unknown-linux
to force cross-compilation mode.
For each directory, send the corresponding checklog-* file plus the
tests/testsuite.log file, please. Best if you put these files in a
tarball, gzip- or bzip2-compressed.
Thanks,
Ralf
Initial port for BlueGene BG/L.
* libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS)
(_LT_LANG_CXX_CONFIG) [linux]: Detect bgxl*, bgf*, mpixl*
compilers.
* NEWS: Update.
* THANKS: Update.
Report, feedback and testing by John R. Cary and Christian
Rössel.
diff --git a/NEWS b/NEWS
index 546766d..3fe8f14 100644
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,7 @@ New in 2.2.8 2009-??-??: git version 2.2.7a, Libtool team:
- Improved support for 64bit Windows (mingw64).
- Improved support for cegcc (Windows CE/PocketPC).
- Support for GNU/kOpenSolaris (kopensolaris*-gnu).
+ - Initial support for compilers on BlueGene BG/L.
* Bug fixes:
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index 75675b8..c3cffa1 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -3680,8 +3680,8 @@ m4_if([$1], [CXX], [
_LT_TAGVAR(lt_prog_compiler_pic, $1)=
_LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
- xlc* | xlC*)
- # IBM XL 8.0 on PPC
+ xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+ # IBM XL 8.0, 9.0 on PPC and BlueGene
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
@@ -3964,8 +3964,8 @@ m4_if([$1], [CXX], [
# All Alpha code is PIC.
_LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
- xl*)
- # IBM XL C 8.0/Fortran 10.1 on PPC
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
@@ -4343,7 +4343,7 @@ _LT_EOF
lf95*) # Lahey Fortran 8.1
_LT_TAGVAR(whole_archive_flag_spec, $1)=
tmp_sharedflag='--shared' ;;
- xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf
below)
+ xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal
with xlf below)
tmp_sharedflag='-qmkshrobj'
tmp_addflag= ;;
esac
@@ -4365,7 +4365,7 @@ _LT_EOF
fi
case $cc_basename in
- xlf*)
+ xlf* | bgf* | bgxlf* | mpixlf*)
# IBM XL Fortran 10.1 on PPC cannot create shared libs itself
_LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience
--no-whole-archive'
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
@@ -5911,7 +5911,7 @@ if test "$_lt_caught_CXX_error" != yes; then
# dependencies.
output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v
conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED
"s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in
conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac;
done; func_echo_all "X$list" | $Xsed'
;;
- xl*)
+ xl* | mpixl* | bgxl*)
# IBM XL 8.0 on PPC, with GNU ld
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- Re: Fortran libraries on the Blue Gene with mpi,
Ralf Wildenhues <=
Re: Fortran libraries on the Blue Gene with mpi, Christian Rössel, 2009/04/22
Re: Fortran libraries on the Blue Gene with mpi, Ralf Wildenhues, 2009/04/25