Skip to main content
QUICK REVIEW

[论文解读] A thread-parallel algorithm for anisotropic mesh adaptation

Georgios Rokos, Gerard Gorman|arXiv (Cornell University)|Aug 12, 2013
Advanced Data Storage Technologies被引用 5
一句话总结

本文提出了一种基于OpenMP的线程并行算法,用于各向异性网格自适应,利用任务着色和延迟更新技术,在多核系统上实现可扩展的节点内并行。在8核处理器上实现60%的并行效率,在16核ccNUMA系统上实现40%的并行效率,尽管网格自适应操作存在复杂的数据依赖性和负载不平衡,仍展现出实际的可扩展性。

ABSTRACT

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

研究动机与目标

  • 为解决各向异性网格自适应中实现高效线程级并行的挑战,该挑战因动态数据结构和高负载不平衡而复杂化。
  • 在现代多核架构上实现可扩展的节点内并行,以支持有限元和有限体积模拟。
  • 开发一种线程并行算法,确保网格一致性,并在局部加密、粗化、交换和光滑化阶段避免数据竞争。
  • 评估所提算法在共享内存系统上,针对不同核心数量和NUMA拓扑结构的性能与可扩展性。

提出的方法

  • 该算法使用图着色技术识别网格操作(加密、粗化、交换、光滑化)的最大独立集,从而实现并发执行。
  • 采用延迟更新策略,将网格修改收集在工作列表中,并在并行处理后批量应用,以最小化序列化和数据竞争。
  • 每个网格自适应阶段均使用OpenMP并行化,任务调度基于颜色类别,以确保数据独立性。
  • 通过并行处理独立集合实现动态负载均衡,降低同步开销。
  • 该算法实现于二维非结构化网格,使用基于度量的误差估计器指导自适应过程。
  • 采用线程-核心亲和性,以优化内存访问模式,并减少多插槽系统中的NUMA效应。

实验结果

研究问题

  • RQ1尽管存在复杂的数据依赖性和不规则工作负载,是否能够通过类似OpenMP的线程模型有效并行化各向异性网格自适应?
  • RQ2在共享内存环境中,如何最小化网格更新期间的数据竞争和序列化开销?
  • RQ3任务着色在多核系统上暴露足够并行性以支持网格自适应操作方面发挥什么作用?
  • RQ4在具有非统一内存访问特性的ccNUMA架构中,性能如何随核心数量增加而扩展?
  • RQ5延迟更新在不损害网格质量或一致性的前提下,能在多大程度上提升网格自适应的可扩展性?

主要发现

  • 该算法在8核Intel Xeon Sandybridge系统上实现60%的并行效率,表明在网格自适应阶段具有良好的强可扩展性。
  • 在16核ccNUMA系统上,并行效率下降至40%,主要由于NUMA效应和同步开销增加。
  • 尽管网格自适应具有不规则和动态的特性,通过着色技术识别的独立任务集仍能实现有效的负载分配和高并发性。
  • 网格光滑化操作涉及较少的数据写入,但仍实现良好扩展性,表明该方法对计算量较小的操作也有效。
  • 元素质量直方图显示,在2600万个元素中仅有10个质量低于0.4,最差值为0.34,证实自适应后网格质量保持较高水平。
  • 通过延迟更新和基于工作列表的同步机制,该方法成功维持了网格一致性,并避免了数据竞争。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。