Git Product home page Git Product logo

grppi's Introduction

Generic Reusable Parallel Pattern Interface - GrPPI

Build Status HitCount

Introduction

GrPPI is an open source generic and reusable parallel pattern programming interface developed at University Carlos III of Madrid. Basically, GrPPI accommodates a layer between developers and existing parallel programming frameworks targeted to multi-core processors, such as ISO C++ Threads, OpenMP , Intel TBB, and FastFlow. To achieve this goal, the interface leverages modern C++ features, meta-programming concepts, and generic programming to act as switch between those frameworks.

Furthermore, its compact design facilitates the development of parallel applications, hiding away the complexity behind the use of concurrency mechanisms. The parallel patterns supported by GrPPI are targeted for both stream processing and data-intensive applications and can be composed among them to match more complex constructions. In a nutshell, GrPPI advocates for a usable, simple, generic, and high-level parallel pattern interface, allowing users to implement parallel applications without having a deep understanding of today's parallel programming frameworks and third-party interfaces.

Currently, GrPPI supports the following patterns:

Additionally, streaming patterns allow the use of multi-context execution, aiming to allow the combination of multiple back-ends for the execution of a single pipeline.

Install and compile instructions

See the install and compile notes.

Publications describing GrPPI

Overview publication

Please cite this publication in any work using our library:

  • A Generic Parallel Pattern Interface for Stream and Data Processing. David del Río, Manuel F. Dolz, Javier Fernández, J. Daniel García. Concurrency and Computation: Practice and Experience. ISSN: 1532-0634. DOI: 10.1002/cpe.4175.

Other references

  • Parallelizing and optimizing LHCb-Kalman for Intel Xeon Phi KNL processors. Plácido Fernández, David del Río, Manuel .F. Dolz, Javier Fernández, Omar Awile, J. Daniel Garcia PDP 2018

  • Supporting Advanced Patterns in GrPPI: a Generic Parallel Pattern Interface. David del Río, Manuel F. Dolz, Javier Fernández, and J. Daniel Garcia. Auto-DaSP 2017 (Euro-Par 2017). Santiago de Compostela, Spain. 28/8-1/9/2017. pp. 55-67. DOI: 10.1007/978-3-319-75178-8_5

  • Finding parallel patterns through static analysis in C++ applications. David del Río, Manuel F. Dolz, Luís M. Sanchez, J. Daniel Garcia, Marco Danelutto, and Massimo Torquati. International Journal of High Performance Computing Applications. 2017. DOI: 10.1177/1094342017695639

  • A C++ Generic Parallel Pattern Interface for Stream Processing. David Del Río, Manuel F. Dolz, Luis Miguel Sanchez, Javier Garcia Blas and J. Daniel Garcia. 16th International Conference on Algorithms and Architectures for Parallel Processing (ICA3PP). Granada, Spain. 14-16/12/2016. pp. 74-84. DOI: 10.1007/978-3-319-49583-5_5

Acknowledgments

The GrPPI library has been partially supported by:

  • Project ICT 644235 "REPHRASE: REfactoring Parallel Heterogeneous Resource-aware Applications" funded by the European Commission through H2020 program (2015-2018).

  • Project TIN2016-79673-P “Towards Unification of HPC and Big Data Paradigms” funded by the Spanish Ministry of Economy and Competitiveness (2016-2019).

grppi's People

Contributors

jdgarciauc3m avatar andressanchezcuadrado avatar drioastorga avatar javidoc00 avatar tete17 avatar javiergarcia avatar picanumber avatar tallalnparis4ev avatar

Watchers

James Cloos avatar Sheldon Robinson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.