• 中国计算机学会会刊
  • 中国科技核心期刊
  • 中文核心期刊

Computer Engineering & Science ›› 2021, Vol. 43 ›› Issue (06): 997-1005.

Previous Articles     Next Articles

An intelligent C++ translator architecture for many-core processors

YU Mao-xue1,JIA Dong-ning1,2,WEI Zhi-qiang1,2,XU Jia-li1,MA Guang-hao1   

  1. (1.Pilot National Laboratory for Marine Science Technology,Qingdao 266237;

    2.College of Information Science and Engineering,Ocean University of China,Qingdao 266100,China)


  • Received:2020-08-24 Revised:2021-03-12 Accepted:2021-06-25 Online:2021-06-25 Published:2021-06-22

Abstract: Domestic heterogeneous many-core processors are a key link for my country to break international technical barriers and make breakthroughs in the field of high-performance computing. Focusing on the construction of domestically produced super-computing software ecological environment, using the intelligent source code conversion method to revitalize the massive multi-core architecture legacy code is an important way to accelerate the efficiency of software development and promote the development of the field. Aiming at the current situation that domestic computing cores do not support C++ compilation, based on the open source ANTLR language translation tool, this paper proposes an auxiliary framework of the intelligent C++ to C conversion for heterogeneous many-core processors.The framework focuses on the key features of object-oriented languages. Based on the abstract syntax tree, it implements base classes and inheritance classes, function definitions, template instantiation based on tagging, and C language conversion of some STL libraries, and establishes automatic annotation of the code to be converted. The system greatly improves the conversion and transplantation efficiency of C++ code. The automatic conversion and transplantation test of the measurable parallel computing benchmark application BableStream confirms the effectiveness of the conversion method proposed in this paper.



Key words: heterogeneous many-core, source code translator, OpenACC, parallel computing, ANTLR, C++