Swing: Short-cutting Rings for Higher Bandwidth Allreduce
This work addresses a critical performance issue for distributed machine learning workloads on systems like Google TPUs and Amazon Trainium, offering significant speed improvements.
The paper tackles the performance bottleneck of allreduce operations on torus networks by introducing Swing, a new algorithm that reduces communication distance, achieving up to 3x speedup over existing methods for data vectors from 32B to 128MiB across various torus topologies.
The allreduce collective operation accounts for a significant fraction of the runtime of workloads running on distributed systems. One factor determining its performance is the distance between communicating nodes, especially on networks like torus, where a higher distance implies multiple messages being forwarded on the same link, thus reducing the allreduce bandwidth. Torus networks are widely used on systems optimized for machine learning workloads (e.g., Google TPUs and Amazon Trainium devices), as well as on some of the Top500 supercomputers. To improve allreduce performance on torus networks we introduce Swing, a new algorithm that keeps a low distance between communicating nodes by swinging between torus directions. Our analysis and experimental evaluation show that Swing outperforms by up to 3x existing allreduce algorithms for vectors ranging from 32B to 128MiB, on different types of torus and torus-like topologies, regardless of their shape and size.