Застосування технології 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Види списків, особливості їх створення, застосування та можливості удосконалення роботи користувача персонального комп’ютера. Керування та аналіз груп споріднених даних у середовищі програми MS Excel 2010. Опрацювання спискiв за допомогою форми даних.
дипломная работа [2,7 M], добавлен 18.06.2014Використання dataGridView при роботі з даними файлів. Програмний код основного модуля з поясненнями. Створення додаткових форм і меню. Технології Visual Studio зі створення багатомодульних проектів, технології опрацювання даних, які зберігаються у файлах.
дипломная работа [1,9 M], добавлен 30.01.2016Основні поняття мультимедіа технології, їх різновиди та функціональні особливості, області застосування. Програма Macromedia Flash, її характеристика та особливості. Огляд даної технології, робота з текстом і звуком, можливі сценарії, застосування в web.
дипломная работа [285,0 K], добавлен 10.11.2010Спосіби розв'язання трудомістких обчислювальних завдань з використанням двох і більше комп'ютерів, об'єднаних в мережу. Розробка програмної реалізації восьми процесорної паралельної системи зі розподіленою пам’яттю, яка виконує множення двох матриць.
курсовая работа [747,6 K], добавлен 23.01.2014Принципи технології створення програмних продуктів. Набір файлів, необхідних для створення програми в Delphi, варіанти роботи з ними. Програмування графічного інтерфейсу користувача. Зовнішній вигляд і лістинг програми, використані команди і компоненти.
курсовая работа [550,5 K], добавлен 03.01.2014Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.
курсовая работа [502,5 K], добавлен 01.04.2016Вивчення технології Frame Relay - високошвидкісної передачі даних, яка вміщує в собі характеристики, які роблять технологію ідеальним рішенням для передачі імпульсного трафіку. Аналіз можливостей використання технології в сучасних конвергованих мережах.
курсовая работа [534,2 K], добавлен 07.03.2010Проект комп’ютерної мережі масштабу чотирьохповерхового будинку, побудованої на базі технології Worldwide Interoperability for Microwave Access (WiMAX), розгляд загальних характеристик, переваг та обмеження. WiMAX як технології безпровідного зв'язку.
курсовая работа [2,5 M], добавлен 03.06.2011Дослідження сутності технології Drag&Drop та особливостей її застосування. Властивості та події об'єктів Delphi, які використовуються при програмуванні технології Drag&Drop. Призначення обробників подій OnDragOver та OnDragDrop. Контекстна підказка.
лабораторная работа [14,4 K], добавлен 20.03.2011Технології тривимірного друку: принципи, можливості, витратні матеріали. Особливості застосування технології 3D-друку. Програмне забезпечення для роботи з 3D-принтерами. Формування попиту на 3D-принтери на вітчизняному ринку на прикладі міста Львів.
курсовая работа [109,0 K], добавлен 17.06.2015Стандарти OpenMP i MPI як основні засоби програмування для багатопроцесорних систем. Розробка програми паралельного розрахунку інтеграла для функції з певним кроком дискретизації, паралельної програми множення квадратної матриці на квадратну матрицю.
курсовая работа [2,5 M], добавлен 11.12.2013Технология разработки параллельных программ для многопроцессорных вычислительных систем с общей памятью. Синтаксис, семантика и структура модели OpenMP: директивы, процедуры и переменные окружения. Распараллеливание по данным и операциям, синхронизация.
презентация [1,2 M], добавлен 10.02.2014Переваги технології асинхронного обміну даних (AJAX), огляд створених на її основі Інтернет-проектів. Алгоритм роботи веб-ресурсу, що надає можливість обміну повідомленнями між користувачами за допомогою AJAX-технології. Програмна реалізація веб-додатку.
дипломная работа [398,3 K], добавлен 18.12.2013Шаблони багатошарової архітектури. Методика застосування LINQ to SQL при розробці програмного забезпечення засобами Visual Studio. Підвищення ефективності навчального процесу, шляхом розробки та застосування засобів візуалізації технології LINQ to SQL.
дипломная работа [1,3 M], добавлен 24.01.2015