Ignore:
Timestamp:
10/09/19 17:34:40 (5 years ago)
Author:
yushan
Message:

GENERIC_TESTCASE : generate job scripts for each config (Jean-Zay and Irene)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/check.py

    r1737 r1738  
    22import sys 
    33import subprocess 
    4  
    5  
    6 from user_param import * 
     4import socket 
     5import os.path 
     6from os import path 
     7 
     8 
     9from default_param import * 
     10from user_param import *      
     11# load default_param first, variables defines in user_param will overwrite the default value  
     12 
    713 
    814 
     
    1723        # else: 
    1824                # print(runthis+" OK") 
     25 
     26 
     27def write_jz_job(configName, nbproc=8): 
     28        red = lambda text: '\033[0;31m' + text + '\033[0m' 
     29        f=open("jz_job_"+configName+".sh", "w") 
     30        f.write("#!/bin/bash\n") 
     31        f.write("#SBATCH --ntasks="+repr(nbproc)+"              # Nombre total de processus MPI\n") 
     32        f.write("#SBATCH --ntasks-per-node=16\n") 
     33        f.write("#SBATCH --hint=nomultithread\n") 
     34        f.write("#SBATCH -t 00:10:00            # Temps elapsed maximum d'execution\n") 
     35        f.write("#SBATCH -o single_config.out     # Nom du fichier de sortie\n") 
     36        f.write("#SBATCH -e single_config.err     # Nom du fichier d'erreur\n") 
     37        f.write("#SBATCH --account=psl@cpu\n") 
     38        f.write("cd ${SLURM_SUBMIT_DIR}\n") 
     39        f.write("module purge\n") 
     40        f.write("module load intel-all/19.0.4\n") 
     41        f.write("module load netcdf/4.7.0/intel-19.0.4-mpi\n") 
     42        f.write("module load netcdf-cxx/4.2/intel-19.0.4-mpi\n") 
     43        f.write("module load netcdf-fortran/4.4.5/intel-19.0.4-mpi\n") 
     44        f.write("module load gcc/6.5.0/gcc-4.8.5\n") 
     45        f.write("module load cmake\n") 
     46        f.write("module load cdo\n") 
     47        f.write("ulimit -c 0\n") 
     48        f.write("export machine_name=jeanzay\n") 
     49        f.write("cp ../setup.py ./\n") 
     50        f.write("cp ../run_sub_test.sh ./\n") 
     51        f.write("mv user_params.def user_params.def_bkp\n") 
     52        f.write("cp "+configName+"/setup/user_param.py user_params.def\n") 
     53        f.write("python setup.py\n") 
     54        f.write("cmake .\n") 
     55        f.write("ctest -V #enable all output\n") 
     56        f.write("rm -f setup.py run_sub_test.sh\n") 
     57        f.write("rm -f run_test_*.py\n") 
     58        f.write("rm -f user_param.py.*\n") 
     59        f.write("rm -f user_param.def\n") 
     60        f.write("mv user_params.def_bkp user_params.def\n") 
     61        f.write("\n") 
     62        f.close 
     63 
     64 
     65 
     66def write_irene_job(configName, nbproc=8): 
     67        red = lambda text: '\033[0;31m' + text + '\033[0m' 
     68        f=open("irene_job_"+configName+".sh", "w") 
     69        f.write("#!/bin/bash\n") 
     70        f.write("#MSUB -r XIOS\n") 
     71        f.write("#MSUB -o client_output.out    # standard output\n") 
     72        f.write("#MSUB -e client_error.err    #error output\n") 
     73        f.write("#MSUB -eo\n") 
     74        f.write("#MSUB -c 1\n") 
     75        f.write("#MSUB -n "+ repr(nbproc) + "  # Number of MPI tasks (SPMD case) or cores (MPMD case)\n") 
     76        f.write("#MSUB -X \n") 
     77        f.write("#MSUB -x \n") 
     78        f.write("#MSUB -T 600      # Wall clock limit (seconds)\n") 
     79        f.write("#MSUB -q skylake           # thin nodes\n") 
     80        f.write("#MSUB -A devcmip6\n") 
     81        f.write("#MSUB -Q test\n") 
     82        f.write("#MSUB -m work\n") 
     83        f.write("cd $BRIDGE_MSUB_PWD\n") 
     84        f.write("module unload netcdf-c netcdf-fortran hdf5 flavor perl hdf5 boost blitz mpi gnu\n") 
     85        f.write("module load gnu\n") 
     86        f.write("module load mpi/intelmpi/2017.0.6.256\n") 
     87        f.write("module load flavor/buildcompiler/intel/17\n") 
     88        f.write("module load flavor/hdf5/parallel\n") 
     89        f.write("module load netcdf-fortran/4.4.4\n") 
     90        f.write("module load hdf5/1.8.20\n") 
     91        f.write("module load boost\n") 
     92        f.write("module load blitz\n") 
     93        f.write("module load feature/bridge/heterogenous_mpmd\n") 
     94        f.write("module load nco\n") 
     95        f.write("module load cdo\n") 
     96        f.write("export KMP_STACKSIZE=3g\n") 
     97        f.write("export KMP_LIBRARY=turnaround\n") 
     98        f.write("export MKL_SERIAL=YES\n") 
     99        f.write("export OMP_NUM_THREADS=${BRIDGE_MSUB_NCORE}\n") 
     100        f.write("set -x \n") 
     101        f.write("export machine_name=irene\n") 
     102        f.write("cp ../setup.py ./\n") 
     103        f.write("cp ../run_sub_test.sh ./\n") 
     104        f.write("mv user_params.def user_params.def_bkp\n") 
     105        f.write("cp "+configName+"/setup/user_param.py user_params.def\n") 
     106        f.write("python setup.py\n") 
     107        f.write("cmake .\n") 
     108        f.write("ctest -V #enable all output\n") 
     109        f.write("rm -f setup.py run_sub_test.sh\n") 
     110        f.write("rm -f run_test_*.py\n") 
     111        f.write("rm -f user_param.py.*\n") 
     112        f.write("rm -f user_param.def\n") 
     113        f.write("mv user_params.def_bkp user_params.def\n") 
     114        f.write("\n") 
     115        f.close 
     116 
    19117 
    20118 
     
    200298                                                                        print red("\n        **************************************************") 
    201299                                                        g.close() 
     300 
     301                                                # generate job submission script 
     302                                                hostname=os.getenv('machine_name') 
     303 
     304                                                if hostname.startswith("jeanzay"): 
     305                                                        write_jz_job(configName, NumberClients+NumberServers) 
     306                                                         
     307                                                elif hostname.startswith("irene"): 
     308                                                        write_irene_job(configName, NumberClients+NumberServers) 
     309                                                         
     310                                                else : 
     311                                                        print("machine unknown") 
     312                                                        print >> sys.stderr, 1 
     313                                                        sys.exit() 
    202314                                break 
    203315 
     
    231343                                                        print red("\n        **************************************************") 
    232344                                        g.close() 
     345 
     346                                # generate job submission script 
     347                                hostname=os.getenv('machine_name') 
     348 
     349                                if hostname.startswith("jeanzay"): 
     350                                        write_jz_job(configName, NumberClients+NumberServers) 
     351                                                         
     352                                elif hostname.startswith("irene"): 
     353                                        write_irene_job(configName, NumberClients+NumberServers) 
     354                                                         
     355                                else : 
     356                                        print("machine unknown") 
     357                                        print >> sys.stderr, 1 
     358                                        sys.exit() 
     359 
     360 
    233361                f.close() 
    234362                h.write("\n") 
Note: See TracChangeset for help on using the changeset viewer.