Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N12 2017 year

DOI: 10.17587/prin.8.531-542
Debugging Software for Multi-Core Processors
S. G. Elizarov, elizarov@physics.msu.ru, G. A. Lukyanchenko, egorxe@yandex.ru, D. S. Markov, markovds@maltsystem.com, V. A. Roganov, radug-a@ya.ru, Lomonosov Moscow State University, Moscow, 119991, Russian Federation
Corresponding author: Roganov Vladimir A., Lomonosov Moscow State University, Moscow, 119991, Russian Federation, E-mail: radug-a@ya.ru
Received on September 18, 2017
Accepted on October 04, 2017

In this article we discuss our experience in designing a set of debugging tools for a novel many-core CPU consisting of hundreds of computational cores communicating with each other asynchronously. We describe an approach based on which we have created an emulator, debugger and profiler for such many-core system. As a base of this softwaretoolset we’ve used standard open source debugging and profiling software created for use in traditional programming environment. The main reason of debugging software complexity for many-core architectures is that all interactions between computational cores of the CPU (synchronization, data exchange, etc.) take place deeply inside the chip, so they cannot be intercepted using classical techniques designed for traditional single- and multi-core CPUs. Execution interception in many-core systems on a chip is complicated even more by lack of access to IO ports from the most of computational cores. This fact complexifies implementation of even the simplest debug methods (printing to console, for example) on such systems. In this article we suggest several methods which allowed us to create debugging tools taking into account physical parallelism on all execution levels. We demonstrate how applying these methods allows us to localize bugs on all software levels and to optimize system performance. In the article we advert to practical aspects of using standard open source software for debugging and performance profiling of parallel software made for prospective many-core processors.

Keywords: debugging technologies, many-core processors, systems on a chip, hardware emulators, profiling tools
pp. 531–542
For citation:
Elizarov S. G., Lukyanchenko G. A., Markov D. S., Roganov V. A. Debugging Software for Multi-Core Processors, Programmnaya Ingeneria, 2017, vol. 8, no. 12, pp. 531—542.