Difference between revisions of "Synchronization"
From NaplesPU Documentation
Line 11: | Line 11: | ||
In this protocol the ''Setup_Message'' and ''Account_Message'' are out-order and we use an enable bit for managing the Setup. | In this protocol the ''Setup_Message'' and ''Account_Message'' are out-order and we use an enable bit for managing the Setup. | ||
The size of message change with number of Synchronization Barrier supported, as view in figure: | The size of message change with number of Synchronization Barrier supported, as view in figure: | ||
− | [[File:SynchronizationMessages.png]] | + | [[File:SynchronizationMessages.png|200px]] |
=== Example of Barrier === | === Example of Barrier === | ||
Revision as of 11:08, 8 November 2017
Per Daniele
The nu+ manycore supports an hardware mechanism for Synchronization. The mechanism of synchronization is based on Barrier primitive. A barrier for a group of threads in the source code means any thread must stop at this point and cannot proceed until all other threads reach this barrier.
Contents
[hide]Barrier Synchronization Protocol
The Barrier protocol is based on a message passing. We have three type of message:
- Setup_Message: It configures the struct of Barrier in Synchronization Core;
- Account_Message: It notifies to Synchronization Core that the thread is arrived to point of Barrier;
- Release_Message: It notifies from Synchronization Core to Barrier Core that all threads are arrived to point of Synchronization, so the Barrier can end.
In this protocol the Setup_Message and Account_Message are out-order and we use an enable bit for managing the Setup.
The size of message change with number of Synchronization Barrier supported, as view in figure: