seminars
Detail
Publication date: 1 de June, 2021Towards a service-oriented parallel programming model
Multi-core CPU architectures are ushering a new era in computer design and organization. Recent years have seen parallelism become the driver for CPU performance increase, making multi-core CPUs the de-facto standard in modern CPU design. In fact, IBM researchers envision high-bandwidth interconnected nodes composed of several multi-core processors with non-uniform memory hierarchies as the emerging processor organization paradigm.
The widespread infrastructural support for real parallelism has resurrected the interest in concurrent computing as a whole and in parallel computing in particular. MPI and OpenMP have been, until now, the community standards for, respectively, the message-passing and shared-memory paradigms. However, both have generally accepted limitations. The MPI programming model is error-prone, forces per-processor implementation of the algorithms and does not have implementations that support the deploying of applications in heterogeneous environments. OpenMP features a higher degree of abstraction, usually only requiring minor modi?cations on the sequential algorithms, but the global shared-memory model limitation is inadequate for these new architectures.
This state-of-the-art has motivated the de?nition of new programming abstractions and runtime systems to address the development and consequent deployment of applications in these new generation of architectures. DARPAs (Defense Advanced Research Projects Agency) HPCS (High Productivity Computing Systems) program funded research to tackle these issues, giving birth to the X10, the Chapel, and the Fortress programming languages. Intel is also researching on the increase of productivity in multi-core architectures, proposing the Ct, and Intel Threading Building Blocks (TBB) libraries.
This talk introduces initial research on a novel approach based on services for the programming of parallel applications. Services are nowadays an established programming abstraction in the development of loosely-coupled distributed applications. It is our purpose to apply its modularity and intuitiveness to parallel computing and, with that, provide a good framework for the design
of non-sequential code.
We intend to decouple functionality from resource awareness and provide a two-level application construction scheme. On a ?rst level functionalities are aggregated into services that are implemented and accessed as if they where a single entity in a global addressing space. The actual number of service instances and their mapping into the processor pool is de?ned at a second level.
Date | 18/11/2009 |
---|---|
State | Concluded |