ШЛЯХИ ДОСЯГНЕННЯ ВНУТРІШНЬОГО ПАРАЛЕЛІЗМУ ЗАДАЧ ПРИ БАГАТОПОТІКОВИХ ОБЧИСЛЕННЯХ
DOI:
https://doi.org/10.32782/IT/2022-3-4Ключові слова:
продуктивність обчислень; компілятор, що розпаралелює; внутрішній паралелізм; оптимізація циклівАнотація
У статті проаналізована еволюція архітектури комп’ютерних систем и визначений шлях підвищення продуктивності обчислень. Він полягає у використанні технологій багатопотіковості., як сукупності апаратних, програмних та методологічних рішень. У якості об’єкту дослідження розглядаються багатоядерні процесори. Кожне з ядер має власну кеш-пам’ять, і на цьому рівні вони можуть розглядатися, як обчислювальні пристрої з розподіленою пам’яттю. У той же час, при великих обсягах обчислень цієї пам’яті недостатньо, тому використовується загальна пам’ять, тобто відбувається їх трансформація у пристрої зі загальною пам’яттю. Тому багатоядерні процесори по доступу до пам’яті можуть розглядатися як гібридні обчислювальні пристрої. Метою роботи є аналіз підходів до оптимізуючих перетворень обчислень у вигляді ітераційних циклів з наступною експериментальною перевіркою їх ефективності на комп’ютерах з багатоядерними процесорами. Новизна підходу заключна у тому, що традиційно у задачах оптимізації розглядаються арифметичні цикли, що є більш строщеною задачею. Визначена роль компілятору в оптимізації коду за рахунок пошуку внутрішнього паралелізму. Приділено увагу циклам, як найбільш перспективному об’єкту для розпаралелювання. Запропонований показник «глибіни міжкрокового зв’язку у циклі» (ГМКЦ) та сформульовані умови для розпаралелювання циклів. Розглянута проблема балансування навантаження при розпаралелюванні. Надані експериментальні результати по застосуванню технології MPI для роспаралелювання деяких обчислювальних задач, що використовують ітераційні цикли (ряди и чисельне інтегрування). У якості критерію продуктивності обчислень, інваріантного до характеристик різноманітних комп’ютерних систем запропонований показник λ, що характеризує відносну частку паралельних обчислень у їх загальному обсязі.
Посилання
Gordon Earle Moor. Cramming more components onto integrated circuits. Electronics Magazine. 1965. vol. 39(8). P. 114-117.
Flynn Michel. J. Very high speed computers. IEEE. 1966. 54(12). P. 1901 - 1909.
Wolf, Wayne Hendrix. Modern VLSI Design, 4th ed. Boston: Prentice Hall, 2002. 638 с.
Гергель В.П. Фурсов В.А. Лекции по параллельным вычислениям. Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2009. 164 с.
Гордеев Э.Н. Введение в теорию сложности алгоритмов. М: МГТУ им. Н.Э.Баумана, 2011. 49 с.
Chandra Rohit, Menon Ramesh, Dagum Leo, Kohr David, Maydan Dror, McDonald Jeff. Parallel Programming in OpenMP. Morgan Kaufmann, 2000. 229 с.
Gropp William, Lusk Ewing, Skjellum Anthony. Using MPI: Portable Programming with the Message Passing Interface. The MIT Press, 1999. 367 с.
Воеводин В.В., Воеводин Вл. В. Параллельные вычисления. Петербург: БХВ, 2002. 608 с.
Amdahl Gene M. The validity of the single processor approach to achieving large-scale computing capabilities. In Proceedings of AFIPS Spring Joint Computer Conference, Atlantic City, N.J., AFIPS Press. 1967. 30. P. 483-85.
Pavlov Valerii. Nullifying rules influence on speed in context free grammar LL(1). Journal of Theoretical and Applied Computer Science. Polish Academy of Sciences, Gdansk Branch, Computer Science Commission. 2016. 2. P. 3-15.
Aho Alfred V., Ullman Jeffrey D.. The theory of parsing, translation and compiling, Volume 2. Prentice-Hall, 1973. 542
Aho Alfred V., Sethi Ravi, Ullman Jeffrey D. Compilers: Principles, Techniques, and Tools. ADDISON-WESLEY, 1986. 796 с.
Thakur V., Kumar S., Load Balancing Algorithm An Analytical Study. The IUP Journal of Computer Sciences. 2014. VIII(2). P. 25-34.
Runge Karl. Analytische Geometrie der Ebene. Leipzig: B.G. Teubner, 1908. 217 с.
Iserles Arieh, A First Course in the Numerical Analysis of Differential Equations. Cambridge University Press, 1996. 480 с.