Elemental page
http://code.google.com/p/elemental/
Parallel I/O
http://code.google.com/p/butterflyfio/
FLAME project
http://www.cs.utexas.edu/users/flame/Extras/FLAWN56/
Buildin Linpack with GCC and ESSL
http://www.ibm.com/developerworks/wikis/display/LinuxP/Building+Linpack+with+gcc+and+ESSL
http://poulson.github.com/Elemental/build.html#building-elemental
IBM/P GCC+ESSL+OPENMP+safe -LAPACK
CMake.BGP.gnu.essl.cmake
set(CMAKE_SYSTEM_NAME BlueGeneP-static)
# The serial XL compilers
set(GCC_ROOT "/bgsys/drivers/ppcfloor/gnu-linux")
set(GCC_NAME "powerpc-bgq-linux")
set(MPI_ROOT "/bgsys/drivers/ppcfloor/comm/include")
set(PAMI_ROOT "/bgsys/drivers/ppcfloor/comm/sys")
set(SPI_ROOT "/bgsys/drivers/ppcfloor/arch/include/spi")
# The MPI wrappers for the XL C and C++ compilers
set(CMAKE_C_COMPILER "/software/common/apps/misc-scripts/tmpicc")
set(CMAKE_CXX_COMPILER "/software/common/apps/misc-scripts/tmpicxx")
set(CMAKE_Fortran_COMPILER "/software/common/apps/misc-scripts/tmpif77")
set(CXX_PURE_DEBUG_FLAGS "-g")
set(CXX_PURE_RELEASE_FLAGS "-g -O3")
set(CXX_HYBRID_DEBUG_FLAGS "-g")
set(CXX_HYBRID_RELEASE_FLAGS "-g -O3")
set(CMAKE_THREAD_LIBS_INIT "-fopenmp")
set(OpenMP_CXX_FLAGS "-fopenmp")
# The remainder of the file is for linking BLAS/LAPACK functionality
set(ESSL_BASE "/soft/apps/ESSL-4.4.1-0")
set(IBMCMP_BASE "/soft/apps/ibmcmp-aug2012")
set(XLF_BASE "${IBMCMP_BASE}/xlf/bg/11.1/bglib")
set(XLSMP_BASE "${IBMCMP_BASE}/xlsmp/bg/1.7/bglib")
#set(BGP_LAPACK "-L/home/projects/madness/install/lib -lmylapack")
set(BGP_LAPACK "/soft/apps/LAPACK/liblapack_bgp.a")
set(PURE_ESSL "-L${ESSL_BASE}/lib -lesslsmpbg")
set(THREADED_ESSL "-L${ESSL_BASE}/lib -lesslsmpbg")
set(XLF_LIBS "-L${IBMCMP_BASE}/xlmass/bg/4.4/bglib -lmass -L${IBMCMP_BASE}/vacpp/bg/9.0/bglib -libmc++ -L${XLF_BASE} -lxlfmath -lxlf90_r -lxlopt -lxl")
set(XLOMP_SER "-L${XLSMP_BASE} -lxlomp_ser")
set(XLSMP "-L${XLSMP_BASE} -lxlsmp")
if(CMAKE_BUILD_TYPE MATCHES PureDebug OR
CMAKE_BUILD_TYPE MATCHES PureRelease)
set(MATH_LIBS "${BGP_LAPACK};${PURE_ESSL};${XLF_LIBS};${XLOMP_SER}")
else()
set(MATH_LIBS "${BGP_LAPACK};${THREADED_ESSL};${XLF_LIBS};${XLSMP}")
endif()
#set(MATH_LIBS "-L/soft/apps/ESSL-4.4.1-0/lib -lesslsmpbg -L/home/projects/madness/install/lib -llapack_bgp")
IBM/Q GCC+ESSL+OPENMP
CMake.BGQ.gnu.essl.cmake
set(CMAKE_SYSTEM_NAME BlueGeneQ-static)
set(CMAKE_INSTALL_PREFIX "$HOME/install/local/elementalxl")
set(CMAKE_BUILD_TYPE "HybridRelease")
set(GCC_ROOT "/bgsys/drivers/ppcfloor/gnu-linux")
set(GCC_NAME "powerpc64-bgq-linux")
set(MPI_ROOT "/bgsys/drivers/ppcfloor/comm/gcc")
set(PAMI_ROOT "/bgsys/drivers/ppcfloor/comm/sys")
set(SPI_ROOT "/bgsys/drivers/ppcfloor/spi")
# The serial XL compilers
#set(CMAKE_C_COMPILER ${GCC_ROOT}/bin/${GCC_NAME}-gcc)
#set(CMAKE_CXX_COMPILER ${GCC_ROOT}/bin/${GCC_NAME}-g++)
#set(CMAKE_Fortran_COMPILER ${GCC_ROOT}/bin/${GCC_NAME}-gfortran)
set(CMAKE_C_COMPILER ${MPI_ROOT}/bin/mpicc)
set(CMAKE_CXX_COMPILER ${MPI_ROOT}/bin/mpicxx)
set(CMAKE_Fortran_COMPILER ${MPI_ROOT}/bin/mpif77)
# The MPI wrappers for the C and C++ compilers
set(MPI_C_COMPILER ${MPI_ROOT}/bin/mpicc)
set(MPI_CXX_COMPILER ${MPI_ROOT}/bin/mpicxx)
set(MPI_C_COMPILE_FLAGS "")
set(MPI_CXX_COMPILE_FLAGS "")
set(MPI_C_INCLUDE_PATH "${MPI_ROOT}/include")
set(MPI_CXX_INCLUDE_PATH "${MPI_ROOT}/include")
set(MPI_C_LINK_FLAGS "-L${MPI_ROOT}/lib -L${PAMI_ROOT}/lib -L${SPI_ROOT}/lib")
set(MPI_CXX_LINK_FLAGS "-L${MPI_ROOT}/lib -L${PAMI_ROOT}/lib -L${SPI_ROOT}/lib")
set(MPI_C_LIBRARIES "-lmpich -lopa -lmpl -lrt -ldl -lpami -lSPI -lSPI_cnk -lpthread -lrt -lstdc++")
set(MPI_CXX_LIBRARIES "-lcxxmpich -lmpich -lopa -lmpl -lrt -ldl -lpami -lSPI -lSPI_cnk -lpthread -lrt -lstdc++")
set(CXX_PURE_DEBUG_FLAGS "-g")
set(CXX_PURE_RELEASE_FLAGS "-g -O2")
set(CXX_HYBRID_DEBUG_FLAGS "-g")
set(CXX_HYBRID_RELEASE_FLAGS "-g -O2")
set(CMAKE_THREAD_LIBS_INIT "-fopenmp")
set(OpenMP_CXX_FLAGS "-fopenmp")
##############################################################
# set the search path for the environment coming with the compiler
# and a directory where you can install your own compiled software
set(CMAKE_FIND_ROOT_PATH
/bgsys/drivers/ppcfloor/
/bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux
/bgsys/drivers/ppcfloor/comm/gcc
/bgsys/drivers/ppcfloor/comm/sys/
/bgsys/drivers/ppcfloor/spi/
)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_INSTALL_PREFIX "/home/avazquez/install/local/elementalxl")
##############################################################
set(LAPACK_LIB "/soft/libraries/alcf/current/xl/LAPACK/lib")
set(ESSL_LIB "/soft/libraries/essl/current/lib64")
set(IBMCMP_ROOT "/soft/compilers/ibmcmp-may2012")
set(XLF_LIB "${IBMCMP_ROOT}/xlf/bg/14.1/bglib64")
set(XLMASS_LIB "${IBMCMP_ROOT}/xlmass/bg/7.3/bglib64")
set(XLSMP_LIB "${IBMCMP_ROOT}/xlsmp/bg/3.1/bglib64")
set(MATH_LIBS "-L${ESSL_LIB} -lesslsmpbg -L${LAPACK_LIB} -llapack -L${ESSL_LIB} -lesslsmpbg -L${XLMASS_LIB} -lmass -L${XLF_LIB} -lxlf90_r -L${XLSMP_LIB} -lxlsmp -lxlopt -lxlfmath -lxl -lm -lgfortran -lpthread -ldl -Wl,--allow-multiple-de
finition")
IBM/Q GCC+ESSL+OPENMP+safe -LAPACK
#!/bin/bash -x
export LANG=C
export XL_TOP="/soft/compilers/ibmcmp-nov2012"
export LIBS="${LIBS} -L/soft/libraries/alcf/current/xl/LAPACK/lib -llapack"
export LIBS="${LIBS} -L/soft/libraries/essl/current/lib64 -lesslbg"
export LIBS="${LIBS} -L${XL_TOP}/xlf/bg/14.1/bglib64 -lxlf90_r -lxlfmath -lxlopt -lxl -Wl,-E"
export LIBS="${LIBS} -ldl "
export LIBS="${LIBS} -L/home/avazquez/soft/m-a-d-n-e-s-s/trunk/src/lib/tensor/new_mtxmq/bests -lMADMTXM "
export CPPFLAGS="-D__bgq__"
export CXXFLAGS="-O2 -fopenmp "
export CFLAGS="-O2"
export FFLAGS="-O2 "
export MPICC=mpicc
export MPICXX=mpicxx
export CC=mpicc
export CXX=mpicxx
export F77=mpif77
./configure \
--enable-debugging=yes \
--enable-optimal=no \
--enable-optimization=no \
--enable-warning=GNU \
--host=powerpc64-bgq-linux \
--with-elemental=/home/avazquez/install/local/elementalxl \
--with-fortran-int32
LAPACK
DSYEV .- computes all eigenvalues and, optionally, eigenvectors of a real symmetric matrix A.
http://www.netlib.org/lapack/double/dsyev.f
ScaLAPACK Alternative
PDSYEV
http://www.netlib.org/scalapack/html/src/pdsyev.f
Elemental
HermitianEig(UpperOrLower uplo, DistMatrix<double, MC, MR>& A, DistMatrix<double, VR, STAR>& w)
Compute the full set of eigenvalues of the double-precision real symmetric distributed matrix A.
http://elemental.googlecode.com/hg/doc/build/html/advanced/eigen_svd.html
DSYGV computes all the eigenvalues, and optionally, the eigenvectors of a real generalized symmetric-definite eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be symmetric and B is also positive definite.
http://www.netlib.org/lapack/double/dsygv.f
PDSYGVX computes all the eigenvalues, and optionally, the eigenvectors of a real generalized SY-definite eigenproblem, of the form sub( A )*x=(lambda)*sub( B )*x, sub( A )*sub( B )x=(lambda)*x, or sub( B )*sub( A )*x=(lambda)*x. Here sub( A ) denoting A( IA:IA+N-1, JA:JA+N-1 ) is assumed to be SY, and sub( B ) denoting B( IB:IB+N-1, JB:JB+N-1 ) is assumed to be symmetric positive definite.
https://icl.cs.utk.edu/svn/scalapack-dev/scalapack/trunk/SRC/pdsygvx.f
MPQC
DSTEQR computes all eigenvalues and, optionally, eigenvectors of a symmetric tridiagonal matrix using the implicit QL or QR method.
The eigenvectors of a full or band symmetric matrix can also be found if DSYTRD or DSPTRD or DSBTRD has been used to reduce this matrix to
tridiagonal form.
found in ./mpqc/src/lib/math/scmat/pdsteqr.f