Modern computers are built upon multi-core architectures. Achieving peak performance on these architectures is hard and may require a substantial programming effort. The synchronisation of many processes racing to access a common resource (the shared memory) has been a fundamen- tal problem on parallel computing for years, and many solutions have been proposed to address this issues. Non-blocking synchronisation and transactional primitives have been envisioned as a way to reduce memory wall problem. Despite sometimes effective (and exhibiting a great momentum in the research community), they are only one facet of the problem, as their exploitation still require non-trivial programming skills. With non-blocking philosophy in mind, we propose high-level programming patterns that will relieve the programmer from worrying about low-level details such as synchronisation of racing processes as well as those fine tunings needed to improve the overall performance, like proper (distributed) dynamic memory allocation and effective exploitation of the memory hierarchy.

High-level lock-less programming for multicore

TORDINI, FABIO;ALDINUCCI, MARCO;
2012-01-01

Abstract

Modern computers are built upon multi-core architectures. Achieving peak performance on these architectures is hard and may require a substantial programming effort. The synchronisation of many processes racing to access a common resource (the shared memory) has been a fundamen- tal problem on parallel computing for years, and many solutions have been proposed to address this issues. Non-blocking synchronisation and transactional primitives have been envisioned as a way to reduce memory wall problem. Despite sometimes effective (and exhibiting a great momentum in the research community), they are only one facet of the problem, as their exploitation still require non-trivial programming skills. With non-blocking philosophy in mind, we propose high-level programming patterns that will relieve the programmer from worrying about low-level details such as synchronisation of racing processes as well as those fine tunings needed to improve the overall performance, like proper (distributed) dynamic memory allocation and effective exploitation of the memory hierarchy.
2012
ACACES 2012, 8th international summer school on advanced computer architecture and compilation for high-performance and embedded systems
Fiuggi, Italy
Jul 2012
ACACES 2012
HiPEAC NoE
67
70
9789038219875
http://hdl.handle.net/1854/LU-3234245
Concurrency; multiprocessors; non-blocking synchronizations
Fabio Tordini; Marco Aldinucci; Massimo Torquati
File in questo prodotto:
File Dimensione Formato  
abstract.pdf

Accesso aperto

Tipo di file: PDF EDITORIALE
Dimensione 131.71 kB
Formato Adobe PDF
131.71 kB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2318/120640
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact