123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- #!/bin/bash
- CORES=16;
- export EXEC=examples/bin/fmm_cheb
- # Set run parameters
- declare -a nodes=();
- declare -a cores=();
- declare -a mpi_proc=();
- declare -a threads=();
- declare -a testcase=();
- declare -a n_pts=();
- declare -a m=();
- declare -a q=();
- declare -a tol=();
- declare -a depth=();
- declare -a unif=();
- declare -a adap=();
- declare -a max_time=();
- ###################################################################################################
- # UNIFORM OCTREE, LAPLACE KERNEL, WEAK SCALABILITY #
- ###################################################################################################
- # m=10, q=14, octants=64k oct/node
- nodes+=( 4 32 256 2048 16384 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 4 32 256 2048 16384 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 1 1 1 1 1 :)
- n_pts+=( $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
- m_pts+=( 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 :)
- max_time+=( 800 800 800 800 800 :)
- # m=10, q=14, octants=32k oct/node
- nodes+=( 1 8 64 512 4096 32768 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 1 8 64 512 4096 32768 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 1 1 1 1 1 1 :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
- m_pts+=( 1 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 0 :)
- max_time+=( 400 400 400 400 400 400 :)
- # m=10, q=14, octants=16k oct/node
- nodes+=( 2 16 128 1024 8192 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 2 16 128 1024 8192 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 1 1 1 1 1 :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
- m_pts+=( 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 :)
- max_time+=( 200 200 200 200 200 :)
- # m=10, q=14, octants=8k oct/node
- nodes+=( 4 32 256 2048 16384 : :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
- mpi_proc+=( 4 32 256 2048 16384 : :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
- testcase+=( 1 1 1 1 1 : :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) : :)
- m_pts+=( 1 1 1 1 1 : :)
- m+=( 10 10 10 10 10 : :)
- q+=( 14 14 14 14 14 : :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 : :)
- depth+=( 15 15 15 15 15 : :)
- unif+=( 1 1 1 1 1 : :)
- adap+=( 0 0 0 0 0 : :)
- max_time+=( 100 100 100 100 100 : :)
- ###################################################################################################
- # NON-UNIFORM OCTREE, LAPLACE KERNEL, WEAK SCALABILITY #
- ###################################################################################################
- # m=10, q=13, octants=16k oct/node
- nodes+=( 1 4 16 64 256 1024 4096 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 1 4 16 64 256 1024 4096 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 1 1 1 1 1 1 1 :)
- n_pts+=( $((2**20)) $((2**22)) $((2**24)) $((2**26)) $((2**28)) $((2**30)) $((2**32)) :)
- m_pts+=( 500 500 500 500 500 500 500 :)
- m+=( 10 10 10 10 10 10 10 :)
- q+=( 13 13 13 13 13 13 13 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 30 30 30 30 30 30 30 :)
- unif+=( 0 0 0 0 0 0 0 :)
- adap+=( 0 0 0 0 0 0 0 :)
- max_time+=( 500 500 500 500 500 500 500 :)
- # m=10, q=13, octants=32k oct/node
- nodes+=( 1 4 16 64 256 1024 4096 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 1 4 16 64 256 1024 4096 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 1 1 1 1 1 1 1 :)
- n_pts+=( $((2**21)) $((2**23)) $((2**25)) $((2**27)) $((2**29)) $((2**31)) $((2**33)) :)
- m_pts+=( 500 500 500 500 500 500 500 :)
- m+=( 10 10 10 10 10 10 10 :)
- q+=( 13 13 13 13 13 13 13 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 30 30 30 30 30 30 30 :)
- unif+=( 0 0 0 0 0 0 0 :)
- adap+=( 0 0 0 0 0 0 0 :)
- max_time+=( 500 500 500 500 500 500 500 :)
- ###################################################################################################
- # UNIFORM OCTREE, STOKES KERNEL, WEAK SCALABILITY #
- ###################################################################################################
- # m=10, q=14, octants=32k oct/node
- nodes+=( 1 8 64 512 4096 32768 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 1 8 64 512 4096 32768 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 3 3 3 3 3 3 :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
- m_pts+=( 1 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 0 :)
- max_time+=( 2400 2400 2400 2400 2400 2400 :)
- # m=10, q=14, octants=16k oct/node
- nodes+=( 2 16 128 1024 8192 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 2 16 128 1024 8192 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 3 3 3 3 3 :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
- m_pts+=( 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 :)
- max_time+=( 1200 1200 1200 1200 1200 :)
- # m=10, q=14, octants=8k oct/node
- nodes+=( 4 32 256 2048 16384 : :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
- mpi_proc+=( 4 32 256 2048 16384 : :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} : :)
- testcase+=( 3 3 3 3 3 : :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) : :)
- m_pts+=( 1 1 1 1 1 : :)
- m+=( 10 10 10 10 10 : :)
- q+=( 14 14 14 14 14 : :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 : :)
- depth+=( 15 15 15 15 15 : :)
- unif+=( 1 1 1 1 1 : :)
- adap+=( 0 0 0 0 0 : :)
- max_time+=( 600 600 600 600 600 : :)
- ###################################################################################################
- # UNIFORM OCTREE, HELMHOLTZ KERNEL, WEAK SCALABILITY #
- ###################################################################################################
- # m=10, q=14, octants=32k oct/node
- nodes+=( 1 8 64 512 4096 32768 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 1 8 64 512 4096 32768 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 5 5 5 5 5 5 :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) $((8**10)) :)
- m_pts+=( 1 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 0 :)
- max_time+=( 2400 2400 2400 2400 2400 2400 :)
- # m=10, q=14, octants=16k oct/node
- nodes+=( 2 16 128 1024 8192 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 2 16 128 1024 8192 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 5 5 5 5 5 :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
- m_pts+=( 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 :)
- max_time+=( 1200 1200 1200 1200 1200 :)
- # m=10, q=14, octants=8k oct/node
- nodes+=( 4 32 256 2048 16384 :)
- cores+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- mpi_proc+=( 4 32 256 2048 16384 :)
- threads+=( ${CORES} ${CORES} ${CORES} ${CORES} ${CORES} :)
- testcase+=( 5 5 5 5 5 :)
- n_pts+=( $((8**5)) $((8**6)) $((8**7)) $((8**8)) $((8**9)) :)
- m_pts+=( 1 1 1 1 1 :)
- m+=( 10 10 10 10 10 :)
- q+=( 14 14 14 14 14 :)
- tol+=( 1e-0 1e-0 1e-0 1e-0 1e-0 :)
- depth+=( 15 15 15 15 15 :)
- unif+=( 1 1 1 1 1 :)
- adap+=( 0 0 0 0 0 :)
- max_time+=( 1200 1200 1200 1200 1200 :)
- ###################################################################################################
- # Export arrays
- export nodes_="$(declare -p nodes)";
- export cores_="$(declare -p cores)";
- export mpi_proc_="$(declare -p mpi_proc)";
- export threads_="$(declare -p threads)";
- export testcase_="$(declare -p testcase)";
- export n_pts_="$(declare -p n_pts)";
- export m_pts_="$(declare -p m_pts)";
- export m_="$(declare -p m)";
- export q_="$(declare -p q)";
- export tol_="$(declare -p tol)";
- export depth_="$(declare -p depth)";
- export unif_="$(declare -p unif)";
- export adap_="$(declare -p adap)";
- export max_time_="$(declare -p max_time)";
- export RESULT_FNAME=$(basename ${0%.*}).out;
- export WORK_DIR=$(dirname ${PWD}/$0)/..
- cd ${WORK_DIR}
- TERM_WIDTH=$(stty size | cut -d ' ' -f 2)
- ./scripts/.submit_jobs.sh | cut -b -${TERM_WIDTH}
|