Boundary integral equations are an elegant tool to model and simulate a range of physical phenomena in bounded and unbounded domains.
While mathematically well understood, the numerical implementation (e.g. via boundary element methods) still poses a number of computational challenges, from the efficient assembly of the underlying linear systems up to the fast preconditioned solution in complex applications. In this talk we provide an overview of some of these challenges and demonstrate the efficient implementation of boundary element methods on modern CPU and GPU architectures. As part of the talk we will present a number of practical examples using the Bempp-cl boundary element software, our next generation boundary element package, that has been developed in Python and supports modern vectorized CPU instruction sets and a number of GPU types.