Кластер (практичне керівництво)

Компілятори для паралельних задач

Кластер (практичне керівництво)
Питання вибору апаратної платформи для кластера, по всій видимості не варто: ми будемо використовувати ту техніку, яка у нас вже є, а це швидше за все комп'ютери на основі процесорів Intel. Тому обговорювати переваги тієї чи іншої платформи ми не будемо. Проте, якщо ви збираєтеся самостійно розробляти програми для свого кластера, вам необхідно потурбуватися підбором відповідних засобів розробки.







Так, для процесорів Intel кращим вибором буде розроблені Intel компілятори з мов C / C ++ / Fortran95 (доступні безкоштовно для некомерційного використання в версії Linux), або компілятори від Portland Group (С / С ++ / Fortran90 / HPF). Якщо ж вам з якихось причин немає можливості встановити у себе ці компілятори, то ви можете використовувати вільно поширювані компілятори серії GCC (Gnu Compiller Collection), які підтримують більшість сучасних апаратних і програмних платформ і поставляються практично з усіма збірками Linux і Unix.

Слід зауважити, однак, що компілятори серії gcc мають один суттєвий недолік - в них відсутня підтримка типів даних Real * 16 і Complex * 32, що вимагаються для багатьох наукових розрахунків. Якщо ваше завдання вимагає саме такої точності рішень, то рекомендую завантажити і встановити компілятори для некомерційного користування компанії Intel. Більш детально цей процес описаний в розділі Ubuntu-кластер.

Паралельні програми можна писати "вручну", безпосередньо вставляючи в потрібні місця виклики комунікаційної бібліотеки. Цей шлях вимагає від програміста спеціальної підготовки. Альтернативою є використання систем автоматичного і напівавтоматичного розпаралелювання послідовних програм.







Створення систем автоматичного розпаралелювання і розпізнавання паралелізму в алгоритмах є не простим математичним завданням і більшість такого роду систем є комерційними.

вибір компілятора

Найбільш простими, з точки зору установки в систему Linux, можна назвати компілятори серії GCC (Gnu Compiller Collection). Якщо говорити про Фортране, то колекція GCC містить два варіанти компілятора: fort77. який є препроцесором, перекодуйте фортран-програму в сі-код, який потім компілюється стандартним для дистрибутива сі-компілятром, і gfortran. який є повноцінним компілятром підмножини мови Fortran 95. Ці компілятори входять до складу будь-якого дистрибутива і їх установка не представляє ніяких труднощів.

Компілятори фірми Intel не входять до складу дистрибутивів Linux, проте їх отримання з офіційного сайту і установка в систему так само максимально проста. Процедура установки компілятора Intel Fortran описана в розділі Ubuntu кластер.

Наведемо порівняльну таблицю швидкодії фортран-програми, скомпіленной різними компіляторами. В якості тестової задачі була взята послідовна програма рішення рівняння теплопровідності. описана в одному з попередніх розділів.

Тестування 2) показало, що фортран-компілятор фірми Intel в режимі максимальної оптимізації дає на виході виконуваний код, який приблизно в 2 рази швидше отриманого в результаті застосування компіляторів GCC.

Крім того, тільки Intel Fortran дозволяє використовувати типи даних Real * 16 і Complex * 32 1). хоча фізичний процесор і не вміє безпосередньо працювати з такими типами (звідси і суттєве збільшення часу рахунки на таких даних - використовується софтверна емуляція).

Якщо паралельний кластер використовується вами виключно з метою навчання, то компілятори GCC вас цілком задовольнять. Однак, якщо ви зацікавлені в отриманні максимального ефективний і максимальної швидкості рахунку ваших програм, то варто витратити трохи часу і зусиль для установки компіляторів Intel.

1) Дане твердження не зовсім вірно. У дистрибутиві Ubuntu 10.10 використовується компілятор GNU Fortran 4.4.5. Ця версія компілятора дійсно не підтримує типи даних Real * 16. Однак, на даний момент доступна для використання версія 4.7.0 в якій це обмеження зняте.

2) Тестування проводилося з використанням компіляторів GNU Fortran 4.4.5, GNU Fortran 4.7.0 і Intel Fortran 12.0.4.

3) Дані отримані при використанні GNU Fortran 4.7.0.







Схожі статті