all buildblocks moved one level up

This commit is contained in:
2015-10-14 18:20:36 +02:00
parent 75832ca05a
commit 0a9fefd921
134 changed files with 0 additions and 0 deletions

16
MPI/BoxLib/build Executable file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env modbuild
pbuild::configure() {
CC=$MPICC CXX=$MPICXX cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DCMAKE_BUILD_TYPE=RELEASE \
"${MODULE_SRCDIR}"
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies 'cmake' "${COMPILER}" "${MPI}"
pbuild::set_docfiles 'license.txt' 'README.txt'
pbuild::make_all

35
MPI/BoxLib/modulefile Normal file
View File

@@ -0,0 +1,35 @@
#%Module1.0
set whatis "block-structured AMR framework"
set url "https://ccse.lbl.gov/BoxLib/index.html"
set license "BSD"
set licensefile "license.txt"
set maintainer "Achim Gsell <achim.gsell@psi.ch>"
set help "
BoxLib contains all the functionality needed to write a parallel,
block-structured AMR application. The fundamental parallel abstraction is
the MultiFab, which holds the data on the union of grids at a level. A
MultiFab is composed of FAB's; each FAB is an array of data on a single
grid. During each MultiFab operation the FAB's composing that MultiFab are
distributed among the cores. MultiFab's at each level of refinement are
distributed independently. The software supports two data distribution
schemes, as well as a dynamic switching scheme that decides which approach
to use based on the number of grids at a level and the number of processors.
The first scheme is based on a heuristic knapsack algorithm; the second is
based on the use of a Morton-ordering space-filling curve. MultiFab
operations are performed with an owner computes rule with each processor
operating independently on its local data. For operations that require data
owned by other processors, the MultiFab operations are preceded by a data
exchange between processors. Each processor contains meta-data that is
needed to fully specify the geometry and processor assignments of the
MultiFab's. At a minimum, this requires the storage of an array of boxes
specifying the index space region for each AMR level of refinement. The
meta-data can thus be used to dynamically evaluate the necessary
communication patterns for sharing data amongst processors, enabling us to
optimize communications patterns within the algorithm. One of the advantages
of computing with fewer, larger grids in the hybrid OpenMP--MPI approach
is that the size of the meta-data is substantially reduced.
"
source $env(PSI_LIBMODULES)

21
MPI/OPAL.14/build Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env modbuild
P='OPAL'
module use unstable
# add -fopenmp to CC and CXX, if you want to compile with OpenMP
pbuild::configure() {
cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DCMAKE_BUILD_TYPE=RELEASE \
-DENABLE_SAAMG_SOLVER=TRUE \
"${MODULE_SRCDIR}"
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies 'cmake' "${COMPILER}" "${MPI}" 'boost' 'hdf5' 'H5hut' 'trilinos' 'gsl'
pbuild::set_supported_compilers 'gcc/4.7' 'gcc/4.8'
pbuild::make_all

8
MPI/OPAL.14/with_modules Normal file
View File

@@ -0,0 +1,8 @@
gcc/4.8.3
openmpi/1.8.2
hdf5/1.8.12
H5hut/1.99.13
trilinos/11.10.2
boost/1.55.0
gsl/1.15
root/5.34.19

19
MPI/OPAL/build Executable file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env modbuild
module use unstable
# add -fopenmp to CC and CXX, if you want to compile with OpenMP
pbuild::configure() {
cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DCMAKE_BUILD_TYPE=RELEASE \
-DENABLE_SAAMG_SOLVER=TRUE \
"${MODULE_SRCDIR}"
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies 'cmake' "${COMPILER}" "${MPI}" 'boost' 'hdf5' 'H5hut' 'trilinos' 'ippl' 'gsl'
pbuild::set_supported_compilers 'gcc/4.7' 'gcc/4.8'
pbuild::make_all

28
MPI/OPAL/modulefile Normal file
View File

@@ -0,0 +1,28 @@
#%Module1.0
# OPAL_PREFIX is also used by OpenMPI!
set dont-setenv { OPAL_PREFIX }
set whatis "Object Oriented Particle Accelerator Library"
set url "http://amas.psi.ch/OPAL"
set license "PSI"
set maintainer "Achim Gsell <achim.gsell@psi.ch>"
set help "
OPAL is a C++ framework for general particle accelerator simulations. It
includes various beam line element descriptions and methods for single
particle optics, namely maps up to arbitrary order, symplectic integration
schemes and lastly time integration. OPAL is based on IPPL (Independent
Parallel Particle Layer) which adds parallel capabilities. Main functions
inherited from IPPL are: structured rectangular grids, fields and parallel
FFT and particles with the respective interpolation operators. Other
features are, expression templates and massive parallelism (up to 65000
processors) which makes is possible to tackle the largest problems in the
field. A new iterative solver handles arbitrary complex boundary conditions
and benefiting from the new geometry class.
"
source $env(PSI_LIBMODULES)
setenv OPAL_EXE_PATH "${PREFIX}/bin"
set-family OPAL

9
MPI/OPAL/with_modules Normal file
View File

@@ -0,0 +1,9 @@
gcc/4.8.3
openmpi/1.8.2
ippl/1.1.4
hdf5/1.8.12
H5hut/1.99.13
trilinos/11.10.2
boost/1.55.0
gsl/1.15
root/5.34.19

57
MPI/SuperLU_DIST/build Executable file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env modbuild
pbuild::configure() {
case ${COMPILER} in
gcc )
LOADER='mpif90'
;;
intel )
LOADER='mpicc'
;;
* )
die 3 "Oops: unknown compiler: ${COMPILER}"
;;
esac
cat <<EOF > "${MODULE_SRCDIR}/make.inc"
PLAT =
DSuperLUroot = \${PREFIX}
DSUPERLULIB = \$(DSuperLUroot)/lib/libsuperlu_dist.a
BLASDEF = -DUSE_VENDOR_BLAS
BLASLIB = \${OPENBLAS_PREFIX}/lib/libopenblas.a
METISLIB = \${PARMETIS_PREFIX}/lib/libmetis.a
PARMETISLIB = \${PARMETIS_PREFIX}/lib/libparmetis.a
FLIBS =
LIBS = \$(DSUPERLULIB) \$(BLASLIB) \$(PARMETISLIB) \$(METISLIB)
ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib
CC = mpicc
CFLAGS = -pipe -O3
NOOPTS =
FORTRAN = mpif90
F90FLAGS =
LOADER = mpicc
LOADOPTS =
CDEFS = -DAdd__
EOF
}
pbuild::build() {
cd "${MODULE_SRCDIR}"
mkdir -p "${PREFIX}/lib"
make
}
pbuild::install() {
make install
mkdir -p "${PREFIX}/include"
install -m 0444 "${MODULE_SRCDIR}"/SRC/*.h "${PREFIX}/include"
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI} 'OpenBLAS' 'parmetis'"
pbuild::set_build_dependencies "${COMPILER}" "${MPI}" 'OpenBLAS' 'parmetis'
pbuild::set_docfiles 'README'
pbuild::make_all
pbuild::cleanup_src

View File

@@ -0,0 +1,26 @@
#%Module1.0
set whatis "SuperLU_DIST - A library for direct solution of large, sparse, nonsymmetric systems of linear equations."
set url "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
set license "BSD"
set licensefile "README"
set maintainer "Achim Gsell <achim.gsell@psi.ch>"
set help "
SuperLU is a general purpose library for the direct solution of large,
sparse, nonsymmetric systems of linear equations on high performance
machines. The library is written in C and is callable from either C or
Fortran. The library routines will perform an LU decomposition with
partial pivoting and triangular system solves through forward and back
substitution. The LU factorization routines can handle non-square
matrices but the triangular solves are performed only for square
matrices. The matrix columns may be preordered (before factorization)
either through library or user supplied routines. This preordering for
sparsity is completely separate from the factorization. Working
precision iterative refinement subroutines are provided for improved
backward stability. Routines are also provided to equilibrate the
system, estimate the condition number, calculate the relative backward
error, and estimate error bounds for the refined solutions.
"
source $env(PSI_LIBMODULES)

23
MPI/build_all_variants Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/bash
declare -r basedir=$(dirname $0)
source '../../config/Pmodules.conf'
declare -r recipe="${basedir}/$1/build"
shift
if [[ ! -x "${recipe}" ]]; then
echo "Error: no recipe to build '$1'!"
exit 1
fi
for cc in "${COMPILER_VERSIONS[@]}"; do
for mpi in "${MPI_VERSIONS[@]}"; do
"${recipe}" "$@" --with=$cc --with=$mpi || {
echo "Oops: build failed for:"
echo " compiler: $cc"
echo " mpi: $mpi"
exit 1
}
done
done

4114
MPI/cpmd/Makefile Normal file

File diff suppressed because it is too large Load Diff

17
MPI/cpmd/build Executable file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/env modbuild
pbuild::configure() {
cp "${BUILDSCRIPT_DIR}/Makefile" "${MODULE_BUILDDIR}" || exit 1
cp "${MODULE_SRCDIR}/irat.inc" "${MODULE_BUILDDIR}" || exit 1
}
pbuild::install() {
mkdir -p "${PREFIX}/bin"
cp "${MODULE_BUILDDIR}/cpmd.x" "${PREFIX}/bin"
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies "${COMPILER}" "${MPI}"
pbuild::make_all

7
MPI/cpmd/irat.inc Normal file
View File

@@ -0,0 +1,7 @@
C hello emacs, this is -*- fortran -*-
C ==================================================================
C == 64/(NUMBER OF BITS PER INTEGER) ==
C ==================================================================
INTEGER IRAT
PARAMETER(IRAT=2)
C ==================================================================

12
MPI/cpmd/modulefile Normal file
View File

@@ -0,0 +1,12 @@
#%Module1.0
module-whatis "plane wave/pseudopotential implementation of Density Functional Theory"
module-url "http://cpmd.org/"
module-license "?"
module-maintainer "Achim Gsell <achim.gsell@psi.ch>"
module-help "
The CPMD code is a parallelized plane wave / pseudopotential implementation
of Density Functional Theory, particularly designed for ab-initio molecular
dynamics.
"

23
MPI/gromacs/build Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env modbuild
pbuild::configure() {
cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DCMAKE_BUILD_TYPE=RELEASE \
-DGMX_MPI=on \
-DGMX_GPU=off \
-DGMX_BUILD_OWN_FFTW=on \
"${MODULE_SRCDIR}" \
|| exit 1
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies "${COMPILER}" "${MPI}" cmake
pbuild::set_docfiles \
AUTHORS \
COPYING \
README
pbuild::make_all

21
MPI/gromacs/modulefile Normal file
View File

@@ -0,0 +1,21 @@
#%Module1.0
source $env(PSI_LIBMODULES)
set whatis "GROMACS is a versatile package to perform molecular dynamics"
set url "http://www.gromacs.org/"
set license "See PREFIX/share/doc/COPYING"
set maintainer "Antonio Benedetto <antonio.benedetto@psi.ch>"
set help "
GROMACS is a versatile package to perform molecular dynamics, i.e. simulate
the Newtonian equations of motion for systems with hundreds to millions of
particles.
It is primarily designed for biochemical molecules like proteins, lipids and
nucleic acids that have a lot of complicated bonded interactions, but since
GROMACS is extremely fast at calculating the nonbonded interactions (that
usually dominate simulations) many groups are also using it for research on
non-biological systems, e.g. polymers.
"
set-family MPI

32
MPI/hdf5/build Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env modbuild
pbuild::configure() {
CC=$MPICC
CXX=$MPICXX
F77=$MPIF77
F90=$MPIF90
FC=$MPIFC
FORTRAN=$MPIFORTRAN
"${MODULE_SRCDIR}"/configure \
--prefix="${PREFIX}" \
--enable-shared \
--enable-parallel \
--enable-cxx \
--enable-fortran \
--enable-unsupported \
--with-pic \
|| exit 1
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies "${COMPILER}" "${MPI}"
pbuild::set_docfiles \
ACKNOWLEDGMENTS \
COPYING \
MANIFEST \
README.txt
pbuild::make_all

5
MPI/hdf5/compiler Normal file
View File

@@ -0,0 +1,5 @@
gcc/4.7.4
gcc/4.8.4
gcc/4.9.2
gcc/5.2.0
intel/15.3

19
MPI/hdf5/modulefile Normal file
View File

@@ -0,0 +1,19 @@
#%Module1.0
set whatis "Hierachical Data Format 5"
set url "http://www.hdfgroup.org/HDF5"
set license "HDF license (BSD-like)"
set maintainer "Achim Gsell <achim.gsell@psi.ch>"
set help "
HDF5 is a data model, library, and file format for storing and managing
data. It supports an unlimited variety of datatypes, and is designed for
flexible and efficient I/O and for high volume and complex data. HDF5 is
portable and is extensible, allowing applications to evolve in their use
of HDF5. The HDF5 Technology suite includes tools and applications for
managing, manipulating, viewing, and analyzing data in the HDF5 format.
"
source $env(PSI_LIBMODULES)
conflict hdf5_serial
set-family HDF5

3
MPI/hdf5/mpi Normal file
View File

@@ -0,0 +1,3 @@
openmpi/1.6.5
openmpi/1.8.4
mpich/3.1.4

3
MPI/hdf5/versions Normal file
View File

@@ -0,0 +1,3 @@
1.8.12
1.8.14
1.8.15.1

24
MPI/ippl/build Executable file
View File

@@ -0,0 +1,24 @@
#!/usr/bin/env modbuild
pbuild::configure() {
CC=$MPICC
CXX=$MPICXX
F77=$MPIF77
F90=$MPIF90
FC=$MPIFC
FORTRAN=$MPIFORTRAN
rm -f CMakeCache.txt
cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
"${MODULE_SRCDIR}" \
|| exit 1
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies 'cmake' "${COMPILER}" "${MPI}"
pbuild::set_docfiles LICENSE README
pbuild::make_all

17
MPI/ippl/modulefile Normal file
View File

@@ -0,0 +1,17 @@
#%Module1.0
set whatis "the Independent Parallel Particle Layer"
set url "http://amas.psi.ch/IPPL"
set license "PSI"
set maintainer "Achim Gsell <achim.gsell@psi.ch>"
set help "
IPPL is an object-oriented framework for particle based applications in
computational science requiring high-performance parallel computers. It
is a library of C++ classes designed to represent common abstractions in
these applications. IPPL is based on data-parallel programming at the
highest abstraction layer. Codes developed on serial workstations port
to all supported architectures, including parallel processors.
"
source $env(PSI_LIBMODULES)

51
MPI/parmetis/build Executable file
View File

@@ -0,0 +1,51 @@
#!/usr/bin/env modbuild
pbuild::configure() {
CC=$MPICC
CXX=$MPICXX
F77=$MPIF77
F90=$MPIF90
FC=$MPIFC
FORTRAN=$MPIFORTRAN
}
pbuild::build() {
local -ri MAJOR_VERSION=${V%%.*}
if (( MAJOR_VERSION == 3 )) ; then
cd "${MODULE_SRCDIR}"
make -e -j3 || exit 1
mkdir -p $PREFIX/include/metis
mkdir -p $PREFIX/lib
cp *.h $PREFIX/include
cp METISLib/*.h $PREFIX/include/metis
cp lib*.a $PREFIX/lib
elif (( MAJOR_VERSION == 4 )); then
cd "${MODULE_SRCDIR}"
make config prefix=$PREFIX || exit 1
make -j3 || exit 1
make install
LIBMETIS_A=$(find . -name libmetis.a)
METIS_H=$(find . -name metis.h)
install -m 0644 $METIS_H $PREFIX/include
install -m 0644 $LIBMETIS_A $PREFIX/lib
else
die 42 "Unsupported version: $V"
fi
}
pbuild::install() {
:
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}"
pbuild::set_build_dependencies "${COMPILER}" "${MPI}"
pbuild::set_docfiles 'CHANGES' 'INSTALL' 'LICENSE.txt' 'README' 'VERSION'
pbuild::make_all
pbuild::cleanup_src

19
MPI/parmetis/modulefile Normal file
View File

@@ -0,0 +1,19 @@
#%Module1.0
set whatis "ParMETIS - Parallel Graph Partitioning and Fill-reducing Matrix Ordering"
set url "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview"
set license "See: \$PARMETIS_DIR/share/doc/parmetis/LICENSE.txt"
set maintainer "Achim Gsell <achim.gsell@psi.ch>"
set help "
ParMETIS is an MPI-based parallel library that implements a variety of
algorithms for partitioning unstructured graphs, meshes, and for computing
fill-reducing orderings of sparse matrices. ParMETIS extends the functioni-
ality provided by METIS and includes routines that are especially suited
for parallel AMR computations and large scale numerical simulations. The
algorithms implemented in ParMETIS are based on the parallel multilevel
k-way graph-partitioning, adaptive repartitioning, and parallel multi-
constrained partitioning schemes developed in our lab.
"
source $env(PSI_LIBMODULES)

70
MPI/trilinos/build Executable file
View File

@@ -0,0 +1,70 @@
#!/usr/bin/env modbuild
declare -rx AR=ar
pbuild::configure() {
BLAS_PREFIX=$OPENBLAS_PREFIX
LAPACK_PREFIX=$OPENBLAS_PREFIX
PARMETIS_INCLUDE_DIRS=$PARMETIS_PREFIX/include
PARMETIS_LIBRARIES=$PARMETIS_PREFIX/lib/libparmetis.a
METIS_INCLUDE_DIRS=$PARMETIS_PREFIX/include/metis
METIS_LIBRARIES=$PARMETIS_PREFIX/lib/libmetis.a
BLAS_INCLUDE_DIRS="$BLAS_PREFIX/include"
BLAS_LIBRARY_DIRS="$BLAS_PREFIX/lib"
BLAS_LIBRARY_NAMES="openblas"
LAPACK_INCLUDE_DIRS="$LAPACK_PREFIX/include"
LAPACK_LIBRARY_DIRS="$LAPACK_PREFIX/lib"
LAPACK_LIBRARY_NAMES="openblas"
cmake \
--prefix=$PREFIX \
-DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \
-DCMAKE_CXX_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \
-DCMAKE_C_FLAGS:STRING="-DMPICH_IGNORE_CXX_SEEK -fPIC" \
-D CMAKE_CXX_STANDARD:STRING="11" \
-DCMAKE_Fortran_FLAGS:STRING="-fPIC" \
-D CMAKE_BUILD_TYPE:STRING=DEBUG \
-D TPL_ENABLE_QT:BOOL=OFF \
-D TPL_ENABLE_MPI:BOOL=ON \
-D TPL_ENABLE_BLAS:BOOL=ON \
-D TPL_ENABLE_LAPACK:BOOL=ON \
-D TPL_ENABLE_METIS:BOOL=ON \
-D TPL_ENABLE_ParMETIS:BOOL=ON \
-D BLAS_LIBRARY_DIRS:PATH="$BLAS_LIBRARY_DIRS" \
-D BLAS_INCLUDE_DIRS:PATH="$BLAS_LIBRARY_DIRS" \
-D BLAS_LIBRARY_NAMES:STRING="$BLAS_LIBRARY_NAMES" \
-D LAPACK_LIBRARY_DIRS:PATH="$LAPACK_LIBRARY_DIRS" \
-D LAPACK_INCLUDE_DIRS:PATH="$LAPACK_INCLUDE_DIRS" \
-D LAPACK_LIBRARY_NAMES:STRING="$LAPACK_LIBRARY_NAMES" \
-D TPL_METIS_INCLUDE_DIRS:PATH=$METIS_INCLUDE_DIRS \
-D TPL_METIS_LIBRARIES:PATH=$METIS_LIBRARIES \
-D TPL_ParMETIS_INCLUDE_DIRS:PATH=$PARMETIS_INCLUDE_DIRS \
-D TPL_ParMETIS_LIBRARIES:PATH=$PARMETIS_LIBRARIES \
-D Trilinos_ENABLE_Amesos:BOOL=ON \
-D Trilinos_ENABLE_Amesos2:BOOL=ON \
-D Trilinos_ENABLE_AztecOO:BOOL=ON \
-D Trilinos_ENABLE_Belos:BOOL=ON \
-D Trilinos_ENABLE_Epetra:BOOL=ON \
-D Trilinos_ENABLE_EpetraExt:BOOL=ON \
-D Trilinos_ENABLE_Galeri:BOOL=ON \
-D Trilinos_ENABLE_Ifpack:BOOL=ON \
-D Trilinos_ENABLE_Isorropia:BOOL=ON \
-D Trilinos_ENABLE_ML:BOOL=ON \
-D Trilinos_ENABLE_NOX:BOOL=ON \
-D Trilinos_ENABLE_Optika:BOOL=OFF \
-D Trilinos_ENABLE_Teuchos:BOOL=ON \
-D Trilinos_ENABLE_Tpetra:BOOL=ON \
-D Trilinos_ENABLE_TESTS:BOOL=OFF \
"${MODULE_SRCDIR}" || exit 1
}
pbuild::add_to_group 'MPI'
pbuild::set_runtime_dependencies "${COMPILER}" "${MPI}" 'OpenBLAS' 'parmetis'
pbuild::set_build_dependencies 'cmake' "${COMPILER}" "${MPI}" 'OpenBLAS' 'parmetis'
pbuild::set_docfiles Copyright.txt LICENSE README RELEASE_NOTES
pbuild::make_all

20
MPI/trilinos/modulefile Normal file
View File

@@ -0,0 +1,20 @@
#%Module1.0
set whatis "Object-Oriented Solver Framework"
set url "http://trilinos.sandia.gov/"
set license "BSD-like"
set licensefile "Copyright.txt"
set maintainer "Achim Gsell <achim.gsell@psi.ch>"
set help "
Trilinos is a collection of open source software libraries, called packages,
intended to be used as building blocks for the development of scientific
applications. The word \"Trilinos\" is Greek and conveys the idea of \"a string
of pearls,\" suggesting a number of software packages linked together by a
common infrastructure. Trilinos was developed at Sandia National Laboratories
from a core group of existing algorithms, and utilizes the functionality of
software interfaces such as the BLAS, LAPACK, and MPI.
(Wikipedia)
"
source $env(PSI_LIBMODULES)