一种基于挤压网格的有限元结构开发编号算法及其在Firedrake中的性能评估
A structure-exploiting numbering algorithm for finite elements on extruded meshes, and its performance evaluation in Firedrake
摘要:
我们提出了一个通用的算法编号,然后有效地迭代附加到一个挤出网格的数据值。拉伸网格是通过复制假定为非结构化的现有网格以形成棱柱体单元层而形成的。挤压网格的应用包括但不限于地球物理有限元模拟所采用的3D高纵横比域的表示。这些网格沿挤出方向构造。这里提出的算法利用这种结构,以避免传统上与非结构化网格的性能损失。我们评估了该算法在Firedrake有限元系统中的一系列低计算强度操作的实施,这些操作构成了数据布局性能探索的最坏情况。实验表明,只要底层网格是有序的,沿着挤出方向的结构使得间接数据访问的成本能够在10-20层之后摊销。我们将由此产生的空间和时间重用的连续Galerkin和不连续Galerkin离散化的代表集。在具有实际层数的网格上,实现的性能在理论硬件特定限制的70%到90%之间。
英文摘要:
We present a generic algorithm for numbering and then efficiently iterating over the data values attached to an extruded mesh. An extruded mesh is formed by replicating an existing mesh, assumed to be unstructured, to form layers of prismatic cells. Applications of extruded meshes include, but are not limited to, the representation of 3D high aspect ratio domains employed by geophysical finite element simulations. These meshes are structured in the extruded direction. The algorithm presented here exploits this structure to avoid the performance penalty traditionally associated with unstructured meshes. We evaluate the implementation of this algorithm in the Firedrake finite element system on a range of low compute intensity operations which constitute worst cases for data layout performance exploration. The experiments show that having structure along the extruded direction enables the cost of the indirect data accesses to be amortized after 10-20 layers as long as the underlying mesh is well-ordered. We characterise the resulting spatial and temporal reuse in a representative set of both continuous-Galerkin and discontinuous-Galerkin discretisations. On meshes with realistic numbers of layers the performance achieved is between 70% and 90% of a theoretical hardware-specific limit.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。