Abstract

VecGeom [1] is a multi-purpose geometry library targeting the optimisation of the 3D-solids’ algorithms used extensively in particle transport and tracking applications. The implementations of these algorithms are templated on the input data type and are vectorised based on the VecCore [2] abstraction library in case of multiple inputs in a SIMD vector. This provides additional performance for applications supporting a multi-particle flow, such as the GeantV [3] prototype. VecGeom allows also scalar queries for all the supported solids, an option that started being used in Geant4 [4] since the release 10.2, as optional replacement of the geometry functionality provided by the native Geant4 solids. In single particle mode, VecGeom can still issue SIMD instructions by vectorizing the geometry algorithms featuring loops over internal data structures. This approach has proven to bring very large benefits for the tessellated solids represented in terms of triangular facets. To expose more vectorization in the scalar mode we have extended the approach used for the triangular tessellations to other multifaceted shapes, such as the extruded polygon, the poly-hedra and different trapezoids. We hereby present the strategy used to vectorise the different processing phases for tessellated solids, the performance improvements compared to the previous scalar implementations for other solids using this approach, and how this is reflected in Geant4 simulations using VecGeom as geometry engine.

Highlights

  • Geometry modeling is at the core of many simulation environments, from building design and aeronautics to space technology or particle physics

  • Unions are often used in constructive solid geometry (CSG) to represent complex assemblies, and to describe cavities of holes made in compact bodies

  • As VecGeom is used already in production as geometry backend for the Geant4 particle transport toolkit, and its use will increase, the single particle geometry optimizations are extremely relevant for the overall performance of the package

Read more

Summary

Introduction

Geometry modeling is at the core of many simulation environments, from building design and aeronautics to space technology or particle physics. In the early 2012, the GeantV R&D started exploring the idea of grouping many particles for the same processing phase - such as geometry, field propagation or physics models - to increase cache locality and create the conditions for SIMD vectorization on loops over these particles. This idea required the development and availability of vector APIs performing geometry calculation for multiple tracks in an efficient SIMD manner. The VecGeom project eventually merged with the USolids activity and integrated the algorithmic modernization started therein, further improving it and extending the development to modern C++ template paradigms while adding multi-track capabilities using vectors

Vectorization
Tessellated solids
Extensions
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call