197,479 research outputs found

    Structuring the Continuum

    No full text
    This paper addresses challenges arising from inherent heterogeneity in the rapidly evolving landscape of computing infrastructures, spanning diverse environments across the compute continuum. As a result of the current transition from centralized architectures to contemporary distributed and edge computing models, the demand for innovative programming paradigms becomes increasingly apparent. These paradigms must efficiently harness available resources while seamlessly accommodating their heterogeneity, thus relieving programmers of management burdens. Our work encompasses various resource types within the computational environment to maximize efficiency, responsiveness, and availability. At its core, our contribution introduces a structured programming approach that facilitates the integration and exploitation of dynamically enlisted resources. A dynamic allocation policy and a communication abstraction layer orchestrate resources and workloads adaptively. To address the heterogeneity of the execution environment, we adopt a fat binary that encapsulates diverse executable formats in a single deployment package. Empirical evaluation validates the efficacy of our programming pattern in meeting real-world application needs within the compute continuum. Our approach demonstrates significant promise in navigating the complexities posed by the diverse and dynamic nature of modern computing environments

    MUSKEL: A SKELETON LIBRARY SUPPORTING SKELETON SET EXPANDABILITY

    No full text
    rogramming models based on algorithmic skeletons promise to raise the level of abstraction perceived by programmers when implementing parallel applications, while guaranteeing good performance figures. At the same time, however, they restrict the freedom of programmers to implement arbitrary parallelism exploitation patterns. In fact, efficiency is achieved by restricting the parallelism exploitation patterns provided to the programmer to the useful ones for which efficient implementations, as well as useful and efficient compositions, are known. In this work we introduce muskel, a full Java library targeting workstation clusters, networks and grids and providing the programmers with a skeleton based parallel programming environment. muskel is implemented exploiting (macro) data flow technology, rather than the more usual skeleton technology relying on the use of implementation templates. Using data flow, muskel easily and efficiently implements both classical, predefined skeletons, and user-defined parallelism exploitation patterns. This provides a means to overcome some of the problems that Cole identified in his skeleton "manifesto" as the issues impairing skeleton success in the parallel programming arena. We discuss fully how user-defined skeletons are supported by exploiting a data flow implementation, experimental results and we also discuss extensions supporting the further characterization of skeletons with non-functional properties, such as security, through the use of Aspect Oriented Programming and annotations
    corecore