sscal_pts.sh 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/bin/bash
  2. CORES=16;
  3. export EXEC=examples/bin/fmm_pts
  4. # List arrays and corresponding executable option prefix
  5. declare -a opt_array=(nodes cores mpi_proc threads ker n_pts m_pts b_len dist m depth sin_pr max_time);
  6. declare -a opt_names=( - - - omp ker N M b dist m d sp -);
  7. for (( i=0; i<${#opt_names[@]}; i++ )) ; do # Declare arrays
  8. eval "declare -a ${opt_array[$i]}=()";
  9. done
  10. ###################################################################################################
  11. # Strong Scaling Laplace kernel, 100M points, uniform distribution #
  12. ###################################################################################################
  13. nodes+=( 2 4 8 16 32 64 128 256 512 1024 1024 :)
  14. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  15. mpi_proc+=( 2 4 8 16 32 64 128 256 512 1024 1024 :)
  16. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  17. ker+=( 1 1 1 1 1 1 1 1 1 1 1 :)
  18. n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
  19. m_pts+=( 450 450 450 450 450 450 450 450 450 450 450 :)
  20. b_len+=( 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 1 :)
  21. dist+=( 0 0 0 0 0 0 0 0 0 0 0 :)
  22. m+=( 6 6 6 6 6 6 6 6 6 6 6 :)
  23. depth+=( 15 15 15 15 15 15 15 15 15 15 15 :)
  24. sin_pr+=( 0 0 0 0 0 0 0 0 0 0 0 :)
  25. max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 :)
  26. ###################################################################################################
  27. # Strong Scaling Laplace kernel, 100M points, non-uniform distribution (ellipse) #
  28. ###################################################################################################
  29. nodes+=( 2 4 8 16 32 64 128 256 512 1024 :)
  30. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  31. mpi_proc+=( 2 4 8 16 32 64 128 256 512 1024 :)
  32. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  33. ker+=( 1 1 1 1 1 1 1 1 1 1 :)
  34. n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
  35. m_pts+=( 450 450 450 450 450 450 450 450 450 450 :)
  36. b_len+=( 1 1 1 1 1 1 1 1 1 1 :)
  37. dist+=( 2 2 2 2 2 2 2 2 2 2 :)
  38. m+=( 6 6 6 6 6 6 6 6 6 6 :)
  39. depth+=( 28 28 28 28 28 28 28 28 28 28 :)
  40. sin_pr+=( 0 0 0 0 0 0 0 0 0 0 :)
  41. max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 :)
  42. ###################################################################################################
  43. # Strong Scaling Helmholtz kernel (wave-number=10), 100M points, uniform distribution #
  44. ###################################################################################################
  45. nodes+=( 4 8 16 32 64 128 256 512 1024 :)
  46. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  47. mpi_proc+=( 4 8 16 32 64 128 256 512 1024 :)
  48. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  49. ker+=( 4 4 4 4 4 4 4 4 4 :)
  50. n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
  51. m_pts+=( 400 400 400 400 400 400 400 400 400 :)
  52. b_len+=( 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 :)
  53. dist+=( 0 0 0 0 0 0 0 0 0 :)
  54. m+=( 10 10 10 10 10 10 10 10 10 :)
  55. depth+=( 15 15 15 15 15 15 15 15 15 :)
  56. sin_pr+=( 0 0 0 0 0 0 0 0 0 :)
  57. max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 1200 :)
  58. ###################################################################################################
  59. # Strong Scaling Helmholtz kernel (wave-number=10), 100M points, non-uniform distribution (sphere)#
  60. ###################################################################################################
  61. nodes+=( 8 16 32 64 128 256 512 1024 :)
  62. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  63. mpi_proc+=( 8 16 32 64 128 256 512 1024 :)
  64. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  65. ker+=( 4 4 4 4 4 4 4 4 :)
  66. n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
  67. m_pts+=( 400 400 400 400 400 400 400 400 :)
  68. b_len+=( 1 1 1 1 1 1 1 1 :)
  69. dist+=( 1 1 1 1 1 1 1 1 :)
  70. m+=( 10 10 10 10 10 10 10 10 :)
  71. depth+=( 15 15 15 15 15 15 15 15 :)
  72. sin_pr+=( 0 0 0 0 0 0 0 0 :)
  73. max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 :)
  74. RESULT_HEADER=" Script: $0 Strong scaling with 100M points"
  75. declare -a RESULT_FIELDS=()
  76. RESULT_FIELDS+=("FMM Kernel name" "kernel" )
  77. RESULT_FIELDS+=("Point distribution" "dist" )
  78. RESULT_FIELDS+=("Number of Leaf Nodes" "Noct" )
  79. RESULT_FIELDS+=("Tree Depth" "d" )
  80. RESULT_FIELDS+=("Maximum points per octant" "M" )
  81. RESULT_FIELDS+=("Order of multipole expansions" "m" )
  82. RESULT_FIELDS+=("|" "|" )
  83. RESULT_FIELDS+=("Maximum Relative Error \[Output\]" "Linf(e)")
  84. declare -a PROF_FIELDS=()
  85. #PROF_FIELDS+=("InitTree" )
  86. #PROF_FIELDS+=("SetupFMM" )
  87. #PROF_FIELDS+=("RunFMM" )
  88. ##PROF_FIELDS+=("UpwardPass" )
  89. ##PROF_FIELDS+=("ReduceBcast" )
  90. ##PROF_FIELDS+=("DownwardPass")
  91. PROF_FIELDS+=("TotalTime" )
  92. PROF_FIELDS+=("InitTree" )
  93. PROF_FIELDS+=("InitFMM_Tree")
  94. PROF_FIELDS+=("SetupFMM" )
  95. PROF_FIELDS+=("RunFMM" )
  96. PROF_FIELDS+=("Scatter" )
  97. WORK_DIR=$(dirname ${PWD}/$0)/..
  98. TERM_WIDTH=$(stty size | cut -d ' ' -f 2)
  99. source ${WORK_DIR}/scripts/.submit_jobs.sh | cut -b -${TERM_WIDTH}