High-level models of parallel computations and runtime libraries.
A program model for distributed heterogeneous computation systems, with a single node consisting of a multicore general purpose computer (host-machine) and one or several PLD. Proposed model for programming heterogeneous systems combines best approaches for creating high-level programming models and approaches utilizing accelerators capabilities with the help of runtime libraries with maximum efficiency. At the high level a programmer can describe a data-parallel algorithm, which can be parameterized for certain heterogeneous node.
Additionally, it is possible to program directly in C with the help of provided translator based on the open GCC compiler and runtime library, using previously prepared binary programs for PLD. The described researches were performed with the involvement of modern biology application.
An analytical report is prepared on the first stage of the project. It includes review on programmable logic devices (PLD) and field-programmable gate arrays (FPGA), explores PLD classes, structure of PLD and FPGA, methods of FPGA programming, approaches to FPGA programming automation. An experimental application from the area of modern biology was developed, which is able to work on multicore computer of general purpose and consists of primary structures protein sequences frequency dictionary compilation algorithm and test bench.
The following works have been performed within the second and the third stage of the project:
- Developed a high-level model of heterogeneous computation environment programming, which can be used both in paradigm of dataflow-programming (base support of which is implemented in the translator developed in point 4) and in programming either in C language or its extension (OpenCL standard) or directly in the hardware description language (for example, VHDL).
- Developed and implemented a low-level runtime library for usage on computation system heterogeneous node. MPI standard is used to organize computations and data transfer between computation nodes. Runtime library for OpenCL standard and PCI-express is used on the heterogeneous node.
- Developed GCC translator components, which allow generate code in OpenCL from some of the C-program loops automatically.
- Developed a translator from C subset into Verilog language based on the C-to-Verilog translator and applied it for test applications and fragments of the modern biology application being developed.
- Implemented an experimental application from modern biology, which is able to work on heterogeneous computation system, so that the program is partially translated and executed on PLD.
- At the fourth stage of the project works on benchmarking and testing of developed components and experimental CLR-PC program complex were performed.
The project was implemented under the Program "Research and development in priority areas of Russia scientific and technological complex development for 2007-2013".