bench implicit matrix

This commit is contained in:
Magnus Ulimoen 2020-08-31 21:03:39 +02:00
parent 311bd6de12
commit 0ff0c5790c
2 changed files with 21 additions and 3 deletions

View File

@ -22,6 +22,13 @@ fn advance_system_matrix<SBP: SbpOperator2d>(universe: &mut System<SBP>, n: usiz
} }
} }
#[cfg(feature = "sparse")]
fn advance_system_matrix_implicit<SBP: SbpOperator2d>(universe: &mut System<SBP>, n: usize) {
for _ in 0..n {
universe.advance_implicit();
}
}
fn performance_benchmark(c: &mut Criterion) { fn performance_benchmark(c: &mut Criterion) {
let mut group = c.benchmark_group("MaxwellSystem"); let mut group = c.benchmark_group("MaxwellSystem");
group.sample_size(25); group.sample_size(25);
@ -64,6 +71,20 @@ fn performance_benchmark(c: &mut Criterion) {
advance_system_matrix(&mut universe, black_box(20)) advance_system_matrix(&mut universe, black_box(20))
}) })
}); });
let mut universe = System::new(x.clone(), y.clone(), sbp::operators::Upwind9);
group.bench_function("advance_upwind9_as_matrix", |b| {
b.iter(|| {
universe.set_gaussian(0.5, 0.5);
advance_system_matrix(&mut universe, black_box(20))
})
});
let mut universe = System::new(x.clone(), y.clone(), Upwind4);
group.bench_function("advance_upwind9_as_matrix_implicit", |b| {
b.iter(|| {
universe.set_gaussian(0.5, 0.5);
advance_system_matrix_implicit(&mut universe, black_box(20))
})
});
} }
group.finish(); group.finish();

View File

@ -184,7 +184,6 @@ impl<SBP: SbpOperator2d> System<SBP> {
let b = self.sys.0.clone(); let b = self.sys.0.clone();
let tnow = std::time::Instant::now();
sbp::utils::jacobi_method( sbp::utils::jacobi_method(
lhs, lhs,
b.as_slice().unwrap(), b.as_slice().unwrap(),
@ -192,8 +191,6 @@ impl<SBP: SbpOperator2d> System<SBP> {
self.sys.1.as_slice_mut().unwrap(), self.sys.1.as_slice_mut().unwrap(),
10, 10,
); );
let elapsed = tnow.elapsed();
println!("{:?}", elapsed);
} }
} }