On the Complexity of Buffer Allocation in Message Passing Systems
Alex Brodsky, Jan B. Pedersen, Alan Wagner
Abstract
Message passing programs commonly use buffers to avoid unnecessary synchronizations and to improve performance by overlapping communication with computation. Unfortunately, using buffers makes the program no longer portable, potentially unable to complete on systems without a sufficient number of buffers. Effective buffer use entails that the minimum number needed for a safe execution be allocated. We explore a variety of problems related to buffer allocation for safe and efficient execution of message passing programs. We show that determining the minimum number of buffers or verifying a buffer assignment are intractable problems. However, we give a polynomial time algorithm to determine the minimum number of buffers needed to allow for asynchronous execution. We extend these results to several different buffering schemes, which in some cases make the problems tractable.
Create a lesson
Related papers
PixelFlow: Token-Level Workload Management for Efficient Distributed DiT Serving
Zhexiang Zhang, Minchen Yu, Yifan Sun et al.
A Kubernetes-Native Request Router for Quality-Aware Inference Serving in the Computing Continuum
Ignjat Karanovic, Pantelis A. Frangoudis, Ivan Čilić et al.
Accelerating Sharded Data Parallelism at Scale with Federated Learning
Gianluca Mittone, Marco Aldinucci
Distributed Edge Inference: an Experimental Study on Multiview Detection
Gianluca Mittone, Giulio Malenza, Marco Aldinucci et al.
P-GADMM: Parallel Group-Based ADMM for Asynchronous Optimization in Heterogeneous Edge Networks
Gaiguo Wei, Qingying Zhang, Heqiang Wang et al.
VERA: Reinforcement Learning for Dynamic Memory Scaling of HPC Workloads in Kubernetes
Ade Pramono, Jie Ren, Ivy Peng