Abstract | ||
---|---|---|
Barrier primitives provided by standard parallel programming APIs are the primary means by which applications implement global synchronisation. Typically these primitives are fully-committed to synchronisation in the sense that, once a barrier is entered, synchronisation is the only way out. For message-passing applications, this raises the question of what happens when a message arrives at a thread that already resides in a barrier. Without a satisfactory answer, barriers do not interact with message-passing in any useful way.In this paper, we propose a new refutable barrier primitive that combines with message-passing to form a simple, expressive, efficient, well-defined API. It has a clear semantics based on termination detection, and supports the development of both globally-synchronous and asynchronous parallel applications.To evaluate the new primitive, we implement it in a prototype large-scale message-passing machine with 49,152 RISC-V threads distributed over 48 FPGAs. We show that hardware support for the primitive leads to a highly-efficient implementation, capable of synchronisation rates that are an order-of-magnitude higher than what is achievable in software. Using the primitive, we implement synchronous and asynchronous versions of a range of applications, observing that each version can have significant advantages over the other, depending on the application. Therefore, a barrier primitive supporting both styles can greatly assist the development of parallel programs. |
Year | DOI | Venue |
---|---|---|
2020 | 10.1109/ASAP49362.2020.00012 | 2020 IEEE 31st International Conference on Application-specific Systems, Architectures and Processors (ASAP) |
DocType | ISSN | ISBN |
Conference | 2160-0511 | 978-1-7281-7279-8 |
Citations | PageRank | References |
0 | 0.34 | 9 |
Authors | ||
9 |
Name | Order | Citations | PageRank |
---|---|---|---|
Matthew Naylor | 1 | 47 | 7.16 |
Simon W. Moore | 2 | 402 | 33.76 |
Andrey Mokhov | 3 | 136 | 26.57 |
David B. Thomas | 4 | 6 | 4.27 |
Jonathan R. Beaumont | 5 | 0 | 0.68 |
Shane T. Fleming | 6 | 28 | 6.57 |
A. Theodore Markettos | 7 | 14 | 2.63 |
Thomas Bytheway | 8 | 0 | 0.68 |
Andrew Brown | 9 | 27 | 3.82 |