compile.sh 3.4 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-mc "
Cedric Jourdain's avatar
Cedric Jourdain committed
9
echo "     - davide "
Cedric Jourdain's avatar
Cedric Jourdain committed
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
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
    # Checkout of 31 ocotbre 2017 version
    cd specfem3d_globe/
    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"
43
44
45
46
        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
47
48
49
50
        cp SPECFEM3D_TestCaseA/* $install_dir/specfem3d_globe/DATA/.
        rm -rf SPECFEM3D_TestCaseA
    else
        echo "===> Copy test case B"
51
52
53
54
	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
55
56
57
58
        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
59
    if [ $machine = "daint-gpu" ] || [ $machine = "davide" ]; then
60
61
62
63
64
65
	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
66
67
68
69
70
	if [ $machine = "daint-gpu" ];then
		export MPI_INC=$MPICH_DIR/include
		export CUDA_LIB="$CUDATOOLKIT_HOME/lib64"
		export CUDA_INC="$CUDATOOLKIT_HOME/include"
	fi
71
72
73
74
75
	./configure --build=ppc64 --with-cuda=cuda5
    else
	echo "Configure for CPU only system"
        ./configure  --enable-openmp
    fi
Cedric Jourdain's avatar
Cedric Jourdain committed
76
77
78
79
80
81
82
83
84
    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
85
86
87
88
89
90
91
92
93
94
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
95
96
Deploy(){
    echo "install_dir ="$install_dir
Cedric Jourdain's avatar
Cedric Jourdain committed
97
    if [ $machine = "occigen" ] || [ $machine = "marenostrum" ] || [ $machine = "marconi-knl" ] || [ $machine = "daint-mc" ] || [ $machine = "daint-gpu" ] || [ $machine = "davide" ];then
Cedric Jourdain's avatar
Cedric Jourdain committed
98
        echo "==> Install on $machine :"
Cedric Jourdain's avatar
Cedric Jourdain committed
99
100
	#Clean
	mkdir -p $install_dir
Cedric Jourdain's avatar
Cedric Jourdain committed
101
        export ueabs_dir=`pwd`
Cedric Jourdain's avatar
Cedric Jourdain committed
102
        #Untar
Cedric Jourdain's avatar
Cedric Jourdain committed
103
104
105
106
107
108
109
110
        Install
    else
        echo "Wrong machine !"
        exit
    fi
}

Deploy