1: \begin{abstract}
2:
3: Anisotropic mesh adaptation is a powerful way to directly minimise the
4: computational cost of mesh based simulation. It is particularly
5: important for multi-scale problems where the required number of
6: floating-point operations can be reduced by orders of magnitude
7: relative to more traditional static mesh approaches.
8:
9: Increasingly, finite element and finite volume codes are
10: being optimised for modern multi-core architectures.
11: Typically, decomposition methods implemented through the
12: Message Passing Interface (MPI) are applied for inter-node
13: parallelisation, while a threaded programming model, such as OpenMP, is used
14: for intra-node parallelisation. Inter-node parallelism for mesh
15: adaptivity has been successfully implemented by a number of
16: groups. However, thread-level parallelism is significantly more challenging
17: because the underlying data structures are extensively
18: modified during mesh adaptation and a greater degree of
19: parallelism must be realised.
20:
21: In this paper we describe a new thread-parallel algorithm for
22: anisotropic mesh adaptation algorithms. For each of the mesh
23: optimisation phases (refinement, coarsening, swapping and smoothing)
24: we describe how independent sets of tasks are defined. We show how a
25: deferred updates strategy can be used to update the mesh data
26: structures in parallel and without data contention. We show that
27: despite the complex nature of mesh adaptation and inherent load
28: imbalances in the mesh adaptivity, a parallel efficiency of 60\% is
29: achieved on an 8 core Intel Xeon Sandybridge, and a 40\% parallel
30: efficiency is achieved using 16 cores in a 2 socket Intel Xeon
31: Sandybridge ccNUMA system.
32:
33: \end{abstract}
34: