🤖 AI Summary
Traditional HPC communication libraries struggle to efficiently support Asynchronous Multi-Tasking systems (AMTs) under high-concurrency, asynchronous, and multithreaded workloads. To address this, this paper designs and implements LCI—a lightweight communication interface. We introduce an “objectified flexible function” C++ programming paradigm and pioneer a fine-grained resource mapping mechanism, enabling cross-library interoperability, thread-level performance isolation, and scalable customization. Leveraging templated RAII-based resource management, runtime-configurable parameters, overloadable class hierarchies, and abstraction of low-level primitives, LCI delivers a concise yet comprehensive C++ API. Experimental evaluation demonstrates that LCI significantly improves the efficiency of communication primitive invocations while providing exceptional controllability and scalability in multithreaded environments.
📝 Abstract
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.