论文标题

纤维不是(p)线程:通过连续持续进行异步编程模型和MPI的松散耦合的情况

Fibers are not (P)Threads: The Case for Loose Coupling of Asynchronous Programming Models and MPI Through Continuations

论文作者

Schuchart, Joseph, Niethammer, Christoph, Gracia, José

论文摘要

异步编程模型(APM)正在获得越来越多的吸引力,从而使应用程序可以将可用的并发性公开为负责协调执行的运行时系统。尽管MPI长期以来一直为多线程通信和非阻滞操作提供了支持,但它却没有充分支持APM,因为正确有效地处理不同模型中的MPI通信仍然是一个挑战。同时,新的低水平实现了轻重量,合作计划的执行环境(纤维,又称用户级线程(ULT),旨在作为更高级别APM的基础及其在MPI实现中的集成,以替代传统的POSIX线程支持这些挑战,以减轻这些挑战。 在本文中,我们首先建立了一种分类法,以便清楚地区分并行软件堆栈中的不同概念。我们认为,提议将纤维实施与MPI的紧密整合既不有必要,也不是有益的,而是不利于MPI是便携式通信抽象的目标。我们建议MPI连续性作为MPI标准的扩展,以提供基于回调的操作通知,从而通过在MPI和APMS之间提供松散的耦合机制,从而明确地分离了问题。我们表明,该接口是灵活的,并且与不同的APM相互作用,即OpenMP独立任务,OMPSS-2和ArgObot。

Asynchronous programming models (APM) are gaining more and more traction, allowing applications to expose the available concurrency to a runtime system tasked with coordinating the execution. While MPI has long provided support for multi-threaded communication and non-blocking operations, it falls short of adequately supporting APMs as correctly and efficiently handling MPI communication in different models is still a challenge. Meanwhile, new low-level implementations of light-weight, cooperatively scheduled execution contexts (fibers, aka user-level threads (ULT)) are meant to serve as a basis for higher-level APMs and their integration in MPI implementations has been proposed as a replacement for traditional POSIX thread support to alleviate these challenges. In this paper, we first establish a taxonomy in an attempt to clearly distinguish different concepts in the parallel software stack. We argue that the proposed tight integration of fiber implementations with MPI is neither warranted nor beneficial and instead is detrimental to the goal of MPI being a portable communication abstraction. We propose MPI Continuations as an extension to the MPI standard to provide callback-based notifications on completed operations, leading to a clear separation of concerns by providing a loose coupling mechanism between MPI and APMs. We show that this interface is flexible and interacts well with different APMs, namely OpenMP detached tasks, OmpSs-2, and Argobots.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源