From 9ec90a42a9c77a76efe46c4a0066944700f84190 Mon Sep 17 00:00:00 2001 From: Magnus Ulimoen Date: Mon, 15 Jun 2020 22:47:40 +0200 Subject: [PATCH] add benchmark for sparse matrix --- maxwell/benches/bench.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/maxwell/benches/bench.rs b/maxwell/benches/bench.rs index ee48d69..b958307 100644 --- a/maxwell/benches/bench.rs +++ b/maxwell/benches/bench.rs @@ -15,6 +15,13 @@ fn advance_system_upwind(universe: &mut System, n: usi } } +#[cfg(feature = "sparse")] +fn advance_system_matrix(universe: &mut System, n: usize) { + for _ in 0..n { + universe.advance_sparse(0.01); + } +} + fn performance_benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("MaxwellSystem"); group.sample_size(25); @@ -40,7 +47,7 @@ fn performance_benchmark(c: &mut Criterion) { }) }); - let mut universe = System::new(x, y, SBP4); + let mut universe = System::new(x.clone(), y.clone(), SBP4); group.bench_function("advance_trad4", |b| { b.iter(|| { universe.set_gaussian(0.5, 0.5); @@ -48,6 +55,17 @@ fn performance_benchmark(c: &mut Criterion) { }) }); + #[cfg(feature = "sparse")] + { + let mut universe = System::new(x.clone(), y.clone(), Upwind4); + group.bench_function("advance_upwind4_as_matrix", |b| { + b.iter(|| { + universe.set_gaussian(0.5, 0.5); + advance_system_matrix(&mut universe, black_box(20)) + }) + }); + } + group.finish(); }