
The paper is devoted to the problem of the automated construction of parallel programs. In the paper ParSolGen (Parallel Solvers Generator) - a tool that automatically constructs a highly efficient parallel program from a given numerical algorithm description is presented. It classifies the input numerical algorithm description written in ParSolGen language, determines the class it potentially belongs to and constructs the parallel program using the corresponding domain-specific parallel program construction module. This enables ParSolGen to employ well-known manual parallel programming techniques in the process of the automated parallel program construction. This approach improves the performance of the automatically generated parallel programs, as confirmed by performance tests.
Significant challenges in further increasing processors performance are caused by physical and technological limitations at the current level of hardware development. In this context, software-hardware co-design technologies gain particular importance. These technologies represent one of the promising research and development directions for the coming decades. This paper explores the prospects of implementing a new cross-product instruction in processors based on the free and open RISC-V architecture, as well as possible performance gains when solving computational tasks. We demonstrate the complete flow of performed actions, starting from the idea of implementing a new command, its prototyping, evaluating performance using the Gem5 simulator, and culminating with embedding the instruction into the GCC compiler and providing a specific usage example.
This paper is dedicated to speed-up of programs that compute convolutions and convolution type code. The automated compiler transformation of programs using floating point math to programs with integer math is considered. This transformation can lead to lower memory usage and speed-up. The application of such a transformation to the calculation of sums, dot products and to programs that calculate convolutions is studied. The application of convolutions to speed-up of the template image search algorithm is considered, performance boost is obtained compared to the known libraries. Automation of optimizing transformations of programs is performed on the basis of the optimizing parallelizing system available to the authors. Numerical experiments are given demonstrating the speed-up of the transformed program relative to the original one. Numerical experiments on the speed-up of the program achieved from transition from floating-point math to integer math are accompanied by estimates of the deviation of the calculation error of the resulting program relative to the original one. Vectorization of the convolution calculation program on the Intel-i7 processor demonstrates a 2-fold acceleration.
Didal is a distributed data library that supports development of efficient parallel fragmented programs on distributed memory supercomputers. Fragmented programming is a technology where a parallel program is represented as a collection of pieces of data (data fragments) and computations on these pieces (computation fragments), able to be tuned to the resources of a computing system and automatically provide such facilities as dynamic load balancing. While several tools for fragmented programming exist, Didal aims to get benefits from as being a simple to use C++ library, as being able to produce efficient parallel programs. In this paper we study parallelization with Didal library of RHD3D application for numerical modeling of colliding flows in relativistic hydrodynamics. Results of the parallel program’s efficiency and its comparison with Coarray Fortran implementation are provided.
The increasing core count in modern processors offers substantial potential to accelerate parallel applications. However, this also introduces key challenges: rising overhead from work distribution and diminishing per-thread workloads can significantly degrade performance. To address this, developers can exploit parallelism at multiple levels or execute multiple applications simultaneously—though this approach demands enhanced support in parallel programming models to prevent resource oversubscription. In this work, we evaluate how different programming models leverage composable parallelism to improve efficiency, focusing on OpenMP and oneTBB in the context of the Breadth-First Search (BFS) algorithm. Our experimental analysis targets Arm-based architectures, assessing scalability and overhead trade-offs.