2. Мета роботи
2
Автоматичне розпаралелювання програм на
мові Фортран
Покращення послідовних програм
3. Актуальність
3
Багато унаслідованого коду
Виникав в ті часи, коли паралелізація була не
основним напрямком оптимізації
4. Цільова задача
4
Задача електронної густини
Програма обчислює електронну та спінову
густину атомів поліциклічних ароматичних
вуглеводнів на прямокутній сітці заданого
розміру N
12. Розпаралелювання
12
Do Cnt($va r,$s ta rt,$e nd ,
$bo d y ,_M RK_Pa ra lle l)->
A
Pa ra lle lDo Cnt($va r,$s ta rt,$e nd ,$bo d y )
13. Вибір циклів для перетворення
13
В коді 54 цикли DO IB=1,NZ
Використовуємо профілювання DO KD=1,NY
для знаходження найбільш DO …
критичних фрагментів
CALL
Знаходимо всі цикли, що містять
ELDENS
такі фрагменти
6 циклів
PROCEDURE
ELDENS
Вибрано другий ззовні цикл DO …
DO …
DO
<hotspot>
15. Генерація коду програми з терму
15
Терм розбивається на окремі лексеми
Лексеми додаються до дерева синтаксису
Код програми будується на основі
синтаксичного дерева
17. Висновки
17
Побудовано методологію розпаралелення
программ
Побудовано прикладні засоби розпаралелення і
протестовано на цільовій задачі
Подальша робота включає поширення підходу
на випадо розподілених і гетерогенних
архітектур
Notas del editor
Обсяг програми складає 1680 рядків коду. В коді програми присутні конструкції, характерні для різних версій мови Фортран – від Фортрану 77 до Фортрану 95