Synchronization is likely the most critical performance killer in shared-memory parallel programs. With the rise of multi-core and many-core processors, the relative impact on performance and energy overhead of synchronization is bound to grow. This paper focuses on barrier synchronization for TeraPool, a cluster of 1024 RISC-V processors with non-uniform memory access to a tightly coupled 4MB shared L1 data memory. We compare the synchronization strategies available in other multi-core and many-core clusters to identify the optimal native barrier kernel for TeraPool. We benchmark a set of optimized barrier implementations and evaluate their performance in the framework of the widespread fork-join Open-MP style programming model. We test parallel kernels from the signal-processing and telecommunications domain, achieving less than 10% synchronization overhead over the total runtime for problems that fit TeraPool's L1 memory. By fine-tuning our tree barriers, we achieve 1.6x speed-up with respect to a naive central counter barrier and just 6.2% overhead on a typical 5G application, including a challenging multistage synchronization kernel. To our knowledge, this is the first work where shared-memory barriers are used for the synchronization of a thousand processing elements tightly coupled to shared data memory.
翻译:同步很可能是共享内存并行程序中最关键的性能杀手。随着多核与众核处理器的兴起,同步对性能和能量开销的相对影响必然增长。本文聚焦于TeraPool的屏障同步——该集群包含1024个RISC-V处理器,通过非一致性内存访问方式与紧密耦合的4MB共享L1数据存储器相连。我们对比了其他多核及众核集群中可用的同步策略,以确定适用于TeraPool的最优原生屏障内核。我们基准测试了一组优化后的屏障实现方案,并在广泛使用的fork-join Open-MP风格编程模型框架下评估其性能。我们测试了来自信号处理与电信领域的并行内核,对于适配TeraPool L1存储器的问题规模,同步开销占总运行时间的比例低于10%。通过精细调优树形屏障,我们相较于朴素中心计数器屏障实现了1.6倍加速,在典型5G应用中(包含具有挑战性的多阶段同步内核)仅产生6.2%的开销。据我们所知,这是首个利用共享内存屏障同步紧密耦合至共享数据存储器的千级处理单元的研究工作。