Finite element methods require the composition of the global stiffness matrix from  finite element contributions. The composition process combines the computation of element stiffness matrices and their assembly into the global stiffness matrix, which is sparse and often symmetric . In this paper we consider the assembly process of the global stiffness matrix and explore different algorithms and their efficiency on shared memory systems using C++. A key aspect of our investigation is the use of atomic synchronization primitives  . Furthermore, we propose a new  storage format for sparse matrices and compare its performance with the compressed row storage format  .
Finite element methods require the composition of the global stiffness matrix from local finite element contributions. The composition process combines the computation of element stiffness matrices and their assembly into the global stiffness matrix, which is commonly sparse . In this paper we focus on the assembly process of the global stiffness matrix and explore different algorithms and their efficiency on shared memory systems using C++. A key aspect of our investigation is the use of atomic synchronization primitives for the derivation of data-race free algorithms and data structures . Furthermore, we propose a new flexible storage format for sparse matrices and compare its performance with the compressed row storage format using abstract benchmarks based on common characteristics of finite element problems .
A
local
R
sparse and often symmetric
commonly sparse
R
consider
focus on
A
for the derivation of data-race free algorithms and data structures
A
flexible
A
using abstract benchmarks based on common characteristics of finite element problems