-
Notifications
You must be signed in to change notification settings - Fork 1
/
10_OPENMPI.conf
66 lines (57 loc) · 2.2 KB
/
10_OPENMPI.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#! /bin/bash
shopt -s expand_aliases
# If user version set the version number
# and where to download the package
# this is unecessary if one want to do it manually
STEP1(){
LIST_PKG="$LIST_PKG OPENMPI"
OPENMPI="CMP"
VERSION_OPENMPI="1.6.5"
FICH_OPENMPI="openmpi-$VERSION_OPENMPI.tar.gz"
LNK_OPENMPI="http://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-$VERSION_OPENMPI.tar.gz"
BIN_OPENMPI="$PREFIX/lib/openmpi"
}
# Set and export some vars
# if one want to do it manually, only the exports a important
STEP2(){
if [ "$OPENMPI" = "CMP" ]||[ "$OPENMPI" = "USE" ]; then
SRC_OPENMPI="$PREFIX/src/openmpi-$VERSION_OPENMPI"
BUILD_OPENMPI="$SRC_OPENMPI/build"
export PATH="$BIN_OPENMPI/bin:$PATH"
export LD_LIBRARY_PATH="$BIN_OPENMPI/lib:$LD_LIBRARY_PATH"
export LDFLAGS="-I$BIN_OPENMPI/include"
fi
}
# Compile openmpi
# you must have prepared the environment
# with appropriate exports and module load
# openmpi must be compiled with sequential compilator
# the simpliest way consists in
# cd $BUILD_OPENMPI
# ../configure --enable-shared --enable-static --without-threads --prefix="$BIN_OPENMPI"
# make -j8 all
# make install
STEP5(){
trap STOP ERR
if [ "$OPENMPI" = "CMP" ]; then
echo -n "OPENMPI "
download "$FICH_OPENMPI" "$LNK_OPENMPI"
export CC="$S_CC" ; export FC="$S_FC" ; export F77="$S_F77" ; export CXX="$S_CXX" # Select sequential compilator
if [ ! -d "$BUILD_OPENMPI" ] ; then mkdir -p "$BUILD_OPENMPI" ; fi ; cd "$BUILD_OPENMPI"
stage "Building : conf" "config.1.log"
../configure $([[ "$OPENMP" == "YES" ]] && echo "--enable-opal-multi-threads --enable-mpi-thread-multiple --with-threads=posix") \
$([[ "$OPENMP" == "NO" ]] && echo "--without-threads") \
--enable-shared --enable-static \
--prefix="$BIN_OPENMPI"
stage "make" "make.1.log"
make -j8 all
stage "install" "make.2.log"
if [ -d "$BIN_OPENMPI" ] ; then rm -r "$BIN_OPENMPI" ;fi ; mkdir -p "$BIN_OPENMPI"
make install
end_stage
echo -e " - \e[32m\e[1mOK\e[21m\e[0m"
export CC="$P_CC" ; export FC="$P_FC" ; export F77="$P_F77" ; export CXX="$P_CXX" # Select mpi compilator
fi
trap - ERR
}
"STEP$1" 2>/dev/null