Shaodi Li, Junmin Wu, Yi Zhang and Yawei Zhou, University of Science and Technology of China, China
Communication between parallel programs is an indispensable part of parallel computing. SW26010 is a heterogeneous many-core processor used to build the Sunway TaihuLight supercomputer, which is well suited for parallel computing. Our team is designing and implementing a coroutine scheduling system on SW26010 processor to improve its concurrency, it is very important and necessary to achieve communication between coroutines for the coroutine scheduling system in advance. Therefore, this paper proposes a communication system for data and information exchange between coroutines on SW26010 processor, which contains the following parts. First, we design and implement a producer-consumer mode channel communication based on ring buffer, and designs synchronization mechanism for condition of multi-producer and multi-consumer based on the different atomic operation on the MPE (management processing element) and the CPE (computing processing element) of SW26010. Next, we design a wake-up mechanism between the producer and the consumer, which reduces the waiting of the program for communication. At last, we test and analyse the performance of channel in different numbers of producers and consumers, draw the conclusion that when the number of producers and consumers increases, the channel performance will decrease.
Coroutine, SW26010, Many-core, Parallel Communication, Synchronization.