Застосування технології OpenMP для вирішення завдань паралельного програмування

Реалізація технології OpenMP на сучасних комп'ютерах із загальною (розділеною) пам'яттю з ціллю забезпечення можливості використання загальних даних для паралельно виконуваних потоків без трудомістких міжпроцесорних передач. Створення "команди" нитей.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык украинский
Дата добавления 09.09.2024
Размер файла 7,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Застосування технології OpenMP для вирішення завдань паралельного програмування

Калюжняк Анастасія Вікторівна, аспірантка математичного факультету, Запорізький національний університет

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

При цьому, залишаються важливими наступні фактори - це фізико- математична постановка задачі, алгоритм рішення, ефективні високоточні численні методи та оптимально розумний час виконання програмного компоненту[1]. Зниження часу - одна з головних проблем, яка залежить в першу чергу від самого алгоритму, від вибору алгоритмічної мови та відповідного компілятора, що підтримує сучасні технології програмування та ефективні бібліотеки чисельних методів.

Найвідоміші технології паралельного програмування це OpenMP (Open Multi-Processing) та MPI (Message Passing Interface)[1]. Технології націлені на те, щоб користувач мав один варіант модулю для паралельного і послідовного виконання. В загальному вигляді програма - це набір послідовних і паралельних ділянок програмного коду. Використання потоків для організації розпаралелювання дозволяє отримати переваги багатопроцесорних обчислювальних систем із загальною пам'яттю. Потоки однієї і тієї ж паралельної програми виконуються в загальному адресному просторі, що забезпечує можливість використання загальних даних для паралельно виконуваних потоків без будь-яких трудомістких міжпроцесорних передач (на відміну від процесів в технології MPI для системи з розподіленою пам'яттю)[2]. Тому управління потоками вимагає менше витрат для операційної системи.

Технологія OpenMP реалізована на сучасних комп'ютерах із загальною (розділеною) пам'яттю. Програма починає виконувати задачу як один процес, який в OpenMP називається головною ниткою (master thread). Цей процес виконується послідовно до тих пір, поки не дійшов до першої паралельної конструкції. У цей момент створюється «команда» нитей, а «керівником» для неї є головна нитка [3].

Один з основних об'єктів розпаралелювання в OpenMP - це використання циклу. Після завершення виконання роз'єднаної конструкції нитки «керівники» синхронізуються, а виконання програми продовжується тільки в головній нитці. В кластері може бути багато паралельних конструкцій, відповідно, «керівники» нитей можуть утворюватися не один раз. OpenMP підтримує можливість вкладання паралельних конструкцій.

Атрибути даних, тобто змінні або масиви у розпаралеленому блоці задаються за допомогою ключів у директивах. Дані можуть бути загальними (спільними) для всіх ниток, а можуть бути особистими (приватними). За замовчуванням усі дані мають спільний тип. Однак це можна змінити, вказавши ключ default(private) або default(none). Розпаралелювання обчислень передбачає використання відразу кількох технологій паралельного програмування, наприклад, MPI для організації обмінів даними між вузлами кластера, OpenMP для організації кількох потоків процесора локально в рамках одного вузла кластеру.

Висновки

Для успішної реалізації програмного застосунку з використанням даної технології необхідно: вибирати версію компілятора, в якій досить ефективно реалізована необхідна бібліотека чисельного методу та можливість до розпаралелювання. Для забезпечення необхідної точності найкраще використовувати у вибраному алгоритмі процедури нормування даних та вагові коефіцієнти. Алгоритм має бути добре структурований, тобто реалізована блокова структура, кожен блок у вигляді процедури або функції. Для виконання розпаралелювання виділити незалежні, послідовні та паралельні блоки; дотримуватись балансу при використанні швидкої та повільної пам'яті суперкомп'ютера.

openmp паралельний потік нить пам'ять

Список використаних джерел

1. Lorensen W.E., Cline H.E. (2017) Marching Cubes: A high resolution 3D surface construction algorithm. Association for Computing Machinery, (21), 41 -43.

2. Agoston M.K. (2005) Computer Graphics and Geometric Modelling. London: SpringerVerlag.

3. S. Hunold, A. Bhatele, G. Bosilca, P. Knees. (2020). Predicting MPI collective communication performance using machine learning. 2020 IEEE International Conference on Cluster Computing. (pp.259-269). September 14, 2020, Kobe, Japan.

Размещено на Allbest.ru


Подобные документы

  • Технологія OpenMP як найпопулярніший засіб програмування комп'ютерів із загальною пам'яттю. Типи конструкцій OpenMP: функції виконуючого середовища OpenMP, директиви pragma. Аналіз параметрів операційного середовища OpenMP, особливості типів блокувань.

    реферат [397,2 K], добавлен 09.06.2012

  • Реалізація, за допомогою технології Windows Forms, програми обліку даних про волонтерів та подій, на які вони зареєстровані. можливості об'єктно-орієнтованого програмування. Створення класів. Методи, властивості. Використання Multiple Document Interface.

    курсовая работа [1,5 M], добавлен 02.12.2015

  • Анализ средств распараллеливания, предоставляемых технологиями OpenMP. Синтаксис и семантика функций технологии OpenMP на языке программирования Visual C++. Компиляция программы, проектирование интерфейса пользователя для взаимодействия с программой.

    курсовая работа [492,0 K], добавлен 09.08.2015

  • Використання технології SSI для автоматичного додавання на web-сторінку вмісту файлу, виведення значень змінних оточення, вбудовування результату виконання CGI-програм. Характеристика директив технології. Застосування до web-додатків даної технології.

    реферат [22,3 K], добавлен 04.04.2015

  • Изучение средств распараллеливания, предоставляемых технологиями OpenMP. Исследование синтаксиса и семантики функций технологии OpenMP на языке программирования Visual C++). Проектирование интерфейса пользователя для взаимодействия с программой.

    контрольная работа [773,9 K], добавлен 12.07.2015

  • Поняття пам’яті в комп’ютері. Класифікація сучасних персональних комп’ютерів за їх ознаками. Основні принципи будови та функціонування комп'ютерних систем. Функціональність смартфонів і комунікаторів в порівнянні із звичайними мобільними телефонами.

    курсовая работа [70,3 K], добавлен 31.01.2014

  • Використання dataGridView при роботі з даними файлів. Програмний код основного модуля з поясненнями. Створення додаткових форм і меню. Технології Visual Studio зі створення багатомодульних проектів, технології опрацювання даних, які зберігаються у файлах.

    дипломная работа [1,9 M], добавлен 30.01.2016

  • Види списків, особливості їх створення, застосування та можливості удосконалення роботи користувача персонального комп’ютера. Керування та аналіз груп споріднених даних у середовищі програми MS Excel 2010. Опрацювання спискiв за допомогою форми даних.

    дипломная работа [2,7 M], добавлен 18.06.2014

  • Основні поняття мультимедіа технології, їх різновиди та функціональні особливості, області застосування. Програма Macromedia Flash, її характеристика та особливості. Огляд даної технології, робота з текстом і звуком, можливі сценарії, застосування в web.

    дипломная работа [285,0 K], добавлен 10.11.2010

  • Спосіби розв'язання трудомістких обчислювальних завдань з використанням двох і більше комп'ютерів, об'єднаних в мережу. Розробка програмної реалізації восьми процесорної паралельної системи зі розподіленою пам’яттю, яка виконує множення двох матриць.

    курсовая работа [747,6 K], добавлен 23.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.