.job.stampede 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. #SBATCH -J fmm
  3. #SBATCH --export=ALL
  4. #
  5. # Options for Stampede
  6. #SBATCH -p normal-mic
  7. # SBATCH -A <project>
  8. eval $nodes_;
  9. eval $cores_;
  10. eval $mpi_proc_;
  11. eval $threads_;
  12. eval $max_time_;
  13. eval $fname_;
  14. eval $args_;
  15. WORK_DIR=${PWD}
  16. cd ${WORK_DIR}
  17. #export KMP_AFFINITY=verbose
  18. #Set mic environment variables
  19. #export OFFLOAD_REPORT=2
  20. export MIC_ENV_PREFIX=MIC
  21. export MIC_KMP_AFFINITY=explicit,granularity=fine,proclist=[1-240:1]
  22. export MIC_OMP_NUM_THREADS=240
  23. export MIC_USE_2MB_BUFFERS=64K
  24. export KMP_AFFINITY=scatter
  25. export I_MPI_HYDRA_BRANCH_COUNT=32
  26. for (( k=0; k<${#nodes[@]}; k++ )) ; do
  27. if [ "${nodes[k]}" == "${NODES}" ] &&
  28. [ "${mpi_proc[k]}" == "${MPI_PROC}" ]; then
  29. export OMP_NUM_THREADS=${threads[k]};
  30. # CPU only
  31. EXEC_=${EXEC};
  32. FNAME=${RESULT_DIR}/$(basename ${EXEC_})_${fname[k]}.out;
  33. if [ -f ${EXEC_} ] && [ ! -s ${FNAME} ] ; then
  34. printf '%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  35. printf "COMMAND: ${EXEC_} ${args[k]}\n" | tee -a ${FNAME};
  36. ${TIMEOUT} ${max_time[k]} time ibrun tacc_affinity ${EXEC_} ${args[k]} &> >(tee -a ${FNAME});
  37. printf '\n%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  38. fi;
  39. # CPU+PHI seqential
  40. EXEC_=${EXEC}_mic;
  41. FNAME=${RESULT_DIR}/$(basename ${EXEC_})_${fname[k]}.out;
  42. if [ -f ${EXEC_} ] && [ ! -s ${FNAME} ] ; then
  43. printf '%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  44. printf "COMMAND: ${EXEC_} ${args[k]}\n" | tee -a ${FNAME};
  45. ${TIMEOUT} ${max_time[k]} time ibrun tacc_affinity ${EXEC_} ${args[k]} &> >(tee -a ${FNAME});
  46. printf '\n%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  47. fi;
  48. # CPU+PHI asynchronous
  49. EXEC_=${EXEC}_async;
  50. FNAME=${RESULT_DIR}/$(basename ${EXEC_})_${fname[k]}.out;
  51. if [ -f ${EXEC_} ] && [ ! -s ${FNAME} ] ; then
  52. printf '%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  53. printf "COMMAND: ${EXEC_} ${args[k]}\n" | tee -a ${FNAME};
  54. ${TIMEOUT} ${max_time[k]} time ibrun tacc_affinity ${EXEC_} ${args[k]} &> >(tee -a ${FNAME});
  55. printf '\n%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  56. fi;
  57. fi;
  58. done;