Правильная ссылка на статью:
Пекунов В.В..
Автоматическое распараллеливание C-программ с применением директив Cilk++ на базе распознающих объектно-событийных моделей
// Программные системы и вычислительные методы.
2018. № 4.
С. 124-133.
DOI: 10.7256/2454-0714.2018.4.28086 URL: https://nbpublish.com/library_read_article.php?id=28086
Аннотация:
В данной работе рассматривается проблема автоматического распараллеливания C-программ (преимущественно вычислительного характера) с применением директив Cilk++, с помощью ограниченного набора которых может быть явно выражен параллелизм по задачам. Для решения данной проблемы формулируется концепция распознающих объектно-событийных моделей, потенциально способных к разбору и трансформации произвольных текстов. Данная концепция является развитием предложенной автором ранее теории объектно-событийных моделей, которые, в предельной постановке, эквивалентны расширенным машинам Тьюринга. Используется общий подход теории объектно-событийных моделей, утверждающей возможность описания произвольных алгоритмов с помощью указанных моделей. Предлагается технология анализа и трансформации как структурированных, так и неструктурированных текстов с применением распознающих объектно-событийных моделей. Предложена стратегия автоматического распараллеливания C-программ с применением директив Cilk++, основывающаяся на указанной технологии. На примере автоматического распараллеливания простой вычислительной программы получены данные об ускорении и эффективности распараллеливания. Утверждается, что разработанная технология может использоваться в составе системы порождения программ для распараллеливания сгенерированных программ.
Ключевые слова:
автоматическое распараллеливание, язык C, расширение Cilk, объектно-событийные модели, распознавание алгоритма, трансформация алгоритма, система порождения программ, логическое программирование, параллелизм задач, параллельные вычисления
Abstract:
In this paper, the author considers the problem of automatic parallelization of C programs (mainly computational) with the use of Cilk ++ directives, with the help of a limited set of which parallelism in tasks can be clearly expressed. To solve this problem, the concept of recognizing object-event models, potentially capable of parsing and transforming arbitrary texts, is formulated. This concept is a development of the theory of object-event models proposed by the author earlier, which, in the marginal formulation, are equivalent to advanced Turing machines. A general approach of the theory of object-event models is used, which asserts the possibility of describing arbitrary algorithms using these models. The technology of analysis and transformation of both structured and non-structured texts with the use of recognizing object-event models is proposed. A strategy is proposed for automatic parallelization of C programs using Cilk ++ directives based on this technology. Using the example of automatic parallelization of a simple computing program, data on acceleration and efficiency of parallelization are obtained. It is argued that the developed technology can be used as part of a program generating system for parallelizing the generated programs.
Keywords:
program generation system, algorithm transformation, algorithm recognition, object-event models, Cilk, C programming language, automatic parallelizing, logical programming, task parallelism, parallel computations