Asynchronous Many-Task (AMT) runtime systems take advantage of multi-core architectures with light-weight threads, asynchronous executions, and smart scheduling. In this paper, we present the comparison of the AMT systems Charm++ and HPX with the main stream MPI, OpenMP, and MPI+OpenMP libraries using the Task Bench benchmarks. Charm++ is a parallel programming language based on C++, supporting stackless tasks as well as light-weight threads asynchronously along with an adaptive runtime system. HPX is a C++ library for concurrency and parallelism, exposing C++ standards conforming API. First, we analyze the commonalities, differences, and advantageous scenarios of Charm++ and HPX in detail. Further, to investigate the potential overheads introduced by the tasking systems of Charm++ and HPX, we utilize an existing parameterized benchmark, Task Bench, wherein 15 different programming systems were implemented, e.g., MPI, OpenMP, MPI + OpenMP, and extend Task Bench by adding HPX implementations. We quantify the overheads of Charm++, HPX, and the main stream libraries in different scenarios where a single task and multi-task are assigned to each core, respectively. We also investigate each system's scalability and the ability to hide the communication latency.
翻译:自动运行的系统利用了带有轻重量线、不同步处决和智能时间安排的多核心结构。 在本文件中,我们将AMT系统Charm++和HPX与主要流式MPI、 OpenMP 和MPI+ OpenMP 图书馆与使用任务组基准的主要流式MPI、 OpenMP 和 MMI++ OpenMP 图书馆进行比较。 Charm++ 是一种平行的编程语言,它基于C+++,支持无堆叠任务以及轻重量线,同时配合适应性运行时间系统。 HPX 是C++ 的C+++ 图书馆, 揭示C++ 标准与 API 相符的 C++ 标准。 首先,我们详细分析Charm+++ 和 HPX 的共性、 和优性情景。 此外,为了调查Charm+++ 和 HPX 任务组任务组任务组的任务系统可能引入的间接费用,我们利用现有的参数性基准、任务组制式基准、任务组(例如MPI、 OpenMP、MP +PIMMMP +MP 和T) 扩大任务组系统,我们分别将每个任务组任务组任务组任务组的单个任务组。