An Optimized AXPY Interface for Elemental
Elemental is an open source library for distributed-memory dense linear algebra which attempts to strike a balance between ease of use and high performance. We investigate the performance and suitability of the Elemental AXPY interface, which offers interfaces to add/subtract (or perform an operation), to/from a global distributed matrices using MPI 2-sided communication routines internally. This interface has the look and feel of the Global Arrays toolkit, a well known one-sided library extensively used in the NWChem computation chemistry package.
However, the AXPY interface is implemented using strict 2-sided message semantics, offering very little possibility of overlapping computation-communication within the application using it, and enforcing other restrictions that hamper programmability. It seems natural to redesign this interface so that it becomes more expressive in terms of its one-sided capability, and also overhaul some of the strictness regarding per-message synchronization in the existing interface. We study both these aspects of the Elemental AXPY interface, redesigning it completely using the recent MPI-3 one-sided and existing MPI-2 two-sided send/receive APIs. We observe significant improvements in performance and scalability compared to the original Elemental AXPY interface as a result of our efforts.
Sayan Ghosh is a 2nd year PhD student in the HPCTools group Laboratory at the University of Houston, Texas. His interests include parallel programming and the impact of software optimizations on power/energy consumption.