With the rapid development of cloud computing in recent years, how to improve the system's concurrency capabilities has become increasingly important. SW26010 is a heterogeneous many-core processor used to build the Sunway TaihuLight supercomputer. Since this processor can only run a single thread on CPE (computing processing element), its concurrency is limited. Coroutines are a lightweight user-mode thread that occupy less resources. Scheduling and switching can be completed in user mode for coroutines, which is more suitable for processing concurrent tasks. This paper designs and implements a coroutine scheduling system on the SW26010 processor which add the CPE concurrency and improve program performance. This system has three modules: scheduler, executor, coroutine tasks. The scheduler runs on the MPE (management processing element) of SW26010. The scheduler controls the executor on the CPE, the executors control the coroutine task queue. This paper also compares convolution calculations of different scales and creates coroutine of different numbers tasks for convolution calculations. The performance of programs using the coroutine scheduling system has been increased by 23 times compared to only using the CPE.
[1]
Rance Cleaveland,et al.
High-confidence medical device software and systems
,
2006,
Computer.
[2]
Christian Wimmer,et al.
Efficient coroutines for the Java platform
,
2010,
PPPJ.
[3]
Wei Ge,et al.
The Sunway TaihuLight supercomputer: system and applications
,
2016,
Science China Information Sciences.
[4]
Jack A. Laird.
A calculus of coroutines
,
2006,
Theor. Comput. Sci..
[5]
Wei Xiang,et al.
A Survey of Asynchronous Programming Using Coroutines in the Internet of Things and Embedded Systems
,
2019,
ACM Trans. Embed. Comput. Syst..