1 | #!/bin/bash |
---|
2 | ###################### |
---|
3 | ## IRENE-AMD TGCC/CEA ## |
---|
4 | ###################### |
---|
5 | #MSUB -r IPSLCM6.5_ENSEMBLES # Job Name |
---|
6 | #MSUB -o Script_Output_IPSLCM6.5_ENSEMBLES # standard output |
---|
7 | #MSUB -e Script_Output_IPSLCM6.5_ENSEMBLES # error output |
---|
8 | #MSUB -eo |
---|
9 | #MSUB -n 369 # Number of MPI tasks (SPMD case) or cores (MPMD case) |
---|
10 | #MSUB -x # exclusive node. To specify only for MPMD together with the one below |
---|
11 | #MSUB -T 1800 # Wall clock limit (seconds) |
---|
12 | #MSUB -Q test |
---|
13 | #MSUB -A gen0826 |
---|
14 | #MSUB -q rome |
---|
15 | #MSUB -X |
---|
16 | #MSUB -m store,work,scratch |
---|
17 | |
---|
18 | cd ${BRIDGE_MSUB_PWD} |
---|
19 | |
---|
20 | |
---|
21 | module purge |
---|
22 | module load intel/19.0.5.281 |
---|
23 | module load feature/openmpi/net/ib/ucx-verbs |
---|
24 | module load flavor/openmpi/vanilla mpi/openmpi/4.0.5 |
---|
25 | module load flavor/hdf5/parallel |
---|
26 | module load netcdf-fortran/4.4.4 |
---|
27 | module load hdf5/1.8.20 |
---|
28 | module load feature/bridge/heterogenous_mpmd |
---|
29 | module load nco/4.9.1 |
---|
30 | module load cdo/1.9.5 |
---|
31 | module load c++/gnu/7.3.0 |
---|
32 | module load c/gnu/7.3.0 |
---|
33 | module load arm-forge/20.2.1 |
---|
34 | |
---|
35 | |
---|
36 | pool_number=5 |
---|
37 | pool_size=2 |
---|
38 | |
---|
39 | whole_ensemble_size=$((${pool_number}*${pool_size})) |
---|
40 | |
---|
41 | rm -f xios.x ; cp ../bin/xios_server_prod.exe xios.x |
---|
42 | rm -f lmdz.x ; cp ../bin/gcm_96x95x59_prod.e lmdz.x |
---|
43 | rm -f opa.xx ; cp ../bin/opa_prod.exe opa.xx |
---|
44 | rm -rf XIOS |
---|
45 | mkdir XIOS |
---|
46 | |
---|
47 | for (( pool_rank=0 ; pool_rank < $(($pool_number)) ; pool_rank++ )) |
---|
48 | do |
---|
49 | ./create_runfile.sh $pool_size $pool_rank |
---|
50 | |
---|
51 | for (( pool_member_rank=0; pool_member_rank<$(($pool_size+1)); pool_member_rank++ )) |
---|
52 | do |
---|
53 | |
---|
54 | whole_ensemble_rank=$(($pool_size*$pool_rank+$pool_member_rank)) |
---|
55 | if (( pool_member_rank < $pool_size )) |
---|
56 | then |
---|
57 | rm -rf MEMBER_$whole_ensemble_rank |
---|
58 | mkdir MEMBER_$whole_ensemble_rank |
---|
59 | cd MEMBER_$whole_ensemble_rank |
---|
60 | else |
---|
61 | cd XIOS |
---|
62 | fi |
---|
63 | |
---|
64 | ln -f -s ../ENSEMBLE_TEMPLATE/* . |
---|
65 | cp ../oasis_namcouple_body ../oasis_namcouple_epilog ../oasis_namcouple_header . |
---|
66 | ../create_ensemble_def $whole_ensemble_size $pool_size $pool_rank $pool_member_rank |
---|
67 | ../create_oasis_namecoupl.sh $pool_size $pool_rank |
---|
68 | ../create_oasis_restart.sh $pool_size $pool_rank |
---|
69 | ../create_iodef_xml.sh $pool_size |
---|
70 | cd .. |
---|
71 | done |
---|
72 | #export DDT=TRUE |
---|
73 | /usr/bin/time ccc_mprun -E-K1 -f ./run_file |
---|
74 | done |
---|
75 | |
---|
76 | |
---|
77 | exit |
---|