Changeset 1638


Ignore:
Timestamp:
05/13/24 15:16:26 (2 months ago)
Author:
aclsce
Message:

Added functionality to run concurrent execution with 2 or 3 model instances.

Location:
branches/libIGCM_concurrent
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/libIGCM_concurrent/AA_job

    r1629 r1638  
    596596        echo "2nd RUNDIR" 
    597597        ls -lrt RUNDIR_2 
     598        echo "3rd RUNDIR" 
     599        ls -lrt RUNDIR_3 
    598600  else 
    599601        ls -lrt 
  • branches/libIGCM_concurrent/libIGCM_config/libIGCM_config.ksh

    r1628 r1638  
    806806  NbExec=0 
    807807  first_slurm_comp=0 
     808  second_slurm_comp=0 
    808809 
    809810  OK_PARA_MPI=false 
     
    817818      number_rundir=$(echo ${comp} | sed 's/[^0-9]*//g') 
    818819      if [ X${number_rundir} != X ] ; then 
     820          if [ X${number_rundir} = X2 ] ; then 
    819821          if [ ${first_slurm_comp} = "0" ] ; then 
    820822              if [ $(( $coreNumber % $NB_CORE_PER_NODE )) -ne 0 ] ; then 
     
    824826              first_slurm_comp=1 ; 
    825827          fi 
     828          elif [ X${number_rundir} = X3 ] ; then 
     829              if [ ${second_slurm_comp} = "0" ] ; then 
     830                  if [ $(( $coreNumber % $NB_CORE_PER_NODE )) -ne 0 ] ; then 
     831                      (( coreNumber = coreNumber + NB_CORE_PER_NODE - coreNumber % NB_CORE_PER_NODE )) 
     832                  fi 
     833                  echo $coreNumber 
     834                  second_slurm_comp=1 ; 
     835              fi 
     836          fi   
    826837      fi 
    827838 
  • branches/libIGCM_concurrent/libIGCM_sys/libIGCM_sys_irene-amd.ksh

    r1635 r1638  
    236236    # Use the project set by the variable DataProject in section UserChoices in config.card 
    237237    module switch dfldatadir dfldatadir/${config_UserChoices_DataProject} 
    238     IGCM_debug_Print 1 "Load dfldatadir for DataProject red in config.card : ${config_UserChoices_DataProject}" 
     238    IGCM_debug_Print 1 "Load dfldatadir for DataProject read in config.card : ${config_UserChoices_DataProject}" 
    239239  fi 
    240240 
     
    13201320        current_core_mpi_tmp=0 
    13211321        first_slurm_comp=0 
     1322        second_slurm_comp=0 
    13221323 
    13231324      for comp in ${config_ListOfComponents[*]} ; do 
     
    13251326        number_rundir=$(echo ${comp} | sed 's/[^0-9]*//g') 
    13261327          if [ X${number_rundir} != X ] ; then 
     1328            if [ X${number_rundir} = X2 ] ; then 
    13271329              [ ! -d RUNDIR_${number_rundir} ] && mkdir RUNDIR_${number_rundir} 
    13281330              cd RUNDIR_${number_rundir}  
     
    13351337                  current_core_tmp=0 ; current_core_mpi_tmp=0 ; first_slurm_comp=1 ; 
    13361338              fi 
     1339            elif [ X${number_rundir} = X3 ] ; then 
     1340                [ ! -d RUNDIR_${number_rundir} ] && mkdir RUNDIR_${number_rundir} 
     1341                cd RUNDIR_${number_rundir}  
     1342                if [ ${second_slurm_comp} = "0" ] ; then 
     1343                    (( NbMPItasks_run2 = current_core_mpi_tmp )) 
     1344                    ### On change de noeud pour le prochain srun 
     1345                    if [ $(( $current_core % $NB_CORE_PER_NODE )) -ne 0 ] ; then 
     1346                        (( current_core = current_core + NB_CORE_PER_NODE - current_core % NB_CORE_PER_NODE )) 
     1347                    fi 
     1348                    current_core_tmp=0 ; current_core_mpi_tmp=0 ; second_slurm_comp=1 ; 
     1349                fi 
     1350            fi 
    13371351          fi 
    13381352 
     
    14191433      export SLURM_WAIT=60 
    14201434 
    1421       if [ X${number_rundir} != X ] ; then 
     1435      if [ X${number_rundir} = X2 ] ; then 
    14221436          echo "cd $RUN_DIR ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${NbMPItasks_run1} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" > EXECUTION.exe 
    14231437          echo "cd RUNDIR_2 ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${current_core_mpi_tmp} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" >> EXECUTION.exe 
    14241438          echo "wait" >> EXECUTION.exe 
    14251439          chmod u+x EXECUTION.exe  
     1440      elif [ X${number_rundir} = X3 ] ; then 
     1441          echo "cd $RUN_DIR ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${NbMPItasks_run1} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" > EXECUTION.exe 
     1442          echo "cd RUNDIR_2 ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${NbMPItasks_run2} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" >> EXECUTION.exe 
     1443          echo "cd ../RUNDIR_3 ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${current_core_mpi_tmp} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" >> EXECUTION.exe 
     1444          echo "wait" >> EXECUTION.exe 
     1445          chmod u+x EXECUTION.exe 
    14261446      else 
    14271447          EXECUTION="/usr/bin/time srun --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file" 
  • branches/libIGCM_concurrent/libIGCM_sys/libIGCM_sys_irene.ksh

    r1635 r1638  
    12821282        current_core_mpi_tmp=0 
    12831283        first_slurm_comp=0 
     1284        second_slurm_comp=0 
    12841285 
    12851286      for comp in ${config_ListOfComponents[*]} ; do 
     
    12871288        number_rundir=$(echo ${comp} | sed 's/[^0-9]*//g') 
    12881289          if [ X${number_rundir} != X ] ; then 
     1290            if [ X${number_rundir} = X2 ] ; then 
    12891291              [ ! -d RUNDIR_${number_rundir} ] && mkdir RUNDIR_${number_rundir} 
    12901292              cd RUNDIR_${number_rundir}  
     
    12971299                  current_core_tmp=0 ; current_core_mpi_tmp=0 ; first_slurm_comp=1 ; 
    12981300              fi 
     1301            elif [ X${number_rundir} = X3 ] ; then 
     1302                [ ! -d RUNDIR_${number_rundir} ] && mkdir RUNDIR_${number_rundir} 
     1303                cd RUNDIR_${number_rundir}  
     1304                if [ ${second_slurm_comp} = "0" ] ; then 
     1305                    (( NbMPItasks_run2 = current_core_mpi_tmp )) 
     1306                    ### On change de noeud pour le prochain srun 
     1307                    if [ $(( $current_core % $NB_CORE_PER_NODE )) -ne 0 ] ; then 
     1308                        (( current_core = current_core + NB_CORE_PER_NODE - current_core % NB_CORE_PER_NODE )) 
     1309                    fi 
     1310                    current_core_tmp=0 ; current_core_mpi_tmp=0 ; second_slurm_comp=1 ; 
     1311                fi 
     1312            fi 
    12991313          fi 
    13001314 
     
    13811395      export SLURM_WAIT=60 
    13821396 
    1383       if [ X${number_rundir} != X ] ; then 
     1397      if [ X${number_rundir} = X2 ] ; then 
    13841398          echo "cd $RUN_DIR ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${NbMPItasks_run1} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" > EXECUTION.exe 
    13851399          echo "cd RUNDIR_2 ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${current_core_mpi_tmp} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" >> EXECUTION.exe 
    13861400          echo "wait" >> EXECUTION.exe 
    13871401          chmod u+x EXECUTION.exe  
     1402      elif [ X${number_rundir} = X3 ] ; then 
     1403          echo "cd $RUN_DIR ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${NbMPItasks_run1} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" > EXECUTION.exe 
     1404          echo "cd RUNDIR_2 ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${NbMPItasks_run2} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" >> EXECUTION.exe 
     1405          echo "cd ../RUNDIR_3 ; export SLURM_HOSTFILE=./hostlist ; /usr/bin/time srun --ntasks=${current_core_mpi_tmp} --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file > out_execution  2>&1 &" >> EXECUTION.exe 
     1406          echo "wait" >> EXECUTION.exe 
     1407          chmod u+x EXECUTION.exe 
    13881408      else 
    13891409          EXECUTION="/usr/bin/time srun --cpu-bind=none --distribution=arbitrary --multi-prog ./run_file" 
Note: See TracChangeset for help on using the changeset viewer.