A methodology and ecosystem for many-core programming

Boosting the performance of current and future programs

Image by: Robert Howie

Computers are going through a radical redesign process, leading to novel architectures with large numbers of small cores. Examples of such “many-cores” are Graphics Processing Units and the Intel Xeon Phi, which are used by about 65% of the top 50 fastest supercomputers. Many-cores can give spectacular performance results, but their programming model is totally different from traditional CPUs. It currently takes an unacceptable amount of time for application programmers to obtain sufficient performance on these devices. The key problem is the lack of methodology to easily develop efficient many-core kernels.

We will therefore develop a programming methodology and compiler ecosystem that guide application developers to effectively write efficient scientific programs for many-cores, starting with a methodology and compiler that we have developed recently. We will apply this methodology to two highly diverse applications for which performance currently is key: Bioinformatics and Natural Language Processing (NLP).

We will extend our compiler ecosystem to address the applications’ requirements in three directions: kernel fusion, distributed execution, and generation of human-readable target code. The project should provide applications and eScientists with a sound methodology and the relevant understanding to enable practical use of these game-changing many-cores, boosting the performance of current and future programs.

Participating organisations

Natural Sciences & Engineering
Natural Sciences & Engineering
Netherlands eScience Center
Vrije Universiteit Amsterdam

Impact

Output

  • 1.
    Author(s): Pieter Hijma, Alessio Sclocco, Piek Vossen, Ceriel Jacobs, Maurits Dijkstra, Minh Lê, Sanne Abeln, Adriënne Mendrik, Henri Bal, Antske Fokkens, Jaap Heringa
    Published in 2017

Team

HB
Henri Bal
Principal investigator
Vrije Universiteit Amsterdam
Ben van Werkhoven
Ben van Werkhoven
Senior eScience Research Engineer
Netherlands eScience Center
Stijn Heldens
Stijn Heldens
PhD student
Netherlands eScience Center
Alessio Sclocco
eScience Research Engineer
Netherlands eScience Center

Related projects

ConFu

Consolidating and Future-proofing Kernel Tuner by developing Software Engineering Best Practices

Updated 25 months ago
Finished

CHEOPS

Verified construction of correct and optimised parallel software

Updated 25 months ago
Finished

Enhance Your Research Alliance (EYRA) Benchmark Platform

Supporting researchers to easily set-up benchmarks

Updated 20 months ago
Finished

SecConNet Smart

Smart, secure container networks for trusted big data sharing

Updated 25 months ago
Finished

PROCESS

Providing computing solutions for exascale challenges

Updated 25 months ago
Finished

A Jungle Computing Approach to Large-Scale Online Forensic Analysis

Programming tools that simplify application development and deployment

Updated 21 months ago
Finished

Related software

Kernel Tuner

KE

Kernel Tuner greatly simplifies the development of highly-optimized and auto-tuned CUDA, OpenCL, and C code, supporting many advanced use-cases and optimization strategies that speed up the auto-tuning process.

Updated 14 months ago
113 15

Rocket

RO

Rocket is a framework for efficient execution of all-pair applications on heterogeneous platforms.

Updated 29 months ago
1 1

Xenon

XE

If you are using remote machines to do your computations, and don’t feel like learning and implementing many different APIs, Xenon is the tool for you.

Updated 14 months ago
13 11