.job.stampede 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 $testcase_;
  13. eval $n_pts_;
  14. eval $m_;
  15. eval $q_;
  16. eval $tol_;
  17. eval $depth_;
  18. eval $unif_;
  19. eval $adap_;
  20. eval $max_time_;
  21. eval $fname_;
  22. eval $args_;
  23. WORK_DIR=${PWD}
  24. cd ${WORK_DIR}
  25. #export KMP_AFFINITY=verbose
  26. #Set mic environment variables
  27. #export OFFLOAD_REPORT=2
  28. export MIC_ENV_PREFIX=MIC
  29. export MIC_KMP_AFFINITY=explicit,granularity=fine,proclist=[1-240:1]
  30. export MIC_OMP_NUM_THREADS=240
  31. export MIC_USE_2MB_BUFFERS=64K
  32. for (( k=0; k<${#nodes[@]}; k++ )) ; do
  33. if [ "${nodes[k]}" == "${NODES}" ] &&
  34. [ "${mpi_proc[k]}" == "${MPI_PROC}" ]; then
  35. export OMP_NUM_THREADS=${threads[k]};
  36. # CPU only
  37. EXEC_=${EXEC};
  38. FNAME=${RESULT_DIR}/$(basename ${EXEC_})_${fname[k]}.out;
  39. if [ -f ${EXEC_} ] && [ ! -s ${FNAME} ] ; then
  40. printf '%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  41. printf "COMMAND: ${EXEC_} ${args[k]}\n" | tee -a ${FNAME};
  42. ${TIMEOUT} ${max_time[k]} time ibrun tacc_affinity ${EXEC_} ${args[k]} &> >(tee -a ${FNAME});
  43. printf '\n%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  44. fi;
  45. # CPU+PHI seqential
  46. EXEC_=${EXEC}_mic;
  47. FNAME=${RESULT_DIR}/$(basename ${EXEC_})_${fname[k]}.out;
  48. if [ -f ${EXEC_} ] && [ ! -s ${FNAME} ] ; then
  49. printf '%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  50. printf "COMMAND: ${EXEC_} ${args[k]}\n" | tee -a ${FNAME};
  51. ${TIMEOUT} ${max_time[k]} time ibrun tacc_affinity ${EXEC_} ${args[k]} &> >(tee -a ${FNAME});
  52. printf '\n%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  53. fi;
  54. # CPU+PHI asynchronous
  55. EXEC_=${EXEC}_async;
  56. FNAME=${RESULT_DIR}/$(basename ${EXEC_})_${fname[k]}.out;
  57. if [ -f ${EXEC_} ] && [ ! -s ${FNAME} ] ; then
  58. printf '%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  59. printf "COMMAND: ${EXEC_} ${args[k]}\n" | tee -a ${FNAME};
  60. ${TIMEOUT} ${max_time[k]} time ibrun tacc_affinity ${EXEC_} ${args[k]} &> >(tee -a ${FNAME});
  61. printf '\n%*s\n\n' "100" ' ' | tr ' ' "#" | tee -a ${FNAME};
  62. fi;
  63. fi;
  64. done;