single_node.sh 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  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, OMP SCALABILITY RESULTS #
  12. ###################################################################################################
  13. # m=10, q=14, octants=512, threads={1,2,4,8,16}
  14. nodes+=( 1 1 1 1 1 :)
  15. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  16. mpi_proc+=( 1 1 1 1 1 :)
  17. threads+=( 1 2 4 8 16 :)
  18. testcase+=( 1 1 1 1 1 :)
  19. n_pts+=( $((8**3)) $((8**3)) $((8**3)) $((8**3)) $((8**3)) :)
  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+=( 320 160 80 40 20 :)
  28. # m=10, q=14, octants=4096, threads={1,2,4,8,16}
  29. nodes+=( 1 1 1 1 1 :)
  30. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  31. mpi_proc+=( 1 1 1 1 1 :)
  32. threads+=( 1 2 4 8 16 :)
  33. testcase+=( 1 1 1 1 1 :)
  34. n_pts+=( $((8**4)) $((8**4)) $((8**4)) $((8**4)) $((8**4)) :)
  35. m_pts+=( 1 1 1 1 1 :)
  36. m+=( 10 10 10 10 10 :)
  37. q+=( 14 14 14 14 14 :)
  38. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  39. depth+=( 15 15 15 15 15 :)
  40. unif+=( 1 1 1 1 1 :)
  41. adap+=( 0 0 0 0 0 :)
  42. max_time+=( 2560 1280 640 320 160 :)
  43. # m=10, q=14, octants=32768, threads={1,2,4,8,16}
  44. nodes+=( 1 1 1 1 1 : :)
  45. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
  46. mpi_proc+=( 1 1 1 1 1 : :)
  47. threads+=( 1 2 4 8 16 : :)
  48. testcase+=( 1 1 1 1 1 : :)
  49. n_pts+=( $((8**5)) $((8**5)) $((8**5)) $((8**5)) $((8**5)) : :)
  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+=( 2560 1280 640 320 160 : :)
  58. ###################################################################################################
  59. # NON-UNIFORM OCTREE, LAPLACE KERNEL, OMP SCALABILITY RESULTS #
  60. ###################################################################################################
  61. # m=10, q=14, octants=939, threads={1,2,4,8,16}
  62. nodes+=( 1 1 1 1 1 :)
  63. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  64. mpi_proc+=( 1 1 1 1 1 :)
  65. threads+=( 1 2 4 8 16 :)
  66. testcase+=( 1 1 1 1 1 :)
  67. n_pts+=( 32 32 32 32 32 :)
  68. m_pts+=( 1 1 1 1 1 :)
  69. m+=( 10 10 10 10 10 :)
  70. q+=( 14 14 14 14 14 :)
  71. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  72. depth+=( 15 15 15 15 15 :)
  73. unif+=( 0 0 0 0 0 :)
  74. adap+=( 0 0 0 0 0 :)
  75. max_time+=( 320 160 80 40 20 :)
  76. # m=10, q=14, octants=5685, threads={1,2,4,8,16}
  77. nodes+=( 1 1 1 1 1 :)
  78. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  79. mpi_proc+=( 1 1 1 1 1 :)
  80. threads+=( 1 2 4 8 16 :)
  81. testcase+=( 1 1 1 1 1 :)
  82. n_pts+=( 256 256 256 256 256 :)
  83. m_pts+=( 1 1 1 1 1 :)
  84. m+=( 10 10 10 10 10 :)
  85. q+=( 14 14 14 14 14 :)
  86. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  87. depth+=( 15 15 15 15 15 :)
  88. unif+=( 0 0 0 0 0 :)
  89. adap+=( 0 0 0 0 0 :)
  90. max_time+=( 2560 1280 640 320 160 :)
  91. # m=10, q=14, octants=37416, threads={1,2,4,8,16}
  92. nodes+=( 1 1 1 1 1 : :)
  93. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
  94. mpi_proc+=( 1 1 1 1 1 : :)
  95. threads+=( 1 2 4 8 16 : :)
  96. testcase+=( 1 1 1 1 1 : :)
  97. n_pts+=( 2048 2048 2048 2048 2048 : :)
  98. m_pts+=( 1 1 1 1 1 : :)
  99. m+=( 10 10 10 10 10 : :)
  100. q+=( 14 14 14 14 14 : :)
  101. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 : :)
  102. depth+=( 15 15 15 15 15 : :)
  103. unif+=( 0 0 0 0 0 : :)
  104. adap+=( 0 0 0 0 0 : :)
  105. max_time+=( 2560 1280 640 320 160 : :)
  106. ###################################################################################################
  107. ###################################################################################################
  108. # UNIFORM OCTREE, STOKES KERNEL, OMP SCALABILITY RESULTS #
  109. ###################################################################################################
  110. # m=10, q=14, octants=512, threads={1,2,4,8,16}
  111. nodes+=( 1 1 1 1 1 :)
  112. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  113. mpi_proc+=( 1 1 1 1 1 :)
  114. threads+=( 1 2 4 8 16 :)
  115. testcase+=( 3 3 3 3 3 :)
  116. n_pts+=( $((8**3)) $((8**3)) $((8**3)) $((8**3)) $((8**3)) :)
  117. m_pts+=( 1 1 1 1 1 :)
  118. m+=( 10 10 10 10 10 :)
  119. q+=( 14 14 14 14 14 :)
  120. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  121. depth+=( 15 15 15 15 15 :)
  122. unif+=( 1 1 1 1 1 :)
  123. adap+=( 0 0 0 0 0 :)
  124. max_time+=( 3080 1540 720 360 180 :)
  125. # m=10, q=14, octants=4096, threads={1,2,4,8,16}
  126. nodes+=( 1 1 1 1 1 :)
  127. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  128. mpi_proc+=( 1 1 1 1 1 :)
  129. threads+=( 1 2 4 8 16 :)
  130. testcase+=( 3 3 3 3 3 :)
  131. n_pts+=( $((8**4)) $((8**4)) $((8**4)) $((8**4)) $((8**4)) :)
  132. m_pts+=( 1 1 1 1 1 :)
  133. m+=( 10 10 10 10 10 :)
  134. q+=( 14 14 14 14 14 :)
  135. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  136. depth+=( 15 15 15 15 15 :)
  137. unif+=( 1 1 1 1 1 :)
  138. adap+=( 0 0 0 0 0 :)
  139. max_time+=( 23040 11520 5760 2880 1440 :)
  140. # m=10, q=14, octants=32768, threads={1,2,4,8,16}
  141. nodes+=( 1 1 1 1 1 : :)
  142. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
  143. mpi_proc+=( 1 1 1 1 1 : :)
  144. threads+=( 1 2 4 8 16 : :)
  145. testcase+=( 3 3 3 3 3 : :)
  146. n_pts+=( $((8**5)) $((8**5)) $((8**5)) $((8**5)) $((8**5)) : :)
  147. m_pts+=( 1 1 1 1 1 : :)
  148. m+=( 10 10 10 10 10 : :)
  149. q+=( 14 14 14 14 14 : :)
  150. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 : :)
  151. depth+=( 15 15 15 15 15 : :)
  152. unif+=( 1 1 1 1 1 : :)
  153. adap+=( 0 0 0 0 0 : :)
  154. max_time+=( 184320 92160 46080 23040 11520 : :)
  155. ###################################################################################################
  156. # NON-UNIFORM OCTREE, STOKES KERNEL, OMP SCALABILITY RESULTS #
  157. ###################################################################################################
  158. # m=10, q=14, octants=939, threads={1,2,4,8,16}
  159. nodes+=( 1 1 1 1 1 :)
  160. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  161. mpi_proc+=( 1 1 1 1 1 :)
  162. threads+=( 1 2 4 8 16 :)
  163. testcase+=( 3 3 3 3 3 :)
  164. n_pts+=( 32 32 32 32 32 :)
  165. m_pts+=( 1 1 1 1 1 :)
  166. m+=( 10 10 10 10 10 :)
  167. q+=( 14 14 14 14 14 :)
  168. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  169. depth+=( 15 15 15 15 15 :)
  170. unif+=( 0 0 0 0 0 :)
  171. adap+=( 0 0 0 0 0 :)
  172. max_time+=( 3080 1540 720 360 180 :)
  173. # m=10, q=14, octants=5685, threads={1,2,4,8,16}
  174. nodes+=( 1 1 1 1 1 :)
  175. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  176. mpi_proc+=( 1 1 1 1 1 :)
  177. threads+=( 1 2 4 8 16 :)
  178. testcase+=( 3 3 3 3 3 :)
  179. n_pts+=( 256 256 256 256 256 :)
  180. m_pts+=( 1 1 1 1 1 :)
  181. m+=( 10 10 10 10 10 :)
  182. q+=( 14 14 14 14 14 :)
  183. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
  184. depth+=( 15 15 15 15 15 :)
  185. unif+=( 0 0 0 0 0 :)
  186. adap+=( 0 0 0 0 0 :)
  187. max_time+=( 23040 11520 5760 2880 1440 :)
  188. # m=10, q=14, octants=37416, threads={1,2,4,8,16}
  189. nodes+=( 1 1 1 1 1 : : : :)
  190. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : : : :)
  191. mpi_proc+=( 1 1 1 1 1 : : : :)
  192. threads+=( 1 2 4 8 16 : : : :)
  193. testcase+=( 3 3 3 3 3 : : : :)
  194. n_pts+=( 2048 2048 2048 2048 2048 : : : :)
  195. m_pts+=( 1 1 1 1 1 : : : :)
  196. m+=( 10 10 10 10 10 : : : :)
  197. q+=( 14 14 14 14 14 : : : :)
  198. tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 : : : :)
  199. depth+=( 15 15 15 15 15 : : : :)
  200. unif+=( 0 0 0 0 0 : : : :)
  201. adap+=( 0 0 0 0 0 : : : :)
  202. max_time+=( 184320 92160 46080 23040 11520 : : : :)
  203. ###################################################################################################
  204. ###################################################################################################
  205. # UNIFORM OCTREE, LAPLACE KERNEL, SINGLE NODE PERFORMANCE #
  206. ###################################################################################################
  207. # m=6, q=9, octants={512,4096,3276}
  208. nodes+=( 1 1 1 :)
  209. cores+=( ${CORES} ${CORES} ${CORES} :)
  210. mpi_proc+=( 1 1 1 :)
  211. threads+=( ${CORES} ${CORES} ${CORES} :)
  212. testcase+=( 1 1 1 :)
  213. n_pts+=( $((8**3)) $((8**4)) $((8**5)) :)
  214. m_pts+=( 1 1 1 :)
  215. m+=( 6 6 6 :)
  216. q+=( 9 9 9 :)
  217. tol+=( 1e-0 1e-0 1e-0 :)
  218. depth+=( 15 15 15 :)
  219. unif+=( 1 1 1 :)
  220. adap+=( 0 0 0 :)
  221. max_time+=( 20 160 1280 :)
  222. # m=10, q=14, octants={512,4096,3276}
  223. nodes+=( 1 1 1 : :)
  224. cores+=( ${CORES} ${CORES} ${CORES} : :)
  225. mpi_proc+=( 1 1 1 : :)
  226. threads+=( ${CORES} ${CORES} ${CORES} : :)
  227. testcase+=( 1 1 1 : :)
  228. n_pts+=( $((8**3)) $((8**4)) $((8**5)) : :)
  229. m_pts+=( 1 1 1 : :)
  230. m+=( 10 10 10 : :)
  231. q+=( 14 14 14 : :)
  232. tol+=( 1e-0 1e-0 1e-0 : :)
  233. depth+=( 15 15 15 : :)
  234. unif+=( 1 1 1 : :)
  235. adap+=( 0 0 0 : :)
  236. max_time+=( 20 160 1280 : :)
  237. ###################################################################################################
  238. # NON-UNIFORM OCTREE, LAPLACE KERNEL, SINGLE NODE PERFORMANCE #
  239. ###################################################################################################
  240. # m=6, q=9, octants={512,4096,3276}
  241. nodes+=( 1 1 1 :)
  242. cores+=( ${CORES} ${CORES} ${CORES} :)
  243. mpi_proc+=( 1 1 1 :)
  244. threads+=( ${CORES} ${CORES} ${CORES} :)
  245. testcase+=( 1 1 1 :)
  246. n_pts+=( 32 256 2048 :)
  247. m_pts+=( 1 1 1 :)
  248. m+=( 6 6 6 :)
  249. q+=( 9 9 9 :)
  250. tol+=( 1e-0 1e-0 1e-0 :)
  251. depth+=( 15 15 15 :)
  252. unif+=( 0 0 0 :)
  253. adap+=( 0 0 0 :)
  254. max_time+=( 20 160 1280 :)
  255. # m=10, q=14, octants={512,4096,3276}
  256. nodes+=( 1 1 1 : :)
  257. cores+=( ${CORES} ${CORES} ${CORES} : :)
  258. mpi_proc+=( 1 1 1 : :)
  259. threads+=( ${CORES} ${CORES} ${CORES} : :)
  260. testcase+=( 1 1 1 : :)
  261. n_pts+=( 32 256 2048 : :)
  262. m_pts+=( 1 1 1 : :)
  263. m+=( 10 10 10 : :)
  264. q+=( 14 14 14 : :)
  265. tol+=( 1e-0 1e-0 1e-0 : :)
  266. depth+=( 15 15 15 : :)
  267. unif+=( 0 0 0 : :)
  268. adap+=( 0 0 0 : :)
  269. max_time+=( 20 160 1280 : :)
  270. ###################################################################################################
  271. # UNIFORM OCTREE, STOKES KERNEL, SINGLE NODE PERFORMANCE #
  272. ###################################################################################################
  273. # m=6, q=9, octants={512,4096,3276}
  274. nodes+=( 1 1 1 :)
  275. cores+=( ${CORES} ${CORES} ${CORES} :)
  276. mpi_proc+=( 1 1 1 :)
  277. threads+=( ${CORES} ${CORES} ${CORES} :)
  278. testcase+=( 3 3 3 :)
  279. n_pts+=( $((8**3)) $((8**4)) $((8**5)) :)
  280. m_pts+=( 1 1 1 :)
  281. m+=( 6 6 6 :)
  282. q+=( 9 9 9 :)
  283. tol+=( 1e-0 1e-0 1e-0 :)
  284. depth+=( 15 15 15 :)
  285. unif+=( 1 1 1 :)
  286. adap+=( 0 0 0 :)
  287. max_time+=( 180 1440 11520 :)
  288. # m=10, q=14, octants={512,4096,3276}
  289. nodes+=( 1 1 1 : :)
  290. cores+=( ${CORES} ${CORES} ${CORES} : :)
  291. mpi_proc+=( 1 1 1 : :)
  292. threads+=( ${CORES} ${CORES} ${CORES} : :)
  293. testcase+=( 3 3 3 : :)
  294. n_pts+=( $((8**3)) $((8**4)) $((8**5)) : :)
  295. m_pts+=( 1 1 1 : :)
  296. m+=( 10 10 10 : :)
  297. q+=( 14 14 14 : :)
  298. tol+=( 1e-0 1e-0 1e-0 : :)
  299. depth+=( 15 15 15 : :)
  300. unif+=( 1 1 1 : :)
  301. adap+=( 0 0 0 : :)
  302. max_time+=( 180 1440 11520 : :)
  303. ###################################################################################################
  304. # NON-UNIFORM OCTREE, STOKES KERNEL, SINGLE NODE PERFORMANCE #
  305. ###################################################################################################
  306. # m=6, q=9, octants={512,4096,3276}
  307. nodes+=( 1 1 1 :)
  308. cores+=( ${CORES} ${CORES} ${CORES} :)
  309. mpi_proc+=( 1 1 1 :)
  310. threads+=( ${CORES} ${CORES} ${CORES} :)
  311. testcase+=( 3 3 3 :)
  312. n_pts+=( 32 256 2048 :)
  313. m_pts+=( 1 1 1 :)
  314. m+=( 6 6 6 :)
  315. q+=( 9 9 9 :)
  316. tol+=( 1e-0 1e-0 1e-0 :)
  317. depth+=( 15 15 15 :)
  318. unif+=( 0 0 0 :)
  319. adap+=( 0 0 0 :)
  320. max_time+=( 180 1440 11520 :)
  321. # m=10, q=14, octants={512,4096,3276}
  322. nodes+=( 1 1 1 : :)
  323. cores+=( ${CORES} ${CORES} ${CORES} : :)
  324. mpi_proc+=( 1 1 1 : :)
  325. threads+=( ${CORES} ${CORES} ${CORES} : :)
  326. testcase+=( 3 3 3 : :)
  327. n_pts+=( 32 256 2048 : :)
  328. m_pts+=( 1 1 1 : :)
  329. m+=( 10 10 10 : :)
  330. q+=( 14 14 14 : :)
  331. tol+=( 1e-0 1e-0 1e-0 : :)
  332. depth+=( 15 15 15 : :)
  333. unif+=( 0 0 0 : :)
  334. adap+=( 0 0 0 : :)
  335. max_time+=( 180 1440 11520 : :)
  336. ###################################################################################################
  337. WORK_DIR=$(dirname ${PWD}/$0)/..
  338. TERM_WIDTH=$(stty size | cut -d ' ' -f 2)
  339. source ${WORK_DIR}/scripts/.submit_jobs.sh | cut -b -${TERM_WIDTH}