-
Notifications
You must be signed in to change notification settings - Fork 63
Feature benchmark search #1919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
lukasdreyer
wants to merge
73
commits into
main
Choose a base branch
from
feature-benchmark_search
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Feature benchmark search #1919
Changes from all commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
9b30f8b
add lookup tables
ole-alb efff7e3
start impelemting types
ole-alb 055c808
Merge remote-tracking branch 'origin/main' into standalone-scheme-types
ole-alb 9d3ce51
add more type functionality
ole-alb 4f3d26e
add luts
ole-alb 1176bf7
add types to standalone
ole-alb b6c665d
fix type functionality
ole-alb 0993001
rebuild count_leaves test
ole-alb 35eaa8f
add lut for face-corner and corner-face
ole-alb a6cba74
add calculation of standalone pyramid contro volume
ole-alb 3b9b087
new name for helper function
ole-alb 40ffd20
add new test for reference coords
ole-alb c957d1c
fix reference coordinate issues
ole-alb 8b3b0d3
fix reference coords for standalone scheme
ole-alb 3599a72
cleanup
ole-alb 4d82579
add Assertions to check tet coords
ole-alb 02f257d
Merge remote-tracking branch 'origin/main' into standalone-scheme-types
ole-alb 66ef631
delete duplicated test
ole-alb 18ab26d
cleanup
ole-alb ff71c8f
delete duplicated test
ole-alb dc59084
fix debug print error
ole-alb 2822d28
remove unused value
ole-alb 38aff55
remove unused variable
ole-alb f6d5752
fix test
ole-alb 9beb28a
add function get_max_num_children
ole-alb 53ed5b1
Merge remote-tracking branch 'origin/max_num_children' into standalon…
ole-alb 7055935
fix merge error
ole-alb 36b197f
Merge remote-tracking branch 'origin/max_num_children' into standalon…
ole-alb 534a96b
disable test
ole-alb 2dc7999
implement new test logic
ole-alb 3ced503
Merge branch 'main' into standalone-scheme-types
ole-alb 303a496
add maybe_unused
ole-alb 684f4f6
apply suggestions from review
ole-alb 7128129
Merge branch 'main' into standalone-scheme-types
ole-alb 126d1ec
apply review
ole-alb 29fc2e0
switch are_family implementation
ole-alb ada3535
apply review
ole-alb 1aff0a3
Merge branch 'main' into standalone-scheme-types
lukasdreyer e653fc3
change type to uint8, compute ancestorid correctly
lukasdreyer a7640c2
fix assertion
lukasdreyer d0ad701
Only look at type when it is allowed to
lukasdreyer 2fd0b6a
fix type access
lukasdreyer c5e2676
Do not use type for hypercubes
lukasdreyer 314edc6
improve ancestor_id
lukasdreyer bb8e4e4
remove unneeded variable
lukasdreyer 41bcd8e
add pragma unrolls
lukasdreyer 92191a0
add loop unroll cmake option
lukasdreyer 89f799b
add flag around unroll option
lukasdreyer 19c4bc6
Add timing for search
lukasdreyer e787958
indent
lukasdreyer 98ed04c
indent
lukasdreyer 88d63e0
Add profiling barrier option to cmake
lukasdreyer b766dd4
Use Barriers in profiling
lukasdreyer fa2f261
Apply suggestions from code review
lukasdreyer c229d0d
indent
lukasdreyer eb58b97
Merge branch 'enhancement-profile_barrier' into feature-benchmark_search
lukasdreyer cebe240
add benchmark for search
lukasdreyer ee5f289
disable check for non comitted, as profiling for search needs to be s…
lukasdreyer e588030
fix function names
lukasdreyer a467b60
add profiling to search
lukasdreyer 2f99eb4
fix test level macro
lukasdreyer 769afe0
indent
lukasdreyer acbd9ad
fix werror
lukasdreyer e216b79
spell_check
lukasdreyer 78e6869
fix werror
lukasdreyer a1872ca
Add instruction for benchmark
lukasdreyer bc2e64a
Add benchmark runscript for slurm
lukasdreyer 45d1e0f
temporarily delete deduction of version from git tag
lukasdreyer 7acad5b
fix barrier communicator argument
lukasdreyer f97bfd8
remove unused
lukasdreyer fe006eb
update help message
lukasdreyer 04243b9
Measure each repetition seperately and skip first measurement
lukasdreyer 0732adc
Always barrier at beginning of repetition
lukasdreyer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| The search benchmark constructs a partitioned uniform refinement of a single coarse mesh element. | ||
| Afterwards, generates a single search point in the center of each local element, and finally searches for all these points | ||
| in the local part of the mesh. | ||
| Finally, each cell that had at least one point found, is refined (here uniform refinement, since each element has exactly one search point). | ||
| This cycle is repeated for num_repetitions with a new mesh each time. | ||
|
|
||
| Instructions for running the search benchmark: | ||
|
|
||
| It has 4 relevant parameters: scheme, eclass, level, repititions | ||
| An example call might look like: | ||
|
|
||
| mpirun -n 8 ./t8_time_search -s1 -e4 -l6 -r20 | ||
|
|
||
| The file search_benchmark_runscript.py provides the python script used to create the benchmarks in the paper. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| from pathlib import Path | ||
| import subprocess | ||
|
|
||
| eclasses = [4, 5, 6, 7] | ||
| schemes = [0, 1] | ||
| max_proc_log = 14 | ||
|
|
||
| max_elem_log=20 | ||
| min_elem_log=5 | ||
| repititions = 20 | ||
|
|
||
| maxlevel=18 | ||
| dim=3 | ||
|
|
||
| #CARO has 128 =2^^7 procs per node | ||
| log_procs_per_node=7 | ||
|
|
||
| out_directory = "out" | ||
|
|
||
| for eclass in eclasses: | ||
| for scheme in schemes: | ||
| for proc_log in range(max_proc_log+1): | ||
| n_nodes = max(1, int(2**(proc_log- log_procs_per_node))) | ||
| string="#!/bin/bash\n" | ||
| string += "#SBATCH --time=00:15:00\n" | ||
| string += f"#SBATCH -N {n_nodes}\n" | ||
| string += f"#SBATCH --ntasks={2**proc_log}\n" | ||
| for level in range(maxlevel+1,-1,-1): | ||
| if (max_elem_log >= dim*level - proc_log >= min_elem_log): | ||
| string += f"echo srun ./t8_time_search -s{scheme} -e{eclass} -l{level} -r{repititions}\n" | ||
| string += f"srun -o {out_directory}/e{eclass}/s{scheme}/p{proc_log}_l{level}_%j ./t8_time_search -s{scheme} -e{eclass} -l{level} -r{repititions}\n" | ||
|
|
||
| file = Path(f"{out_directory}/e{eclass}/s{scheme}/scripts/p{proc_log}.sh") | ||
| file.parent.mkdir(exist_ok=True, parents=True) | ||
| file.write_text(string) | ||
|
|
||
| for eclass in eclasses: | ||
| for scheme in schemes: | ||
| for proc_log in range(max_proc_log+1): | ||
| subprocess.call(f"sbatch {out_directory}/e{eclass}/s{scheme}/scripts/p{proc_log}.sh", shell=True) |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a file, that does not belong into t8code in my opinion. You can use it in t8data and cite t8data to make research-results reproducable.