Changeset 1738


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

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

Location:
XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE
Files:
9 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") 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/job_irene.sh

    r1734 r1738  
    2222module load mpi/intelmpi/2017.0.6.256 
    2323module load flavor/buildcompiler/intel/17 
    24 #module load flavor/buildmpi/intelmpi/2017 
    2524module load flavor/hdf5/parallel 
    2625module load netcdf-fortran/4.4.4 
     
    5150export machine_name=irene 
    5251 
    53 python user_config.py 
     52rm -f setup.sh 
     53touch setup.sh 
     54>setup.sh 
     55for i in $(ls -d test_*/) 
     56do 
     57  cp setup.py ${i%%/}       
     58  cp run_sub_test.sh ${i%%/}       
     59  echo "bash -c \"cd " ${i%%/} " && python setup.py\" ">> setup.sh 
     60  echo "echo \"setup.py called from " ${i%%/} "\"">> setup.sh 
     61done 
     62 
     63export output=$(python user_config.py 2>&1 >/dev/null) 
     64 
     65if [ "$output" -ne 0 ] 
     66then 
     67        echo "user_config.py failed" 
     68        exit 
     69else 
     70        echo "user_config.py OK" 
     71fi 
     72 
     73 
    5474cmake . 
    55 ctest -V 
     75ctest -V  
     76#ctest --output-on-failure 
     77make report 
    5678 
    57 make report 
     79 
     80rm -f test_*/setup.py 
     81rm -f test_*/run_sub_test.sh 
     82rm -f test_*/run_test_*.py 
     83rm -f test_*/CMakeLists.txt 
     84 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/job_jz.sh

    r1737 r1738  
    5858 
    5959cmake . 
    60 # ctest -V  
    61 ctest --output-on-failure 
     60ctest -V  
     61#ctest --output-on-failure 
    6262make report 
    6363 
     
    7373 
    7474 
     75        # bj98et@eduroam.cnrs.fr 
     76        # corsez filez doutez isbas 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/setup.py

    r1737 r1738  
    130130 
    131131                f.write("set_tests_properties("+foldername+"_config"+repr(x)+" PROPERTIES\n") 
    132                 f.write("                      FAIL_REGULAR_EXPRESSION \"check.py failed;execution failed;failed;setup.sh failed\")\n\n") 
     132                f.write("                      FAIL_REGULAR_EXPRESSION \"check.py failed;execution failed;failed;setup.sh failed; machine unknown\")\n\n") 
    133133 
    134134                g=open("run_test_"+repr(x)+".py", "w") 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_axis_algo/job_irene.sh

    r1729 r1738  
    2222module load mpi/intelmpi/2017.0.6.256 
    2323module load flavor/buildcompiler/intel/17 
    24 #module load flavor/buildmpi/intelmpi/2017 
    2524module load flavor/hdf5/parallel 
    2625module load netcdf-fortran/4.4.4 
     
    4948#ccc_mprun tau_exec -io ../../bin/test_send.exe 
    5049#ddt -start -n 8 ../buile_intelmpi/bin/test_omp.exe 
     50cp ../setup.py ./ 
     51cp ../run_sub_test.sh ./ 
     52 
    5153python setup.py 
    5254 
    5355cmake . 
    54 make test 
     56 
     57#ctest --output-on-failure #enable output only when test failed 
     58 
     59ctest -V #enable all output 
     60 
     61rm -f setup.py run_sub_test.sh 
     62rm -f run_test_*.py 
     63rm -f user_param.py.* 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_domain_algo/job_irene.sh

    r1729 r1738  
    2222module load mpi/intelmpi/2017.0.6.256 
    2323module load flavor/buildcompiler/intel/17 
    24 #module load flavor/buildmpi/intelmpi/2017 
    2524module load flavor/hdf5/parallel 
    2625module load netcdf-fortran/4.4.4 
     
    4948#ccc_mprun tau_exec -io ../../bin/test_send.exe 
    5049#ddt -start -n 8 ../buile_intelmpi/bin/test_omp.exe 
     50cp ../setup.py ./ 
     51cp ../run_sub_test.sh ./ 
     52 
    5153python setup.py 
     54 
    5255cmake . 
    53 make test 
     56 
     57#ctest --output-on-failure #enable output only when test failed 
     58 
     59ctest -V #enable all output 
     60 
     61rm -f setup.py run_sub_test.sh 
     62rm -f run_test_*.py 
     63rm -f user_param.py.* 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_function/job_irene.sh

    r1729 r1738  
    2222module load mpi/intelmpi/2017.0.6.256 
    2323module load flavor/buildcompiler/intel/17 
    24 #module load flavor/buildmpi/intelmpi/2017 
    2524module load flavor/hdf5/parallel 
    2625module load netcdf-fortran/4.4.4 
     
    4847#ccc_mprun tau_exec -io ../../bin/test_send.exe 
    4948#ddt -start -n 8 ../buile_intelmpi/bin/test_omp.exe 
     49cp ../setup.py ./ 
     50cp ../run_sub_test.sh ./ 
     51 
    5052python setup.py 
     53 
    5154cmake . 
    52 make test 
     55 
     56#ctest --output-on-failure #enable output only when test failed 
     57 
     58ctest -V #enable all output 
     59 
     60rm -f setup.py run_sub_test.sh 
     61rm -f run_test_*.py 
     62rm -f user_param.py.* 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_grid_algo/job_irene.sh

    r1729 r1738  
    2222module load mpi/intelmpi/2017.0.6.256 
    2323module load flavor/buildcompiler/intel/17 
    24 #module load flavor/buildmpi/intelmpi/2017 
    2524module load flavor/hdf5/parallel 
    2625module load netcdf-fortran/4.4.4 
     
    4948#ccc_mprun tau_exec -io ../../bin/test_send.exe 
    5049#ddt -start -n 8 ../buile_intelmpi/bin/test_omp.exe 
     50cp ../setup.py ./ 
     51cp ../run_sub_test.sh ./ 
     52 
    5153python setup.py 
     54 
    5255cmake . 
    53 make test 
     56 
     57#ctest --output-on-failure #enable output only when test failed 
     58 
     59ctest -V #enable all output 
     60 
     61rm -f setup.py run_sub_test.sh 
     62rm -f run_test_*.py 
     63rm -f user_param.py.* 
  • XIOS/dev/dev_trunk_omp/GENERIC_TESTCASE/test_scalar_algo/job_irene.sh

    r1729 r1738  
    2222module load mpi/intelmpi/2017.0.6.256 
    2323module load flavor/buildcompiler/intel/17 
    24 #module load flavor/buildmpi/intelmpi/2017 
    2524module load flavor/hdf5/parallel 
    2625module load netcdf-fortran/4.4.4 
     
    4948#ccc_mprun tau_exec -io ../../bin/test_send.exe 
    5049#ddt -start -n 8 ../buile_intelmpi/bin/test_omp.exe 
     50cp ../setup.py ./ 
     51cp ../run_sub_test.sh ./ 
     52 
    5153python setup.py 
     54 
    5255cmake . 
    53 make test 
     56 
     57#ctest --output-on-failure #enable output only when test failed 
     58 
     59ctest -V #enable all output 
     60 
     61rm -f setup.py run_sub_test.sh 
     62rm -f run_test_*.py 
     63rm -f user_param.py.* 
Note: See TracChangeset for help on using the changeset viewer.