The paper considers the programming technology for hybrid computer systems, which contain reconfigurable and microprocessor computational nodes. The base of the programming technology for hybrid computer systems is the high-level programming language COLAMO with extensions, which allow descriptions of various types of parallel calculations such as structural, structural-procedural, multi-procedural and procedural forms of organization of calculations in a unified parallel-pipeline form. The suggested parallel-pipeline form allows modifications of forms of organization of calculations. Such modifications are performed automatically by the COLAMO language preprocessor, which takes into account current configuration of the hybrid computer system. Owing to the suggested technology, the program can be automatically adapted to the changed architecture or configuration of the hybrid computer system without any modifications of the source code made by the developer. Specially for this the source parallel program, developed in the programming language COLAMO, is transformed by the pre-processor into the canonical form. Then the pre-processor estimates the available computational resource, detects effective parameters of implementation of the program on the available resource and, if necessary, reduces the program performance to adapt it to the current configuration of the hybrid computer system. The technology provides two-way scaling: for increasing of the available computational resource (induction), and for reducing of the available computational resource (reduction), which provides resource independence of programming during implementation of the program, i.e. the developer is not "bound" to the available hardware resource of the computer system.
Рассматриваются программные средства трансляции последовательных программ на языке C в масштабируемые параллельно-конвейерные программы на языке программирования реконфигурируемых вычислительных систем COLAMO. В отличие от существующих средств высокоуровневого синтеза, результатом трансляции является не IP-ядро фрагмента задачи, а комплексное решение задачи для многокристальных реконфигурируемых вычислительных систем с автоматической синхронизацией информационных и управляющих сигналов. Рассмотрены основные этапы трансляции последовательной программы на языке C: преобразование в информационный граф, анализ информационных зависимостей и выделение функциональных подграфов, преобразование в масштабируемую ресурсонезависимую параллельно-конвейерную форму и масштабирование программы на языке COLAMO для заданной многокристальной реконфигурируемой вычислительной системы. Масштабирование программы осуществляется с помощью методов редукции производительности абсолютно-параллельной формы задачи-информационного графа, который адаптируется под архитектуру реконфигурируемой вычислительной системы. Разработан ряд правил, позволяющих существенно сократить число шагов преобразований при масштабировании задачи и обеспечить плотный поток обработки данных в функциональных подграфах задачи. Созданный комплекс средств трансляции программ на языке C в конфигурационные файлы ПЛИС позволяет существенно сократить время синтеза вычислительной структуры задачи для многокристальных РВС и обеспечить сокращение общего времени решения задачи. Информационные графы; компилятор; трансляция программ; язык C; редукция производительности; реконфигурируемые вычислительные системы; программирование многопроцессорных вычислительных систем.
In this article, we consider the stages of development of a novel application toolkit for reconfigurable computer systems, its architecture and operation principles. The toolkit provides the translation of procedural programs in C to configuration files for field-programmable gate arrays in 6 stages. The conversion of procedural program in C to parallel program in COLAMO (Common Oriental Language for Architecture of Multi Objects) is performed using four additional programs: the “Angel ” translator and three preprocessors called the “Mermaid ”, the “Procrustes” and the “Nutcracker ”. At the first stage, the “Angel ” translates the C program into the absolutely parallel program in the COLAMO language. During the second stage, the information dependences of the initial C program are analyzed, scalar variables are split, and arrays are stretched by iterations. Then, at the third stage, the COLAMO code is converted to the parallel and pipeline form using the partition of arrays and loops into the vector and strea components. The fourth stage involves the transformation of the COLAMO program to the scalable parallel and pipeline form. The optional fifth stage, which is aimed at the reduction of the base subgraph, is executed only in the case of the lack of hardware resource for the structural implementation of the base subgraph of a problem. At the sixth stage, the COLAMO program is transformed to the unique computational structure and several cadrs designed for the architecture of the chosen reconfigurable computer system. The distinctive feature of the developed toolkit is the support of the resource-independent computing, which allows for the scaling of calculations in both cases of increase (induction) and decrease (reduction) in available hardware resources.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.