|
About: Programming High Performance Computing systems is notoriously hard, typically featuring long time to prototype, poor portability, and increased overall develpment effort. Nevertheless, the idea of "bringing HPC to the masses" has recently emerged. This vision has inspired the design of SHAD, the Scalable High-performance Algorithms and Data-structures library. SHAD is open source software, written in C++, for C++ developers. Unlike other HPC libraries for distributed systems, which rely on SPMD models, SHAD adopts a shared-memory programming abstraction, to make C++ programmers feel at home.
SHAD offers a variety of building blocks, including commonly used containers (arrays, vectors, maps, sets, multimaps), STL compliant iterators interfaces, and algorithms.
Underneath, SHAD manages tasking and data-movements, migrating computation where data resides and taking advantage of asynchrony to tolerate network latency.
At the bottom of his stack, SHAD can interface with multiple runtime systems: this not only improves developer’s productivity, by hiding the complexity of such software and of the underlying hardware, but also greatly enhance code portability. Thanks to its abstraction layers, SHAD can indeed target different systems, ranging from laptops to HPC clusters, without any need for modifying the user-level code.
|