Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Особливості організації паралельної програмиСодержание книги
Поиск на нашем сайте
Розглянемо основні нюанси організації паралельної роботи при використанні різних мов паралельного програмування. Технологія програмування OpenMP Стандарт розроблений для мов FORTRAN (77, 90,95), C, C++і підтримується практично всіма виробниками великих обчислювальних систем. Реалізація стандарту доступна як на UNIX -платформах, так і в середовищі Windows NT. В стандарті за основу береться послідовна програма, а для створення її паралельної версії користувачу надається набір директив, процедур і навколишніх змінних. Текст програми розбивається на послідовні і паралельні області (див. рис.8.1). В початковий момент часу породжується нитка-майстер (основна нитка), яка починає виконувати програму з стартової точки. Основна нитка і тільки вона виконує всі послідовні області програми. Для підтримки паралелізму використовується схема FORK/JOIN. При вході в паралельну нитку-майстер створюються додаткові нитки (виконується операція FORK). Після створення кожна нитка отримує свій унікальний номер, причому нитка-майстер завжди має номер 0. Всі створені нитки використовують однаковий код, який відповідає паралельній області. При виході з паралельної області основна нитка дочікується завершення решту ниток, і подальше виконання програми продовжує тільки вона. В паралельній області всі змінні програми діляться на два класи: загальні (SHARED) і локальні (PRIVATE). Загальні змінні завжди існують тільки в одному екземплярі для всієї програми і доступні всім ниткам під однаковим іменем. Оголошення локальних змінних викликає створення свого екземпляра кожної змінної для кожної нитки. Система програмування DVM Система об’єднує моделі паралелізму за даними та керуванню, і складається з 5-ти основних компонентів: компілятори з мов FORTRAN – DVM i C – DVM, системи підтримки виконання паралельних програм, відлагоджувача паралельних програм, аналізатора продуктивності, передбачувача продуктивності. Загальна схема відображення програми і взаємозв’язок основних понять системи наведена на рис.8.2.
Відображення віртуальних процесорів на фізичні здійснюється засобами операційної системи. Для розподілення масивів використовується директива DISTRIBUTE (має описовий статус). Для організації погодженого відображення деяких масивів використовується механізм вирівнювання одного масиву відносно іншого за допомогою директиви ALING. Директива паралельного виконання циклів PARALLEL вбудована в мову Fortran у виді спецкоментара. Директива MAP вбудована в мову Fortran і специфікує то, що n -а задача деякого вектора Т буде виконуватися секцією віртуальних процесорів Р (i1:i2, …,j1:j2). Всі відображені на цю задачу масиви (директива DISTRIBUTE) і обчислення (директива PARALLEL) будуть автоматично відображені на цю ж секцію віртуальних процесорів. В DVM передбачені дві форми відображення блоків програми на задачі. Статична форма є безпосереднім аналогом паралельних секцій в інших мовах, зокрема, директиви SECTIONS в мові OpenMP. В динамічній формі ітерація циклу відображається на задачу. Спільними даними в DVM є дані, що обчислюються на одних процесорах, а використовуються іншими. DVM-програма може виконуватися на довільній кількості процесорів, починаючи з одного. Це є наслідком того, що директиви паралелізму в DVM не залежать ні від кількості процесорів, ні від конкретних номерів процесорів. Єдиним винятком є рівень задач. За вимогою директиви MAP користувач повинен явно описати масив віртуальних процесорів. При цьому кількість процесорів, що описані в програмі не повинен перевищити кількості процесорів, що задаються при запуску програми.
|
||||
Последнее изменение этой страницы: 2016-12-28; просмотров: 213; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.231.160 (0.009 с.) |