conv_pts.sh 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. # Convergence Laplace kernel, 1M points, uniform distribution #
  12. ###################################################################################################
  13. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  14. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  15. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  16. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  17. ker+=( 1 1 1 1 1 1 1 1 1 :)
  18. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  19. m_pts+=( 300 300 300 300 300 300 300 300 300 :)
  20. b_len+=( 0.8125 0.8125 0.75 0.75 0.625 1.0 1.0 0.875 0.75 :)
  21. dist+=( 0 0 0 0 0 0 0 0 0 :)
  22. m+=( 2 4 6 6 8 10 12 14 16 :)
  23. depth+=( 6 6 6 6 6 5 5 5 5 :)
  24. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  25. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  26. ###################################################################################################
  27. # Convergence Laplace kernel, 1M points, non-uniform distribution (sphere) #
  28. ###################################################################################################
  29. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  30. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  31. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  32. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  33. ker+=( 1 1 1 1 1 1 1 1 1 :)
  34. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  35. m_pts+=( 180 190 200 180 200 700 750 750 1500 :)
  36. b_len+=( 1 1 1 1 1 1 1 1 1 :)
  37. dist+=( 1 1 1 1 1 1 1 1 1 :)
  38. m+=( 2 4 6 6 8 10 12 14 16 :)
  39. depth+=( 15 15 15 15 15 15 15 15 15 :)
  40. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  41. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  42. ###################################################################################################
  43. # Convergence Laplace kernel, 1M points, non-uniform distribution (ellipse) #
  44. ###################################################################################################
  45. nodes+=( 1 1 1 1 1 1 1 1 1 :)
  46. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  47. mpi_proc+=( 1 1 1 1 1 1 1 1 1 :)
  48. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  49. ker+=( 1 1 1 1 1 1 1 1 1 :)
  50. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  51. m_pts+=( 190 270 370 260 370 430 640 1000 1400 :)
  52. b_len+=( 1 1 1 1 1 1 1 1 1 :)
  53. dist+=( 2 2 2 2 2 2 2 2 2 :)
  54. m+=( 2 4 6 6 8 10 12 14 16 :)
  55. depth+=( 15 15 15 15 15 15 15 15 15 :)
  56. sin_pr+=( 1 1 1 0 0 0 0 0 0 :)
  57. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  58. ###################################################################################################
  59. # Convergence Helmholtz kernel (wave-number=10), 1M points, uniform distribution (ellipse) #
  60. ###################################################################################################
  61. nodes+=( 1 1 1 1 1 1 1 1 :)
  62. cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  63. mpi_proc+=( 1 1 1 1 1 1 1 1 :)
  64. threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
  65. ker+=( 3 3 3 3 3 3 3 3 :)
  66. n_pts+=( 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 1e+6 :)
  67. m_pts+=( 370 430 640 370 430 640 640 640 :)
  68. m_pts+=( 150 150 150 200 300 400 400 400 :)
  69. b_len+=( 1 1 1 1 1 1 1 1 :)
  70. dist+=( 0 0 0 0 0 0 0 0 :)
  71. m+=( 8 10 10 12 14 16 18 20 :)
  72. depth+=( 15 15 15 15 15 15 15 15 :)
  73. sin_pr+=( 1 1 0 0 0 0 0 0 :)
  74. max_time+=( 1000000 1000000 1000000 1000000 1000000 1000000 1000000 1000000 :)
  75. RESULT_HEADER=" Script: $0 Convergence with multipole order for 1M points"
  76. declare -a RESULT_FIELDS=()
  77. RESULT_FIELDS+=("FMM Kernel name" "kernel" )
  78. RESULT_FIELDS+=("Point distribution" "dist" )
  79. RESULT_FIELDS+=("Number of Leaf Nodes" "Noct" )
  80. RESULT_FIELDS+=("Tree Depth" "d" )
  81. RESULT_FIELDS+=("Maximum points per octant" "M" )
  82. RESULT_FIELDS+=("Order of multipole expansions" "m" )
  83. RESULT_FIELDS+=("|" "|" )
  84. RESULT_FIELDS+=("Maximum Relative Error \[Output\]" "Linf(e)")
  85. declare -a PROF_FIELDS=()
  86. PROF_FIELDS+=("InitTree" )
  87. PROF_FIELDS+=("SetupFMM" )
  88. PROF_FIELDS+=("RunFMM" )
  89. #PROF_FIELDS+=("UpwardPass" )
  90. #PROF_FIELDS+=("ReduceBcast" )
  91. #PROF_FIELDS+=("DownwardPass")
  92. WORK_DIR=$(dirname ${PWD}/$0)/..
  93. TERM_WIDTH=$(stty size | cut -d ' ' -f 2)
  94. source ${WORK_DIR}/scripts/.submit_jobs.sh | cut -b -${TERM_WIDTH}