compile.sh 3.46 KB
Newer Older
Cedric Jourdain's avatar
Cedric Jourdain committed
1
2
3
4
5
6
#!/bin/bash

echo "==> Choose supercomputer :"
echo "     - occigen"
echo "     - marenostrum "
echo "     - marconi-knl "
7
echo "     - daint-gpu "
Cedric Jourdain's avatar
Cedric Jourdain committed
8
echo "     - daint-cpu-only "
Cedric Jourdain's avatar
Cedric Jourdain committed
9
echo "     - davide "
Cedric Jourdain's avatar
Cedric Jourdain committed
10
echo "     - juwels"
Cedric Jourdain's avatar
Cedric Jourdain committed
11
12
13
14
15
16
17
18
19
20
read machine

source ./env/env_${machine}

Untar(){
    echo "==> Untar "
    #Clone the repository
    cd $install_dir
    git -c http.sslVerify=false clone  https://github.com/geodynamics/specfem3d_globe.git
    cd specfem3d_globe/
Cedric Jourdain's avatar
Cedric Jourdain committed
21
    # Checkout of 31 ocotbre 2017 version
Cedric Jourdain's avatar
Cedric Jourdain committed
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    git checkout b1d6ba966496f269611eff8c2cf1f22bcdac2bd9

    #Copy sources
    #source_dir=$HOME/git/specfem3d_globe
    #echo "Copy source"
    #cp -r $source_dir $install_dir
    cd $ueabs_dir
}

Install(){
    echo "===>  Configure "
    answer=0
    echo "1. Test Case A is designed to run on Tier-1 sized systems (up to around 1,000 x86 cores, or equivalent)"
    echo "2. Test Case B is designed to run on Tier-0 sized systems (up to around 10,000 x86 cores, or equivalent)"
    while true
    do
        echo "===> Choose Test Case : (1 or 2)"
        read answer
        if [[ $answer -eq 1 || $answer -eq 2 ]]; then break;fi
    done
    if [ $answer = "1" ]; then
        echo "===> Copy test case A"
44
45
46
47
        tar zxvf $HOME/tarballs/SPECFEM3D_TestCaseA.tar.gz
	export install_dir=$install_dir/TestCaseA
	mkdir -p $install_dir
	mv $install_dir/../specfem3d_globe  $install_dir/.
Cedric Jourdain's avatar
Cedric Jourdain committed
48
49
50
51
        cp SPECFEM3D_TestCaseA/* $install_dir/specfem3d_globe/DATA/.
        rm -rf SPECFEM3D_TestCaseA
    else
        echo "===> Copy test case B"
52
53
54
55
	export install_dir=$install_dir/TestCaseB
	mkdir -p $install_dir
	mv $install_dir/../specfem3d_globe  $install_dir/.
        tar zxvf $HOME/tarballs/SPECFEM3D_TestCaseB.tar.gz
Cedric Jourdain's avatar
Cedric Jourdain committed
56
57
58
59
        cp SPECFEM3D_TestCaseB/* $install_dir/specfem3d_globe/DATA/.
        rm -rf SPECFEM3D_TestCaseB
    fi
    cd $install_dir/specfem3d_globe
Cedric Jourdain's avatar
Cedric Jourdain committed
60
    if [ $machine = "daint-gpu" ] || [ $machine = "davide" ]; then
61
62
63
64
65
66
	echo "Configure for CPU+GPU system"
	### replace `use mpi` if needed ###
	#cd utils
 	#perl replace_use_mpi_with_include_mpif_dot_h.pl
 	#cd ..
	sed -i s/"GPU_MODE                        = .false."/"GPU_MODE                        = .true."/g  $install_dir/specfem3d_globe/DATA/Par_file
Cedric Jourdain's avatar
Cedric Jourdain committed
67
68
69
70
71
	if [ $machine = "daint-gpu" ];then
		export MPI_INC=$MPICH_DIR/include
		export CUDA_LIB="$CUDATOOLKIT_HOME/lib64"
		export CUDA_INC="$CUDATOOLKIT_HOME/include"
	fi
72
73
74
75
76
	./configure --build=ppc64 --with-cuda=cuda5
    else
	echo "Configure for CPU only system"
        ./configure  --enable-openmp
    fi
Cedric Jourdain's avatar
Cedric Jourdain committed
77
78
79
80
81
82
83
84
85
    echo $machine
    #if [ $machine = "occigen" ] || [ $machine = "marenostrum" ] || [ $machine = "marconi-knl" ];then
    #    echo "===> Edit Par_file (MemPerCor=50... )"
    #    sed -i s/"MEMORY_INSTALLED_PER_CORE_IN_GB = 2.5d0"/"MEMORY_INSTALLED_PER_CORE_IN_GB = 50d0"/g DATA/Par_file
    #fi
    echo "===> Build"
    time -p make -j 12 all >& make.log &
}

Cedric Jourdain's avatar
Cedric Jourdain committed
86
87
88
89
90
91
92
93
94
95
Clean(){
	if [ ! -z "$install_dir" ] && [ -d $install_dir ];then
		echo "==> Clean installation directory"
		rm -rf $install_dir
	else
		echo "Error with install_dir variable"
		exit
	fi
}

Cedric Jourdain's avatar
Cedric Jourdain committed
96
97
Deploy(){
    echo "install_dir ="$install_dir
Cedric Jourdain's avatar
Cedric Jourdain committed
98
    if [ $machine = "occigen" ] || [ $machine = "marenostrum" ] || [ $machine = "marconi-knl" ] || [ $machine = "daint-cpu-only" ] || [ $machine = "daint-gpu" ]  || [ $machine = "davide" ] || [ $machine = "juwels" ];then
Cedric Jourdain's avatar
Cedric Jourdain committed
99
        echo "==> Install on $machine :"
Cedric Jourdain's avatar
Cedric Jourdain committed
100
101
	#Clean
	mkdir -p $install_dir
Cedric Jourdain's avatar
Cedric Jourdain committed
102
        export ueabs_dir=`pwd`
Cedric Jourdain's avatar
Cedric Jourdain committed
103
        Untar
Cedric Jourdain's avatar
Cedric Jourdain committed
104
105
106
107
108
109
110
111
        Install
    else
        echo "Wrong machine !"
        exit
    fi
}

Deploy