Asynchronous Many-Task Systems (AMTs) exhibit different communication patterns from traditional High-Performance Computing (HPC) applications, characterized by asynchrony, concurrency, and multithreading. Existing communication libraries usually do not support AMTs' communication requirements in the most direct and efficient ways. The Lightweight Communication Interface (LCI) is an experimental communication library aiming to push for efficient communication support for AMTs. This paper presents the design for a new LCI C++ interface and its rationale. With a new C++ \emph{objectized flexible functions} idiom, the new interface aims for the following features: (a) a concise but expressive interface for all common point-to-point communication primitives and completion mechanisms, (b) a fine-grained resource mapping scheme for library interoperation, multithreaded performance isolation, and flexibility (c) a set of optional parameters and overridable classes for users to incrementally fine-tune the runtime behavior.
翻译:异步多任务系统(AMTs)展现出与传统高性能计算(HPC)应用不同的通信模式,其特征表现为异步性、并发性和多线程性。现有的通信库通常无法以最直接、最高效的方式支持AMTs的通信需求。轻量级通信接口(LCI)是一个实验性通信库,旨在为AMTs提供高效的通信支持。本文提出了一种新的LCI C++接口设计及其原理。通过采用一种新的C++**对象化灵活函数**范式,新接口旨在实现以下特性:(a)为所有常见的点对点通信原语和完成机制提供简洁而富有表达力的接口;(b)通过细粒度的资源映射方案实现库互操作性、多线程性能隔离和灵活性;(c)提供一组可选参数和可重写类,使用户能够逐步微调运行时行为。