experiments #1
.gitignoreProject.toml
data
bench_results_hemera.csvbench_results_reduction_steps.csvbench_results_reduction_steps_gpu.csvevaluate.jlevaluate_gen.jlevaluate_gen_one_sided_comparison.jlevaluate_gpu.jlevaluate_reduce_bench.jlfwk8999_gpu_results_a198f37f8e02a3dfdc31679d0c7126633832ea84.csvfwk8999results.csvqed_gen_results.csvqed_gen_results_hemera_6a02f3bee6f84c044413deb3dfedddb62d60289b.csvqed_gen_results_hemera_a198f37f8e02a3dfdc31679d0c7126633832ea84.csvqed_gen_results_onesided.csvresults_home.csvresults_home_julia.logsingularity_homepc_results.csv
examples
Project.tomlfull_node_bench.jlimport_bench.jlqed_bench.jlqed_bench_reduction_steps.jlqed_bench_reduction_steps_gpu.jlqed_bench_tape.jlqed_gen_bench.jlreduction.ipynb
experiments
CUDA_container.defdiagram_bench_hemera.shdiagram_bench_hemera_a100.shfull_node.shfull_node_hemera.shgen_diagram_hemera.shreduce_bench_hemera.shreduce_bench_hemera_gpu.shrun_gen_diagram.shrun_qed_exec.shrun_reduce_bench.shrun_reduce_bench_gpu.sh
images
AB->ABBBBB_reduction_bench.pdfAB->ABBB_reduction_bench.pdfcompton_diagram_gen_comparison.pdfcompton_graph_size_reduced.pdfcompton_graph_size_unreduced.pdfcompton_graph_size_versus.pdfgen_memory.pdfgen_times.pdfgpu_perf_NVIDIA A30.pdfgpu_rate_NVIDIA A30.pdfgpu_times_NVIDIA A30.pdfke->kke_reduction_bench.pdfke->kkke_reduction_bench.pdfke->kkke_reduction_bench_lin.pdfke->kkkke_reduction_bench.pdfke->kkkkke_reduction_bench.pdfreduction_bench_relative.pdfreduction_bench_relative_gpu.pdf
threaded_execution_data_home
ABC Process: 'AB->AB'_performance.pdfABC Process: 'AB->AB'_rate.pdfABC Process: 'AB->AB'_time.pdfABC Process: 'AB->ABBB'_performance.pdfABC Process: 'AB->ABBB'_rate.pdfABC Process: 'AB->ABBB'_time.pdfABC Process: 'AB->ABBBBB'_performance.pdfABC Process: 'AB->ABBBBB'_rate.pdfABC Process: 'AB->ABBBBB'_time.pdfQED Process: 'ke->ke'_performance.pdfQED Process: 'ke->ke'_rate.pdfQED Process: 'ke->ke'_time.pdfQED Process: 'ke->kke'_performance.pdfQED Process: 'ke->kke'_rate.pdfQED Process: 'ke->kke'_time.pdfQED Process: 'ke->kkke'_performance.pdfQED Process: 'ke->kkke'_rate.pdfQED Process: 'ke->kkke'_time.pdfQED Process: 'ke->kkkke'_performance.pdfQED Process: 'ke->kkkke'_rate.pdfQED Process: 'ke->kkkke'_time.pdfQED Process: 'ke->kkkkke'_performance.pdfQED Process: 'ke->kkkkke'_rate.pdfQED Process: 'ke->kkkkke'_time.pdfQED Process: 'ke->kkkkkke'_performance.pdfQED Process: 'ke->kkkkkke'_rate.pdfQED Process: 'ke->kkkkkke'_time.pdfQED Process: 'ke->kkkkkkke'_performance.pdfQED Process: 'ke->kkkkkkke'_rate.pdfQED Process: 'ke->kkkkkkke'_time.pdfgen_times_16_threads.pdfgen_times_1_threads.pdfgen_times_2_threads.pdfgen_times_4_threads.pdfgen_times_8_threads.pdf
notebooks
src
test
@ -8,7 +8,7 @@ using Random
|
||||
using BenchmarkTools
|
||||
using Dates
|
||||
|
||||
DISABLE_GPU = true
|
||||
DISABLE_GPU = false
|
||||
|
||||
function log(x...)
|
||||
println(now(), " ", join(x, " ")...)
|
||||
@ -44,7 +44,7 @@ if isfile(results_filename)
|
||||
df = CSV.read(results_filename, DataFrame)
|
||||
end
|
||||
|
||||
nInputs = 1_000_000
|
||||
nInputs = 10_000_000
|
||||
|
||||
function cpu_bench(compute_function, inputs)
|
||||
bench = @benchmark begin
|
||||
@ -53,7 +53,7 @@ function cpu_bench(compute_function, inputs)
|
||||
end
|
||||
end gcsample = true seconds = 300
|
||||
|
||||
time = mean(bench.times) / 1e9
|
||||
time = median(bench.times) / 1e9
|
||||
s = std(bench.times) / 1e9
|
||||
rate = length(inputs) / time
|
||||
|
||||
@ -65,7 +65,7 @@ function gpu_bench(compute_function, inputs)
|
||||
CUDA.@sync $compute_function.($inputs)
|
||||
end gcsample = true seconds = 300
|
||||
|
||||
time = mean(bench.times) / 1e9
|
||||
time = median(bench.times) / 1e9
|
||||
s = std(bench.times) / 1e9
|
||||
rate = length(inputs) / time
|
||||
|
||||
@ -230,7 +230,7 @@ optimizer = ReductionOptimizer()
|
||||
process = parse_process("ke->ke", QEDModel())
|
||||
gen_time = @elapsed graph = gen_graph(process)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
@ -242,7 +242,7 @@ CSV.write(results_filename, df)
|
||||
process = parse_process("ke->kke", QEDModel())
|
||||
gen_time = @elapsed graph = gen_graph(process)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
@ -254,7 +254,7 @@ CSV.write(results_filename, df)
|
||||
process = parse_process("ke->kkke", QEDModel())
|
||||
gen_time = @elapsed graph = gen_graph(process)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
@ -266,7 +266,7 @@ CSV.write(results_filename, df)
|
||||
process = parse_process("ke->kkkke", QEDModel())
|
||||
gen_time = @elapsed graph = gen_graph(process)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time, use_gpu = false)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time, use_gpu = false)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
@ -278,20 +278,11 @@ CSV.write(results_filename, df)
|
||||
process = parse_process("ke->kkkkke", QEDModel())
|
||||
gen_time = @elapsed graph = gen_graph(process)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time, use_gpu = false)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process reduced", graph, compute_func, gen_time, opt_time, func_gen_time, use_gpu = false)
|
||||
|
||||
CSV.write(results_filename, df)
|
||||
|
||||
# 6-photon compton
|
||||
process = parse_process("ke->kkkkkke", QEDModel())
|
||||
gen_time = @elapsed graph = gen_graph(process)
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process reduced", graph, compute_func, gen_time, opt_time, func_gen_time, use_gpu = false)
|
||||
bench_process(process, "$process reduced", graph, compute_func, gen_time, opt_time, func_gen_time)
|
||||
|
||||
CSV.write(results_filename, df)
|
||||
|
||||
@ -299,7 +290,7 @@ CSV.write(results_filename, df)
|
||||
process = parse_process("AB->AB", ABCModel())
|
||||
gen_time = @elapsed graph = parse_dag("input/AB->AB.txt", ABCModel())
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
@ -311,7 +302,7 @@ CSV.write(results_filename, df)
|
||||
process = parse_process("AB->ABBB", ABCModel())
|
||||
gen_time = @elapsed graph = parse_dag("input/AB->ABBB.txt", ABCModel())
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
@ -323,10 +314,10 @@ CSV.write(results_filename, df)
|
||||
process = parse_process("AB->ABBBBB", ABCModel())
|
||||
gen_time = @elapsed graph = parse_dag("input/AB->ABBBBB.txt", ABCModel())
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time, use_gpu = false)
|
||||
#bench_process(process, "$process not optimized", graph, compute_func, gen_time, 0.0, func_gen_time)
|
||||
|
||||
opt_time = @elapsed optimize_to_fixpoint!(optimizer, graph)
|
||||
func_gen_time = @elapsed compute_func = get_compute_function(graph, process, machine)
|
||||
bench_process(process, "$process reduced", graph, compute_func, gen_time, opt_time, func_gen_time, use_gpu = false)
|
||||
bench_process(process, "$process reduced", graph, compute_func, gen_time, opt_time, func_gen_time)
|
||||
|
||||
CSV.write(results_filename, df)
|
||||
|
24
experiments/diagram_bench_hemera_a100.sh
Executable file
24
experiments/diagram_bench_hemera_a100.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
#SBATCH --job-name=qed_bench
|
||||
#SBATCH --partition=casus_a100
|
||||
#SBATCH --account=casus
|
||||
#SBATCH --time=8:00:00
|
||||
#SBATCH --nodes=1
|
||||
#SBATCH --ntasks=1
|
||||
#SBATCH --cpus-per-task=32
|
||||
#SBATCH --gres=gpu:1
|
||||
#SBATCH --mem=256GB
|
||||
#SBATCH --output=simulation-%A-%a.out
|
||||
#SBATCH --error=simulation-%A-%a.err
|
||||
|
||||
cd $HOME/repos/metagraph_optimization
|
||||
|
||||
module load singularity
|
||||
module load git
|
||||
module load cuda/12.1
|
||||
|
||||
printf "Current git commit hash: " > results/git.txt
|
||||
git rev-parse HEAD >> results/git.txt
|
||||
git status >> results/git.txt
|
||||
|
||||
singularity exec --nv experiments/CUDA_container.sif ./experiments/run_qed_exec.sh 32
|
@ -21,6 +21,7 @@ lspci > results/pci_$i.txt
|
||||
#echo "Initiating julia..."
|
||||
#julia --threads=8 --project=./ -e 'using Pkg; Pkg.instantiate(); Pkg.add(url="https://github.com/QEDjl-project/QEDprocesses.jl/")' >> $LOG_FILE 2>&1 || exit 1 # need current dev version of QEDprocesses
|
||||
#julia --threads=8 -e 'using Pkg; Pkg.add("CSV"); Pkg.add("DataFrames"); Pkg.add("LIKWID"); Pkg.add("CUDA"); Pkg.add("Random"); Pkg.add("BenchmarkTools"); Pkg.add("Dates")' >> $LOG_FILE 2>&1 || exit 1 # add requirements for the bench script
|
||||
julia --project -e 'using CUDA; CUDA.set_runtime_version!(VersionNumber("12.1"))' >> $LOG_FILE 2>&1 || echo "Failed to set CUDA version number"
|
||||
|
||||
echo "Benchmarking $i Threads"
|
||||
julia --project --threads=$i examples/qed_bench.jl >> $LOG_FILE 2>&1 || echo "-- Something went wrong, check logs --"
|
||||
|
Reference in New Issue
Block a user