Extending parallel programming patterns with adaptability features
Guilherme Galante,Rodrigo da Rosa Righi,Cristiane de Andrade
DOI: https://doi.org/10.1007/s10586-024-04622-0
2024-06-16
Cluster Computing
Abstract:Today, all computers have some degree of usable parallelism. Modern computers are explicitly equipped with hardware support for parallelism, such as multiple nodes, multicores, multiple CPUs, and accelerators. At the same time, the Cloud Continuum has become a viable platform for running parallel applications. Building software for these parallel and distributed platforms can be challenging due to the numerous considerations programmers must make during the development process. With this in mind, the high-performance computing literature proposed the concept of parallel patterns to hide some complexities. However, there are no patterns that address the design and creation of adaptive applications. Taking the compute continuum era in mind, we present how adaptability features can be explored within each parallel programming pattern, providing technical details on managing dynamic resources and handling changes in application behavior. In addition to this contribution, we also address practical implications by presenting some frameworks that can be used to implement adaptive applications and examples of using them with the proposed patterns.
computer science, information systems, theory & methods