
Barrier are synchronization operations widely used by compiler and programmer, it is flexible and convenient but there are some defects. Threads arrive at barrier ahead of other threads have to wait the subsequent threads. This lead to some waste of time. Our experiments show that up to 35% of the total execution time is wasted on synchronization. Inspired by this, we propose barrier speculation which allows faster threads running speculatively with its own temporary data instead of waiting at barrier for synchronization. To control the max number barriers that threads can speculatively pass through, we also propose two risk control strategies: waiting in place risk control strategy and roll back re-speculate risk control strategy. Our evaluation results show that our barrier speculation together with two risk control strategies can achieve 5.7% and 6.3% overall program execution time reduction on average respectively when compared with conventional synchronization.
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
