wscal.sh 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. #!/bin/bash
  2. CORES=16;
  3. export EXEC=examples/bin/fmm_cheb
  4. # List arrays and corresponding executable option prefix
  5. declare -a opt_array=(nodes cores mpi_proc threads testcase n_pts m_pts m q tol depth unif adap max_time);
  6. declare -a opt_names=( - - - omp test N M m q tol d unif adap -);
  7. for (( i=0; i<${#opt_names[@]}; i++ )) ; do # Declare arrays
  8. eval "declare -a ${opt_array[$i]}=()";
  9. done
  10. ###################################################################################################
  11. # UNIFORM OCTREE, LAPLACE KERNEL, WEAK SCALABILITY #
  12. ###################################################################################################
  13. # m=10, q=14, octants=64k oct/node
  14. nodes+=( 4 32 256 2048 16384 :)
  15. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  16. mpi_proc+=( 4 32 256 2048 16384 :)
  17. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  18. testcase+=( 1 1 1 1 1 :)
  19. n_pts+=( $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
  20. m_pts+=( 1 1 1 1 1 :)
  21. m+=( 10 10 10 10 10 :)
  22. q+=( 14 14 14 14 14 :)
  23. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  24. depth+=( 15 15 15 15 15 :)
  25. unif+=( 1 1 1 1 1 :)
  26. adap+=( 0 0 0 0 0 :)
  27. max_time+=( 800 800 800 800 800 :)
  28. # m=10, q=14, octants=32k oct/node
  29. nodes+=( 1 8 64 512 4096 32768 :)
  30. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  31. mpi_proc+=( 1 8 64 512 4096 32768 :)
  32. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  33. testcase+=( 1 1 1 1 1 1 :)
  34. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
  35. m_pts+=( 1 1 1 1 1 1 :)
  36. m+=( 10 10 10 10 10 10 :)
  37. q+=( 14 14 14 14 14 14 :)
  38. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  39. depth+=( 15 15 15 15 15 15 :)
  40. unif+=( 1 1 1 1 1 1 :)
  41. adap+=( 0 0 0 0 0 0 :)
  42. max_time+=( 400 400 400 400 400 400 :)
  43. # m=10, q=14, octants=16k oct/node
  44. nodes+=( 2 16 128 1024 8192 :)
  45. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  46. mpi_proc+=( 2 16 128 1024 8192 :)
  47. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  48. testcase+=( 1 1 1 1 1 :)
  49. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
  50. m_pts+=( 1 1 1 1 1 :)
  51. m+=( 10 10 10 10 10 :)
  52. q+=( 14 14 14 14 14 :)
  53. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  54. depth+=( 15 15 15 15 15 :)
  55. unif+=( 1 1 1 1 1 :)
  56. adap+=( 0 0 0 0 0 :)
  57. max_time+=( 200 200 200 200 200 :)
  58. # m=10, q=14, octants=8k oct/node
  59. nodes+=( 4 32 256 2048 16384 : :)
  60. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
  61. mpi_proc+=( 4 32 256 2048 16384 : :)
  62. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
  63. testcase+=( 1 1 1 1 1 : :)
  64. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) : :)
  65. m_pts+=( 1 1 1 1 1 : :)
  66. m+=( 10 10 10 10 10 : :)
  67. q+=( 14 14 14 14 14 : :)
  68. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 : :)
  69. depth+=( 15 15 15 15 15 : :)
  70. unif+=( 1 1 1 1 1 : :)
  71. adap+=( 0 0 0 0 0 : :)
  72. max_time+=( 100 100 100 100 100 : :)
  73. ###################################################################################################
  74. # NON-UNIFORM OCTREE, LAPLACE KERNEL, WEAK SCALABILITY #
  75. ###################################################################################################
  76. # m=10, q=13, octants=16k oct/node
  77. nodes+=( 1 4 16 64 256 1024 4096 :)
  78. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  79. mpi_proc+=( 1 4 16 64 256 1024 4096 :)
  80. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  81. testcase+=( 1 1 1 1 1 1 1 :)
  82. n_pts+=( $((2**20)) $((2**22)) $((2**24)) $((2**26)) $((2**28)) $((2**30)) $((2**32)) :)
  83. m_pts+=( 500 500 500 500 500 500 500 :)
  84. m+=( 10 10 10 10 10 10 10 :)
  85. q+=( 13 13 13 13 13 13 13 :)
  86. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  87. depth+=( 30 30 30 30 30 30 30 :)
  88. unif+=( 0 0 0 0 0 0 0 :)
  89. adap+=( 0 0 0 0 0 0 0 :)
  90. max_time+=( 500 500 500 500 500 500 500 :)
  91. # m=10, q=13, octants=32k oct/node
  92. nodes+=( 1 4 16 64 256 1024 4096 :)
  93. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  94. mpi_proc+=( 1 4 16 64 256 1024 4096 :)
  95. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  96. testcase+=( 1 1 1 1 1 1 1 :)
  97. n_pts+=( $((2**21)) $((2**23)) $((2**25)) $((2**27)) $((2**29)) $((2**31)) $((2**33)) :)
  98. m_pts+=( 500 500 500 500 500 500 500 :)
  99. m+=( 10 10 10 10 10 10 10 :)
  100. q+=( 13 13 13 13 13 13 13 :)
  101. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  102. depth+=( 30 30 30 30 30 30 30 :)
  103. unif+=( 0 0 0 0 0 0 0 :)
  104. adap+=( 0 0 0 0 0 0 0 :)
  105. max_time+=( 500 500 500 500 500 500 500 :)
  106. ###################################################################################################
  107. # UNIFORM OCTREE, STOKES KERNEL, WEAK SCALABILITY #
  108. ###################################################################################################
  109. # m=10, q=14, octants=32k oct/node
  110. nodes+=( 1 8 64 512 4096 32768 :)
  111. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  112. mpi_proc+=( 1 8 64 512 4096 32768 :)
  113. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  114. testcase+=( 3 3 3 3 3 3 :)
  115. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
  116. m_pts+=( 1 1 1 1 1 1 :)
  117. m+=( 10 10 10 10 10 10 :)
  118. q+=( 14 14 14 14 14 14 :)
  119. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  120. depth+=( 15 15 15 15 15 15 :)
  121. unif+=( 1 1 1 1 1 1 :)
  122. adap+=( 0 0 0 0 0 0 :)
  123. max_time+=( 2400 2400 2400 2400 2400 2400 :)
  124. # m=10, q=14, octants=16k oct/node
  125. nodes+=( 2 16 128 1024 8192 :)
  126. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  127. mpi_proc+=( 2 16 128 1024 8192 :)
  128. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  129. testcase+=( 3 3 3 3 3 :)
  130. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
  131. m_pts+=( 1 1 1 1 1 :)
  132. m+=( 10 10 10 10 10 :)
  133. q+=( 14 14 14 14 14 :)
  134. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  135. depth+=( 15 15 15 15 15 :)
  136. unif+=( 1 1 1 1 1 :)
  137. adap+=( 0 0 0 0 0 :)
  138. max_time+=( 1200 1200 1200 1200 1200 :)
  139. # m=10, q=14, octants=8k oct/node
  140. nodes+=( 4 32 256 2048 16384 : :)
  141. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
  142. mpi_proc+=( 4 32 256 2048 16384 : :)
  143. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
  144. testcase+=( 3 3 3 3 3 : :)
  145. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) : :)
  146. m_pts+=( 1 1 1 1 1 : :)
  147. m+=( 10 10 10 10 10 : :)
  148. q+=( 14 14 14 14 14 : :)
  149. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 : :)
  150. depth+=( 15 15 15 15 15 : :)
  151. unif+=( 1 1 1 1 1 : :)
  152. adap+=( 0 0 0 0 0 : :)
  153. max_time+=( 600 600 600 600 600 : :)
  154. ###################################################################################################
  155. # UNIFORM OCTREE, HELMHOLTZ KERNEL, WEAK SCALABILITY #
  156. ###################################################################################################
  157. # m=10, q=14, octants=32k oct/node
  158. nodes+=( 1 8 64 512 4096 32768 :)
  159. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  160. mpi_proc+=( 1 8 64 512 4096 32768 :)
  161. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  162. testcase+=( 5 5 5 5 5 5 :)
  163. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
  164. m_pts+=( 1 1 1 1 1 1 :)
  165. m+=( 10 10 10 10 10 10 :)
  166. q+=( 14 14 14 14 14 14 :)
  167. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  168. depth+=( 15 15 15 15 15 15 :)
  169. unif+=( 1 1 1 1 1 1 :)
  170. adap+=( 0 0 0 0 0 0 :)
  171. max_time+=( 2400 2400 2400 2400 2400 2400 :)
  172. # m=10, q=14, octants=16k oct/node
  173. nodes+=( 2 16 128 1024 8192 :)
  174. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  175. mpi_proc+=( 2 16 128 1024 8192 :)
  176. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  177. testcase+=( 5 5 5 5 5 :)
  178. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
  179. m_pts+=( 1 1 1 1 1 :)
  180. m+=( 10 10 10 10 10 :)
  181. q+=( 14 14 14 14 14 :)
  182. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  183. depth+=( 15 15 15 15 15 :)
  184. unif+=( 1 1 1 1 1 :)
  185. adap+=( 0 0 0 0 0 :)
  186. max_time+=( 1200 1200 1200 1200 1200 :)
  187. # m=10, q=14, octants=8k oct/node
  188. nodes+=( 4 32 256 2048 16384 :)
  189. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  190. mpi_proc+=( 4 32 256 2048 16384 :)
  191. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  192. testcase+=( 5 5 5 5 5 :)
  193. n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
  194. m_pts+=( 1 1 1 1 1 :)
  195. m+=( 10 10 10 10 10 :)
  196. q+=( 14 14 14 14 14 :)
  197. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  198. depth+=( 15 15 15 15 15 :)
  199. unif+=( 1 1 1 1 1 :)
  200. adap+=( 0 0 0 0 0 :)
  201. max_time+=( 1200 1200 1200 1200 1200 :)
  202. ###################################################################################################
  203. WORK_DIR=$(dirname ${PWD}/$0)/..
  204. TERM_WIDTH=$(stty size | cut -d ' ' -f 2)
  205. source ${WORK_DIR}/scripts/.submit_jobs.sh | cut -b -${TERM_WIDTH}