首页> 外文期刊>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 Library利用两个新的运行时API,以改善混合应用的可编程性和性能。第一个API允许暂停和恢复根据外部事件执行任务的执行。该API用于提高阻止MPI通信基元和任务之间的互操作性。当在任务块内执行的MPI操作时,暂停任务运行,以便运行时系统可以在空闲的核心上安排新任务。一旦封锁的MPI操作完成,暂停的任务就会在运行时系统的就绪队列中再次放置,因此最终将再次安排,并且其执行将恢复。第二个API缺少与任务完成相关联的依赖项的释放,直到一些外部事件得到满足。此API仅由两个函数组成,一个用于将外部事件绑定到正在运行的任务和另一个函数,以通知先前绑定的外部事件的完成。 Tampi利用此API与任务绑定非阻塞MPI操作,推迟其任务依赖性的释放,直到任务执行和其所有绑定的MPI操作都已完成。我们的实验表明,Tampi的增强功能不仅简化了混合动力的发展MPI + OpenMP应用程序使用阻塞或非阻塞MP1原语,但它们也自然地重叠计算和通信阶段,这通过删除跨通信任务的人工依赖性来提高应用程序性能和可扩展性。关键词:MPI OpenMP OMPSS-2 Tampi互操作性任务。 (c)2019 Elsevier B.v.保留所有权利。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号