Объект разметкиРедактирование Вкл. https://doi.org/10.25686/2306-2819.2023.1.64 Параллельная реализация алгоритма расчёта равновесного состава в программном комплексе T-Energy
Authors: Сеченов П.А. , Кожемяченко В.И. , Рыбенко И.А. 
Published: February 2025

Рассматривается решение задачи нахождения равновесного состава сложной многокомпонентной системы в интервале температур путём поиска максимума энтропии при ряде ограничений, которое использует несколько сложных численных методов и требует больших затрат времени. Для ускорения вычислений предложен алгоритм, в котором нахождение равновесного состава при разных температурах вычисляется в потоках, в связи с этим задействуются все ядра центрального процессора. Предложенный подход по распараллеливанию алгоритма может быть использован и в других цикличных задачах, требующих значительных временных затрат.
This paper explores the problem of finding the equilibrium composition of a complex multicomponent system within a specified temperature range. The process involves searching for the maximum entropy under various constraints, requiring the use of complex numerical methods and significant computation time. The study discusses numerical techniques employed to solve the problem and explores different approaches for solving systems of linear algebraic equations (SLAEs) using central, graphics, and hybrid processors. The aim of this work is to develop a parallel algorithm for finding the equilibrium composition of a comprehensive multicomponent system in the temperature range, compare its calculation speed with a sequential algorithm, and evaluate the benefits of parallelization. Methodology and modeling. The proposed approach involves transitioning a sequential algorithm to a parallel one by identifying the most time-consuming component for parallel execution. The algorithm is implemented using the Visual Studio 2022 development environment and coded in C#. Flow control classes and class lists are utilized for structure creation. The performance of the serial and parallel algorithms is tested on a quad-core processor. To expedite calculations, a stream-based algorithm is introduced, allowing for the involvement of all CPU cores in finding the equilibrium composition at different temperatures. Results. Computational experiments in single-threaded mode demonstrated agreement with the theoretical complexity of the SLAE solution algorithm using the Gauss method (O(N3)). The multithreaded algorithm efficiently utilizes 70% to 95% of CPU resources, depending on the number of unknowns in the SLAEs. Conclusions. It was possible to implement a multithreaded version of the algorithm, which turned out to be 2.5 to 3.22 times faster, depending on the number of unknowns in the equations being solved. The most time-consuming is the Gauss method, which has a computational complexity of O(N3). To solve by iterative methods, additional conditions must be met. The direct method of solving the SLAEs LU decomposition will work faster, its theoretical complexity is 2/3N3 + O(N2). This method is planned to be implemented in the future. The proposed algorithm parallelization approach can be used in other cyclic tasks that require significant time costs. The multithreaded version outperforms the sequential algorithm, achieving a speedup of 2.5 to 3.22 times, depending on the number of unknowns. The Gauss method is found to be the most time-consuming, with a complexity of O(N3). The solution by iterative methods requires to meet additional conditions. Future plans include implementing the direct method of solving SLAEs using LU decomposition, which offers faster performance with a theoretical complexity of 2/3N3 + O(N2). The proposed parallelization approach has potential applications in other cyclic tasks that require significant time resources.