Abstract
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.
Original language | English |
---|---|
Journal | ACM International Conference on Computing Frontiers 2017, CF 2017 |
Pages (from-to) | 287-290 |
Number of pages | 4 |
DOIs | |
Publication status | Published - 15 May 2017 |
Externally published | Yes |
Event | ACM International Conference on Computing Frontiers - Siena, Italy Duration: 15 May 2017 → 17 May 2017 Conference number: 14 |
Conference
Conference | ACM International Conference on Computing Frontiers |
---|---|
Number | 14 |
Country/Territory | Italy |
City | Siena |
Period | 15/05/2017 → 17/05/2017 |
Keywords
- Data-driven
- Multi-threading
- Programming language