GrPPI: A Generic Parallel Pattern Interface for Stream and Data Processing

Next Avalon working group will be tomorrow (3/10/2016) at 15h in amphi L. Dr. Manuel F. Dolz, currently visiting us from Madrid, will be talking about his work.

GrPPI: A Generic Parallel Pattern Interface for Stream and Data Processing

Current parallel programming frameworks aid developers to a great extent in implementing applications that exploit parallel hardware resources. Nevertheless, developers require additional expertise to properly use and tune them to operate efficiently on specific parallel platforms. With the lack of high-level parallel pattern abstractions, we present GrPPI, a generic and reusable parallel pattern interface for both stream processing and data-intensive C++ applications (https://github.com/arcosuc3m/grppi). GrPPI accommodates a layer between developers and existing parallel programming frameworks targeting multi-core processors, such as C++ threads, OpenMP and Intel TBB. To achieve this goal, this interface leverages modern C++ features, metaprogramming techniques, and template-based programming to act as switch among those frameworks. All in all, thanks to its high-level API and compact design, GrPPI allows users to easily expose parallelism and hide away the complexity behind concurrency mechanisms. We evaluate this interface using an image processing use case and demonstrate its benefits from the usability, flexibility, and performance points of view.

WG Hayri Acar: Software development methodology in a Green IT environment

2016-06-07 – Hayri Acar

Title: Software development methodology in a Green IT environment

Speaker: Hayri Acar

Abstract: Writing sustainable, power efficient and green software necessitates understanding the power consumption behavior of a computer program. One of the benefits is the fact that developers, by improving their source code implementations, can optimize power consumption of a software. Existing power consumption models need to be improved by taking into account more components susceptible to consume energy during runtime of an application. In this paper, we first present a detailed classification of previous works on power consumption modelization. Then, we introduce TEEC (Tool to Estimate Energy Consumption) model in order to estimate the power consumed by CPU, memory and disk due to the execution of an application at runtime. The main goal is to guide developers to improve their source code for optimizing energy consumption. TEEC enables determining the part of the code consuming the highest power. This will help to obtain a less energy consuming software with the same functionalities.

PPT: WG_160607_Presentation_ENS

WG Philippe Virouleau: Improving OpenMP compilers and runtimes for task-based applications on NUMA architectures

2016-05-17 – Philippe Virouleau

Title: Improving OpenMP compilers and runtimes for task-based applications on NUMA architectures

Speaker: Philippe Virouleau

Abstract: The most popular architecture for building large-scale shared memory machines nowodays is the NUMA architecture (Non-Uniform Memory Access). In such architecture, the shared memory and cores are split in nodes, physically separated from each others. The memory access time depends on which core wants to access which data, and the distance between the core and the data’s NUMA node. A popular application design to efficiently exploit the parallelism offered by large multi processors architectures is to use fine-grain dependent tasks. In order to successfully use this approach on NUMA architectures, the application’s programmer should take great care of the locality between the task being executed, and the data manipulated by the task. OpenMP is the de-facto standard for shared-memory parallel programming, and the revision 4.0 introduced the tasks with dependencies model, in which the programmer can specify which data are read and/or written by a given task. Having the runtime use these informations is a first step to dynamically improve the application’s performances, however more flexibility could be given to the programmer, e.g. by giving him the possibility to specify which data are important for a given task. This presentation will describe my PhD works, which focus on proposing and evaluating compilers and runtimes extensions to help reduce the impact of NUMA architectures on the application’s performances and scalability.

PDF: WG_160517_avalon_2015