Critical study of parallel programming frameworks for distributed applications
Metadata[+] Show full item record
Parallel programming frameworks such as the Message Passing Interface (MPI), Partitioned Global Address Space (PGAS) languages, Charm++, Legion and High Performance Parallel X (HPX) have been used in several scientific domains -- such as bioinformatics, physics, chemistry, and others -- to implement distributed applications. These frameworks allow distributing data and computation across the different nodes (or machines) of a high-performance computing cluster. However, these frameworks differ in their programmability, performance, and suitability to different cluster settings. For example, some of these frameworks have been designed to support applications running on homogeneous clusters that include only general purpose CPUs, while others offer support for heterogeneous clusters that include accelerators, such as graphics processing units (GPUs). Hence, it is important for programmers to select the programing framework that is best suited to the characteristics of their application (i.e. its computation and communication patterns) and the hardware setup of the target high-performance computing cluster.