Let's Go: A Data-driven Multi-threading Support

Alberto Scionti, Somnath Mazumdar

Publikation: Bidrag til tidsskriftKonferenceartikel i tidsskriftForskning


Increasing performance of computing systems necessitates providing solutions for improving scalability and productivity. In recent times, data-driven Program eXecution Models (PXMs) are gaining popularity due to their superior support compared to traditional von Neumann execution models. However, exposing the benefits of such PXMs within a high-level programming language remains a challenge. Although many high-level programming languages and APIs support concurrency and multi-threading (e.g., C++11, Java, OpenMP, MPI, etc.), their synchronisation models make large use of mutex and locks, generally leading to poor system performance. Conversely, one major appeal of Go programming language is the way it supports concurrency: goroutines (tagged functions) are mapped on OS threads and communicate each other through data structures Buffering input data (channels). By forcing goroutines to exchange data only through channels, it is possible to enable a data-driven execution. This paper proposes a first a.empt to map goroutines on a data-driven based PXM. Go compilation procedure and the run-time library are modified to exploit the execution of fine-grain threads on an abstracted parallel machine model.
TidsskriftACM International Conference on Computing Frontiers 2017, CF 2017
Sider (fra-til)287-290
Antal sider4
StatusUdgivet - 15 maj 2017
Udgivet eksterntJa
BegivenhedACM International Conference on Computing Frontiers - Siena, Italien
Varighed: 15 maj 201717 maj 2017
Konferencens nummer: 14


KonferenceACM International Conference on Computing Frontiers


  • Data-driven
  • Multi-threading
  • Programming language