当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Automatic task-based parallelization of C++ applications by source-to-source transformations
arXiv - CS - Programming Languages Pub Date : 2021-05-22 , DOI: arxiv-2105.10726
Garip Kusoglu, Berenger Bramas, Stephane Genaud

Currently, multi/many-core CPUs are considered standard in most types of computers including, mobile phones, PCs or supercomputers. However, the parallelization of applications as well as refactoring/design of applications for efficient hardware usage remains restricted to experts who have advanced technical knowledge and who can invest time tuning their software. In this context, the compilation community has proposed different methods for automatic parallelization, but their focus is traditionally on loops and nested loops with the support of polyhedral techniques. In this study, we propose a new approach to transform sequential C++ source code into a task-based parallel one by inserting annotations. We explain the different mechanisms we used to create tasks at each function/method call, and how we can limit the number of tasks. Our method can be implemented on top of the OpenMP 4.0 standard. It is compiler-independent and can rely on external well-optimized OpenMP libraries. Finally, we provide preliminary performance results that illustrate the potential of our method.

中文翻译:

通过源到源的转换,自动基于任务的C ++应用程序并行化

当前,在大多数类型的计算机(包括移动电话,PC或超级计算机)中,多核/多核CPU被认为是标准的。但是,应用程序的并行化以及应用程序的重构/设计以提高硬件的使用效率仍然仅限于具有高级技术知识并可以花时间调整软件的专家。在这种情况下,编译社区提出了不同的自动并行化方法,但是在传统上,它们的重点是在多面体技术的支持下对循环和嵌套循环的关注。在这项研究中,我们提出了一种通过插入注释将顺序C ++源代码转换为基于任务的并行代码的新方法。我们将解释在每个函数/方法调用中用于创建任务的不同机制,以及如何限制任务数量。我们的方法可以在OpenMP 4.0标准之上实现。它是独立于编译器的,并且可以依赖于外部优化良好的OpenMP库。最后,我们提供了初步的性能结果,这些结果说明了我们方法的潜力。
更新日期:2021-05-25
down
wechat
bug