Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 870e7691 authored by PRUVOST Florent's avatar PRUVOST Florent
Browse files

benchs: split the 3 benchmarks into 3 gitlab-ci jobs

parent eae0c8f9
No related branches found
No related tags found
No related merge requests found
Pipeline #1130826 passed
......@@ -89,6 +89,9 @@ benchmark:
key: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG"
paths:
- build
parallel:
matrix:
- CI_BENCHMARK: ['accuracy', 'timeseq', 'timeomp']
script:
- ./scripts/plafrim_level1.sh
artifacts:
......
......@@ -18,34 +18,12 @@ if [[ -z "${CI_HOSTNAME}" ]]; then
export CI_HOSTNAME=`hostname`
fi
# configuration and compilation
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -march=native" -Dscalfmm_BUILD_BENCH=ON -Dscalfmm_USE_MKL=ON
cmake --build build --target fmm-computation-seq &
cmake --build build --target fmm-computation-omp &
wait
export SCALFMM_EXE_DIR=$PWD/build/bench/Release
# clean old benchmarks
if [ -d scripts/results ]; then
rm scripts/results -r
fi
# Execute benchmark commands
jube run scripts/scalfmm-accuracy.xml --id 1
jube run scripts/scalfmm-time-seq.xml --id 2
jube run scripts/scalfmm-time-omp.xml --id 3
# parse log files
jube analyse scripts/results --id 1
jube analyse scripts/results --id 2
jube analyse scripts/results --id 3
# reports in csv
jube result scripts/results --id 1 -o accuracy_csv > scalfmm_accuracy.csv
jube result scripts/results --id 2 -o timeseq_csv > scalfmm_timeseq.csv
jube result scripts/results --id 3 -o timeomp_csv > scalfmm_timeomp.csv
cat scalfmm_accuracy.csv
cat scalfmm_timeseq.csv
cat scalfmm_timeomp.csv
# get current database file scalfmm.sqlite3 stored on gitlab
if [[ ! -z "${CI_JOB_TOKEN}" ]]; then
......@@ -58,10 +36,48 @@ if [[ ! -z "${CI_JOB_TOKEN}" ]]; then
fi
fi
# update scalfmm.sqlite3 database
jube result scripts/results --id 1 -o accuracy
jube result scripts/results --id 2 -o timeseq
jube result scripts/results --id 3 -o timeomp
# configuration
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -march=native" -Dscalfmm_BUILD_BENCH=ON -Dscalfmm_USE_MKL=ON
# compilation and run benchmarks
case "${CI_BENCHMARK}" in
accuracy)
echo "CI_BENCHMARK is set to accuracy."
# compilation
cmake --build build --target fmm-computation-seq
# run benchmarks
jube run scripts/scalfmm-accuracy.xml --id 1
# parse result log files
jube analyse scripts/results --id 1
# generate csv file
jube result scripts/results --id 1 -o accuracy_csv > scalfmm_accuracy.csv
cat scalfmm_accuracy.csv
# update scalfmm.sqlite3 database, table accuracy
jube result scripts/results --id 1 -o accuracy
;;
timeseq)
echo "CI_BENCHMARK is set to timeseq."
cmake --build build --target fmm-computation-seq
jube run scripts/scalfmm-time-seq.xml --id 2
jube analyse scripts/results --id 2
jube result scripts/results --id 2 -o timeseq_csv > scalfmm_timeseq.csv
cat scalfmm_timeseq.csv
jube result scripts/results --id 2 -o timeseq
;;
timeomp)
echo "CI_BENCHMARK is set to timeomp."
cmake --build build --target fmm-computation-omp
jube run scripts/scalfmm-time-omp.xml --id 3
jube analyse scripts/results --id 3
jube result scripts/results --id 3 -o timeomp_csv > scalfmm_timeomp.csv
cat scalfmm_timeomp.csv
jube result scripts/results --id 3 -o timeomp
;;
*)
echo "CI_BENCHMARK is set to an unknown value."
exit 1
;;
esac
# upload updated scalfmm.sqlite3 on gitlab
if [[ ! -z "${CI_JOB_TOKEN}" ]]; then
......
......@@ -5,12 +5,12 @@
<!-- Cartesian product of input parameters -->
<parameterset name="param">
<parameter name="ndim" type="int" >1, 2, 3</parameter>
<!-- <parameter name="ndim" type="int" >2, 3</parameter> -->
<parameter name="kernel_type" type="int" >0, 6, 7</parameter>
<!-- <parameter name="kernel_type" type="int" >0, 7</parameter> -->
<parameter name="interp_type" type="int" >0, 1, 2, 3, 4</parameter>
<!-- <parameter name="interp_type" type="int" >2, 3</parameter> -->
<!-- <parameter name="ndim" type="int" >1, 2, 3</parameter> -->
<parameter name="ndim" type="int" >2, 3</parameter>
<!-- <parameter name="kernel_type" type="int" >0, 6, 7</parameter> -->
<parameter name="kernel_type" type="int" >0</parameter>
<!-- <parameter name="interp_type" type="int" >0, 1, 2, 3, 4</parameter> -->
<parameter name="interp_type" type="int" >3</parameter>
<parameter name="nrun" type="int" >1</parameter>
<parameter name="nthread" type="int" >4</parameter>
<parameter name="groupsize" type="int" >1</parameter>
......
......@@ -16,8 +16,8 @@
<parameter name="size" type="int" >100000</parameter>
<parameter name="nthread" type="int" >1, 2, 4, 8, 16</parameter>
<!-- <parameter name="nthread" type="int" >1, 2, 4</parameter> -->
<parameter name="groupsize" type="int" >1, 5, 10, 100, 1000</parameter>
<!-- <parameter name="groupsize" type="int" >1, 5, 10, 100</parameter> -->
<!-- <parameter name="groupsize" type="int" >1, 5, 10, 100, 1000</parameter> -->
<parameter name="groupsize" type="int" >10, 100</parameter>
<parameter name="command" type="string">$SCALFMM_EXE_DIR/fmm-computation-omp --fmm-computation --dimension ${ndim} --group-size ${groupsize} --interp-settings ${interp_type} --kernel ${kernel_type} --order ${interp_order} --nb-runs ${nrun} --threads ${nthread} --size ${size} --tree-height ${tree_height}</parameter>
</parameterset>
......
......@@ -8,16 +8,16 @@
<parameter name="ndim" type="int" >1, 2, 3</parameter>
<!-- <parameter name="ndim" type="int" >2</parameter> -->
<parameter name="kernel_type" type="int" >0</parameter>
<parameter name="interp_type" type="int" >1, 2, 4</parameter>
<!-- <parameter name="interp_type" type="int" >1</parameter> -->
<!-- <parameter name="interp_type" type="int" >1, 2, 4</parameter> -->
<parameter name="interp_type" type="int" >1</parameter>
<parameter name="nrun" type="int" >1</parameter>
<parameter name="nthread" type="int" >1</parameter>
<parameter name="groupsize" type="int" >1</parameter>
<parameter name="tree_height" type="int" >3, 4, 5</parameter>
<!-- <parameter name="tree_height" type="int" >3</parameter> -->
<!-- <parameter name="tree_height" type="int" >3, 4, 5</parameter> -->
<parameter name="tree_height" type="int" >3</parameter>
<parameter name="interp_order" type="int" >5</parameter>
<parameter name="size" type="int" >1000, 5000, 10000, 50000, 100000, 500000, 1000000</parameter>
<!-- <parameter name="size" type="int" >1000, 5000, 10000</parameter> -->
<!-- <parameter name="size" type="int" >1000, 5000, 10000, 50000, 100000, 500000, 1000000</parameter> -->
<parameter name="size" type="int" >1000, 5000, 10000, 50000</parameter>
<parameter name="command" type="string">$SCALFMM_EXE_DIR/fmm-computation-seq --fmm-computation --dimension ${ndim} --group-size ${groupsize} --interp-settings ${interp_type} --kernel ${kernel_type} --order ${interp_order} --nb-runs ${nrun} --threads ${nthread} --size ${size} --tree-height ${tree_height}</parameter>
</parameterset>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment