You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some recent changes in the Walberla branch seem to have introduced a lot of (caught) exceptions in the particle coupling code. As a result, the stack unwinding funcitons of the c library are some of the most dominatn contributions to the runtime.
For a perf report of the lb benchmark with 10 lb sites per particle and 10.000 particles per core:
Looking at a call-graph yielded, that the exception is thrown (and apparently caught) during lb velocity interpolation. The exception seems to be thrown in an interal of the walberla domain decomposition to retrieve the data from the field.
The text was updated successfully, but these errors were encountered:
diff --git a/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp b/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp
index 6c230b158..1bcfbb182 100644
--- a/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp+++ b/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp@@ -590,3 +590,3 @@ class LBWalberlaImpl : public LBWalberlaBase {
- auto field = bc->block->template getData<VectorField>(m_velocity_field_id);+ auto field = bc->block->template uncheckedFastGetData<VectorField>(m_velocity_field_id);
auto const vec = lbm::accessor::Vector::get(field, bc->cell);
@@ -917,3 +917,3 @@ class LBWalberlaImpl : public LBWalberlaBase {
- auto pdf_field = bc->block->template getData<PdfField>(m_pdf_field_id);+ auto pdf_field = bc->block->template uncheckedFastGetData<PdfField>(m_pdf_field_id);
auto const density = lbm::accessor::Density::get(pdf_field, bc->cell);
jngrad
changed the title
LB particel coupling: performance drag due to exceptions
LB particle coupling: performance drag due to exceptions
Jul 18, 2023
Some recent changes in the Walberla branch seem to have introduced a lot of (caught) exceptions in the particle coupling code. As a result, the stack unwinding funcitons of the c library are some of the most dominatn contributions to the runtime.
For a perf report of the lb benchmark with 10 lb sites per particle and 10.000 particles per core:
As can be seen, the stack unwinding is more expensive than the stream/collide.
Looking at a call-graph yielded, that the exception is thrown (and apparently caught) during lb velocity interpolation. The exception seems to be thrown in an interal of the walberla domain decomposition to retrieve the data from the field.
The text was updated successfully, but these errors were encountered: