一种基于局部搜索的任务并行性优化的概念证明
A Proof of Concept for Optimizing Task Parallelism by Locality Queues
摘要:
由OpenMP任务构造所采用的任务并行性虽然对于处理不规则问题或典型的生产者/消费者方案是理想的,但是如果数据访问的局部性是重要的,则具有一些潜在的性能瓶颈,这通常是ccNUMA系统上的内存绑定代码的情况。我们提出了一种编程技术,它改善了不利影响的动态任务分配的排序任务到本地队列,其中每个线程最好是属于同一个局部域处理。动态调度完全保留在每个域内,并且即使需要非本地访问,也优于可能的负载不平衡。该方法的有效性证明使用阻塞六点模板求解器作为玩具模型。
英文摘要:
Task parallelism as employed by the OpenMP task construct, although ideal for tackling irregular problems or typical producer/consumer schemes, bears some potential for performance bottlenecks if locality of data access is important, which is typically the case for memory-bound code on ccNUMA systems. We present a programming technique which ameliorates adverse effects of dynamic task distribution by sorting tasks into locality queues, each of which is preferably processed by threads that belong to the same locality domain. Dynamic scheduling is fully preserved inside each domain, and is preferred over possible load imbalance even if non-local access is required. The effectiveness of the approach is demonstrated using a blocked six-point stencil solver as a toy model.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。