source: configs/testing/arch/arch-X64_JEANZAY.sh

Last change on this file was 1036, checked in by dubos, 4 years ago

testing : porting to Jean Zay

  • Property svn:executable set to *
File size: 3.5 KB
Line 
1#!/bin/bash
2
3# This script provides site-specific functions
4# called by the site-independent scripts
5# create_runs.sh and submit.sh
6
7# NB : we must use the queue 'normal' because there seems to be a limit
8# on the number of jobs that can be submitted to queue 'test'
9
10#----------------------------- split_XXX ----------------------------
11
12function split_mpi_32() {
13    setvar nbp 33 nsplit_i 2 nsplit_j 4
14}
15function split_serial_40() {
16    setvar nbp 41 nsplit_i 2 nsplit_j 2
17}
18function split_mpi_40() {
19    setvar nbp 41 nsplit_i 2 nsplit_j 2
20}
21function split_mpi_80() {
22    setvar nbp 81 nsplit_i 4 nsplit_j 2
23}
24function split_mpi_omp_40() {
25    setvar nbp 41 nsplit_i 2 nsplit_j 2 omp_level_size 4
26}
27
28#----------------- job submission ------------------
29
30function submit_job_X64_IRENE() # $1=script $* = SLURM OPTIONS
31{
32    TMP=$(mktemp)
33    ccc_msub $1 > $TMP
34    cat $TMP 1>&2
35    cat $TMP | awk '{print $NF }'
36    rm -f $TMP
37}
38
39#------------------------------ job_XXX -----------------------------
40
41# Serial jobs
42function job_serial() { # EXP_NAME
43    job_X64_JEANZAY $1 1 1 "./gcm.exe"
44}
45function job_serial_40() { # EXP_NAME
46    job_serial $1
47}
48
49# MPI jobs
50function job_mpi() { #EXP_NAME NB_MPI
51    job_X64_JEANZAY $1 $2 1 "srun ./gcm.exe"
52}
53function job_mpi_32() { # EXP_NAME
54    job_mpi $1 80
55}
56function job_mpi_40() { # EXP_NAME
57    job_mpi $1 40
58}
59function job_mpi_80() { # EXP_NAME
60    job_mpi $1 80
61}
62
63# MPI-OMP jobs
64function job_mpi_omp() { #EXP_NAME NB_MPI NB_OMP
65    job_X64_JEANZAY $1 $2 $3 "srun ./gcm.exe"
66}
67function job_mpi_omp_40() { # EXP_NAME
68    job_mpi_omp $1 40 4
69}
70
71# Generic
72function job_X64_JEANZAY() { # EXP_NAME MPI_TASKS OMP_TASKS MPIRUN
73    cat <<EOF
74#!/bin/bash
75## Request name
76#SBATCH --job-name=$1
77## Number of tasks (=MPI processes) to use
78#SBATCH --ntasks=$2
79## Number of OpenMP threads
80#SBATCH --cpus-per-task=$3
81
82## computing project
83#SBATCH -A wuu@cpu
84## QoS for short jobs
85#SBATCH --qos=qos_cpu-dev
86## Elapsed time limit HH:MM:SS
87#SBATCH --time=00:10:00
88
89# do not use hyperthreading
90#SBATCH --hint=nomultithread
91# standard outputs
92#SBATCH --output=DYNAMICO%j.out
93#SBATCH --error=DYNAMICO%j.out
94
95export OMP_NUM_THREADS=$3
96# OpenMP binding
97export OMP_PLACES=cores
98
99# stack
100export OMP_STACKSIZE=128M
101ulimit -s unlimited
102
103# move to submission directory
104cd \${SLURM_SUBMIT_DIR}
105
106# load the same modules as during compilation
107source build/arch.env
108module list
109
110# cleanup execution directory and run
111rm -rf gcm.log logs *.nc netcdf
112date > gcm.log
113ulimit -s unlimited
114$4 >> gcm.log
115date >> gcm.log
116
117# move output files to netcdf subdir
118mkdir -p netcdf
119cp gcm.log *.def netcdf
120mv *.nc netcdf
121
122# keep log files, source code and executable for debug
123mkdir -p logs
124cp *.xml logs
125cp -pr gcm.exe logs
126cp -pr build/src logs
127mv xios_client_*.err xios_client_*.out gcm.log logs
128
129EOF
130}
131
132#------------------------------ post-processing job -----------------------------
133
134function job_post_X64_IRENE() # LIST
135{
136    DEPLIST=afterany
137    for ID in $* ; do
138        DEPLIST="$DEPLIST:$ID"
139    done
140    cat <<EOF
141#!/bin/bash
142## Request name
143#MSUB -r testing
144#MSUB -n 1
145## Elapsed time limit in seconds
146#MSUB -T 600
147#MSUB -q standard
148#MSUB -A $project
149#MSUB -q skylake
150#MSUB -m work
151#MSUB -E "--dependency=$DEPLIST"
152## Number of tasks (=MPI processes) to use
153## Quality of Service required (long [3 days], normal [1 day], test [30 min])
154#MSUB -Q normal
155
156export OMP_NUM_THREADS=1
157# this script is submitted from $ROOT/logs
158cd \${BRIDGE_MSUB_PWD}/..
159
160$(cat $ROOT/DYNAMICO/arch/arch-X64_IRENE.env)
161module load python
162
163bash/post.sh
164EOF
165}
Note: See TracBrowser for help on using the repository browser.