首页> 外文期刊>Parallel Computing >Integrating blocking and non-blocking MPI primitives with task-based programming models
【24h】

Integrating blocking and non-blocking MPI primitives with task-based programming models

机译:将阻塞和非阻塞MPI原语与基于任务的编程模型集成

获取原文
获取原文并翻译 | 示例

摘要

In this paper we present the Task-Aware MPI library (TAMPI) that integrates both blocking and non-blocking MP1 primitives with task-based programming models. The TAMPI library leverages two new runtime APIs to improve both programmability and performance of hybrid applications. The first API allows to pause and resume the execution of a task depending on external events. This API is used to improve the interoperability between blocking MPI communication primitives and tasks. When an MPI operation executed inside a task blocks, the task running is paused so that the runtime system can schedule a new task on the core that became idle. Once the blocked MPI operation is completed, the paused task is put again on the runtime system's ready queue, so eventually it will be scheduled again and its execution will be resumed.The second API defers the release of dependencies associated with a task completion until some external events are fulfilled. This API is composed only of two functions, one to bind external events to a running task and another function to notify about the completion of external events previously bound. TAMPI leverages this API to bind non-blocking MPI operations with tasks, deferring the release of their task dependencies until both task execution and all its bound MPI operations are completed.Our experiments reveal that the enhanced features of TAMPI not only simplify the development of hybrid MPI+OpenMP applications that use blocking or non-blocking MP1 primitives but they also naturally overlap computation and communication phases, which improves application performance and scalability by removing artificial dependencies across communication tasks. Keywords: MPI OpenMP OmpSs-2 TAMPI Interoperability Task. (C) 2019 Elsevier B.V. All rights reserved.
机译:在本文中,我们介绍了任务感知MPI库(TAMPI),该库将阻塞和非阻塞MP1原语与基于任务的编程模型集成在一起。 TAMPI库利用两个新的运行时API来提高混合应用程序的可编程性和性能。第一个API允许根据外部事件暂停和恢复任务的执行。该API用于改善阻塞MPI通信原语和任务之间的互操作性。当在任务内部执行MPI操作时,任务将暂停运行,以便运行时系统可以在变为空闲的内核上计划新任务。一旦阻塞的MPI操作完成,暂停的任务将再次放入运行时系统的就绪队列中,因此最终将再次对其进行调度并恢复执行。第二个API将与任务完成相关的依赖项释放推迟到外部事件得到满足。该API仅由两个函数组成,一个函数将外部事件绑定到正在运行的任务,另一个函数通知先前绑定的外部事件的完成。 TAMPI利用此API将非阻塞MPI操作与任务绑定,将其任务依赖项的发布推迟到任务执行及其所有绑定的MPI操作完成为止。我们的实验表明,TAMPI的增强功能不仅简化了混合动力的开发使用阻塞或非阻塞MP1原语的MPI + OpenMP应用程序,但它们自然也与计算和通信阶段重叠,从而通过消除跨通信任务的人为依赖性来提高应用程序性能和可伸缩性。关键字:MPI OpenMP OmpSs-2 TAMPI互操作性任务。 (C)2019 Elsevier B.V.保留所有权利。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号