123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #!/bin/bash
- CORES=16;
- export EXEC=examples/bin/fmm_pts
- # List arrays and corresponding executable option prefix
- declare -a opt_array=(nodes cores mpi_proc threads ker n_pts m_pts b_len dist m depth sin_pr max_time);
- declare -a opt_names=( - - - omp ker N M b dist m d sp -);
- for (( i=0; i<${#opt_names[@]}; i++ )) ; do # Declare arrays
- eval "declare -a ${opt_array[$i]}=()";
- done
- ###################################################################################################
- # Strong Scaling Laplace kernel, 100M points, uniform distribution #
- ###################################################################################################
- nodes+=( 2 4 8 16 32 64 128 256 512 1024 1024 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 2 4 8 16 32 64 128 256 512 1024 1024 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- ker+=( 1 1 1 1 1 1 1 1 1 1 1 :)
- n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
- m_pts+=( 450 450 450 450 450 450 450 450 450 450 450 :)
- b_len+=( 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 1 :)
- dist+=( 0 0 0 0 0 0 0 0 0 0 0 :)
- m+=( 6 6 6 6 6 6 6 6 6 6 6 :)
- depth+=( 15 15 15 15 15 15 15 15 15 15 15 :)
- sin_pr+=( 0 0 0 0 0 0 0 0 0 0 0 :)
- max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 :)
- ###################################################################################################
- # Strong Scaling Laplace kernel, 100M points, non-uniform distribution (ellipse) #
- ###################################################################################################
- nodes+=( 2 4 8 16 32 64 128 256 512 1024 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 2 4 8 16 32 64 128 256 512 1024 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- ker+=( 1 1 1 1 1 1 1 1 1 1 :)
- n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
- m_pts+=( 450 450 450 450 450 450 450 450 450 450 :)
- b_len+=( 1 1 1 1 1 1 1 1 1 1 :)
- dist+=( 2 2 2 2 2 2 2 2 2 2 :)
- m+=( 6 6 6 6 6 6 6 6 6 6 :)
- depth+=( 28 28 28 28 28 28 28 28 28 28 :)
- sin_pr+=( 0 0 0 0 0 0 0 0 0 0 :)
- max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 1200 1200 :)
- ###################################################################################################
- # Strong Scaling Helmholtz kernel (wave-number=10), 100M points, uniform distribution #
- ###################################################################################################
- nodes+=( 4 8 16 32 64 128 256 512 1024 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 4 8 16 32 64 128 256 512 1024 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- ker+=( 4 4 4 4 4 4 4 4 4 :)
- n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
- m_pts+=( 400 400 400 400 400 400 400 400 400 :)
- b_len+=( 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 0.75 :)
- dist+=( 0 0 0 0 0 0 0 0 0 :)
- m+=( 10 10 10 10 10 10 10 10 10 :)
- depth+=( 15 15 15 15 15 15 15 15 15 :)
- sin_pr+=( 0 0 0 0 0 0 0 0 0 :)
- max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 1200 :)
- ###################################################################################################
- # Strong Scaling Helmholtz kernel (wave-number=10), 100M points, non-uniform distribution (sphere)#
- ###################################################################################################
- nodes+=( 8 16 32 64 128 256 512 1024 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 8 16 32 64 128 256 512 1024 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- ker+=( 4 4 4 4 4 4 4 4 :)
- n_pts+=( 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 1e+8 :)
- m_pts+=( 400 400 400 400 400 400 400 400 :)
- b_len+=( 1 1 1 1 1 1 1 1 :)
- dist+=( 1 1 1 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 10 10 10 :)
- depth+=( 15 15 15 15 15 15 15 15 :)
- sin_pr+=( 0 0 0 0 0 0 0 0 :)
- max_time+=( 1200 1200 1200 1200 1200 1200 1200 1200 :)
- RESULT_HEADER=" Script: $0 Strong scaling with 100M points"
- declare -a RESULT_FIELDS=()
- RESULT_FIELDS+=("FMM Kernel name" "kernel" )
- RESULT_FIELDS+=("Point distribution" "dist" )
- RESULT_FIELDS+=("Number of Leaf Nodes" "Noct" )
- RESULT_FIELDS+=("Tree Depth" "d" )
- RESULT_FIELDS+=("Maximum points per octant" "M" )
- RESULT_FIELDS+=("Order of multipole expansions" "m" )
- RESULT_FIELDS+=("|" "|" )
- RESULT_FIELDS+=("Maximum Relative Error \[Output\]" "Linf(e)")
- declare -a PROF_FIELDS=()
- #PROF_FIELDS+=("InitTree" )
- #PROF_FIELDS+=("SetupFMM" )
- #PROF_FIELDS+=("RunFMM" )
- ##PROF_FIELDS+=("UpwardPass" )
- ##PROF_FIELDS+=("ReduceBcast" )
- ##PROF_FIELDS+=("DownwardPass")
- PROF_FIELDS+=("TotalTime" )
- PROF_FIELDS+=("InitTree" )
- PROF_FIELDS+=("InitFMM_Tree")
- PROF_FIELDS+=("SetupFMM" )
- PROF_FIELDS+=("RunFMM" )
- PROF_FIELDS+=("Scatter" )
- WORK_DIR=$(dirname ${PWD}/$0)/..
- TERM_WIDTH=$(stty size | cut -d ' ' -f 2)
- source ${WORK_DIR}/scripts/.submit_jobs.sh | cut -b -${TERM_WIDTH}
|