all buildblocks moved one level up
This commit is contained in:
16
MPI/BoxLib/build
Executable file
16
MPI/BoxLib/build
Executable 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
35
MPI/BoxLib/modulefile
Normal 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
21
MPI/OPAL.14/build
Executable 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
8
MPI/OPAL.14/with_modules
Normal 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
19
MPI/OPAL/build
Executable 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
28
MPI/OPAL/modulefile
Normal 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
9
MPI/OPAL/with_modules
Normal 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
57
MPI/SuperLU_DIST/build
Executable 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
|
||||
26
MPI/SuperLU_DIST/modulefile
Normal file
26
MPI/SuperLU_DIST/modulefile
Normal 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
23
MPI/build_all_variants
Executable 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
4114
MPI/cpmd/Makefile
Normal file
File diff suppressed because it is too large
Load Diff
17
MPI/cpmd/build
Executable file
17
MPI/cpmd/build
Executable 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
7
MPI/cpmd/irat.inc
Normal 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
12
MPI/cpmd/modulefile
Normal 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
23
MPI/gromacs/build
Executable 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
21
MPI/gromacs/modulefile
Normal 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
32
MPI/hdf5/build
Executable 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
5
MPI/hdf5/compiler
Normal 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
19
MPI/hdf5/modulefile
Normal 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
3
MPI/hdf5/mpi
Normal file
@@ -0,0 +1,3 @@
|
||||
openmpi/1.6.5
|
||||
openmpi/1.8.4
|
||||
mpich/3.1.4
|
||||
3
MPI/hdf5/versions
Normal file
3
MPI/hdf5/versions
Normal file
@@ -0,0 +1,3 @@
|
||||
1.8.12
|
||||
1.8.14
|
||||
1.8.15.1
|
||||
24
MPI/ippl/build
Executable file
24
MPI/ippl/build
Executable 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
17
MPI/ippl/modulefile
Normal 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
51
MPI/parmetis/build
Executable 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
19
MPI/parmetis/modulefile
Normal 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
70
MPI/trilinos/build
Executable 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
20
MPI/trilinos/modulefile
Normal 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)
|
||||
Reference in New Issue
Block a user