Лабораторная работа №2 icon

Лабораторная работа №2


Скачать 13.21 Kb.
НазваниеЛабораторная работа №2
Размер13.21 Kb.
ТипЛабораторная работа

Лабораторная работа № 2


OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран. Описывает совокупность директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью.

OpenMP реализует параллельные вычисления с помощью многопоточности, в которой «главный» (master) поток создает набор подчиненных (slave) потоков и задача распределяется между ними. Предполагается, что потоки выполняются параллельно на машине с несколькими процессорами (количество процессоров не обязательно должно быть больше или равно количеству потоков).

Задачи, выполняемые потоками параллельно, также как и данные, требуемые для выполнения этих задач, описываются с помощью специальных директив препроцессора соответствующего языка — прагм. Например, участок кода на языке Fortran, который должен исполняться несколькими потоками, каждый из которых имеет свою копию переменной N, предваряется следующей директивой: !$OMP PARALLEL PRIVATE(N)

Количество создаваемых потоков может регулироваться как самой программой при помощи вызова библиотечных процедур, так и извне, при помощи переменных окружения.

Ключевыми элементами OpenMP являются

  • конструкции для создания потоков (директива parallel),

  • конструкции распределения работы между потоками (директивы DO/for и section),

  • конструкции для управления работой с данными (выражения shared и private),

  • конструкции для синхронизации потоков (директивы critical, atomic и barrier),

  • процедуры библиотеки поддержки времени выполнения (например, omp_get_thread_num),

  • переменные окружения (например, OMP_NUM_THREADS).

POSIX Threads — стандарт POSIX реализации потоков (нитей) выполнения, определяющий API для создания и управления ими.

Библиотеки, реализующие этот стандарт (и функции этого стандарта), обычно называются Pthreads (функции имеют приставку «pthread_»). Хотя наиболее известны варианты для Unix-подобных операционных систем, таких как Linux или Solaris, но существует и реализация для Microsoft Windows (Pthreads-w32)

Типы данных:

pthread_t: дескриптор потока

pthread_attr_t: перечень атрибутов потока

Функции управления потоками:

pthread_create(): создание потока

pthread_exit(): завершение потока (должна вызываться функцией потока при завершении)

pthread_cancel(): отмена потока

pthread_join(): заблокировать выполнение потока до прекращения другого потока, указанного в вызове функции

pthread_detach(): освободить ресурсы занимаемые потоком (если поток выполняется, то освобождение ресурсов произойдёт после его завершения)

pthread_attr_init(): инициализировать структуру атрибутов потока

pthread_attr_setdetachstate(): указать системе, что после завершения потока она может автоматически освободить ресурсы, занимаемые потоком

pthread_attr_destroy(): освободить память от структуры атрибутов потока (уничтожить дескриптор)

Функции синхронизации потоков:

pthread_mutex_init(), pthread_mutex_destroy(), pthread_mutex_lock(), pthread_mutex_trylock(), pthread_mutex_unlock(): с помощью мьютексов

pthread_cond_init(), pthread_cond_signal(), pthread_cond_wait(): с помощью условных переменных.


^ Windows API (англ. application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпускает SDK, который называется Platform SDK и содержит документацию, набор библиотек, утилит и других инструментальных средств.

Общие сведенияWindows API был изначально спроектирован для использования в программах, написанных на языке C (или C++). Работа через Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.


^ Наименование проекта

Программная система "Параллельная лаборатория" (Паралаб)

Краткое описание

Система ПараЛаб представляет собой интегрированную среду для изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Широкий набор имеющихся средств визуализации процесса выполнения эксперимента и анализа полученных результатов позволяет изучить эффективность использования тех или иных алгоритмов на разных вычислительных системах, сделать выводы о масштабируемости алгоритмов и определить возможное ускорение процесса параллельных вычислений. Разработка системы ведется при поддержке компании Microsoft.

Возможности 

Система может быть использована для организации лабораторного практикума по различным учебным курсам в области параллельного программирования, в рамках которого обеспечиваются следующие возможности:

  • моделирование многопроцессорных вычислительных систем с различной топологией сети передачи данных;

  • получение визуального представления о вычислительных процессах и операциях передачи данных, происходящих при параллельном решении разных вычислительных задач;

  • построение оценок эффективности изучаемых методов параллельных вычислений.

Проведение такого практикума может быть организовано на «обычных» однопроцессорных компьютерах. Кроме режима имитации, в системе ПараЛаб обеспечивается удаленный доступ к имеющейся многопроцессорной вычислительной системе для выполнения экспериментов в режиме «настоящих» параллельных вычислений для сопоставления результатов имитации и реальных расчетов.

^ Области применения

Система может быть использована для организации лабораторного практикума по различным учебным курсам в области параллельного программирования.

Реализуемые системой ПараЛаб процессы изучения и исследований ориентированы на активное усвоение основных теоретических положений и способствуют формированию у пользователей собственных представлений о моделях и методах параллельных вычислений путем наблюдения, сравнения и сопоставления широкого набора различных визуальных графических форм, демонстрируемых в ходе выполнения вычислительного эксперимента.

Система ПараЛаб включена в состав образовательного комплекса «Многопроцессорные вычислительные системы и параллельное программирование».

Система ПараЛаб была представлена на выставке мировых достижений в области высокопроизводительных вычислений Supercomputing 2006, которая проходила в ноябре 2006 года в городе Тампа, США, и на наиболее представительной в Европе Международной конференции в области суперкомпьютерных технологий International Supercomputing 2007 (июль 2007 г., Дрезден, Германия).

Система ПараЛаб экспонировалась на центральной европейской выставке в области информационных технологий CeBIT (март 2007 г., Ганновер, Германия).

Опыт применения системы показывает, что ПараЛаб может быть полезен как для новичков, только начинающих знакомиться с тематикой параллельных вычислений, так и для специалистов в этой перспективной области компьютерных технологий. Воспользуйтесь системой ПараЛаб – и мир параллельных вычислений станет для вас простым и понятным.

Похожие:

Лабораторная работа №2 iconЛабораторная работа №29 Тема: Зачетная работа по теме: «Учет с подотчетными лицами»

Лабораторная работа №2 iconЛабораторная работа №1 по курсу: на тему
Лабораторная работа №1 по курсу
Лабораторная работа №2 iconЛабораторная работа №6-1 Тема: Работа над созданием презентации программы Microsoft Power Point
Распечатываю рамку стандартного образца где вместо названия документа впечатываю Ф. И. О
Лабораторная работа №2 iconЛабораторная работа №1 Тема : «Отладчик debug»
Краткая аннотация: данная работа посвящена знакомству с отладчиком debug, который позволяет
Лабораторная работа №2 iconЛабораторная работа№2

Лабораторная работа №2 iconЛабораторная работа № На тему

Лабораторная работа №2 iconЛабораторная работа №3 Интерполяция функций

Лабораторная работа №2 iconЛабораторная работа по макроэкономике на тему "индексы цен"

Лабораторная работа №2 iconЛабораторная работа №9 Изучение свойств нтмl(часть 1)

Лабораторная работа №2 iconЛабораторная работа №1 оценка нагруженности группового болтового соединения

Лабораторная работа №2 iconЛабораторная работа №1 Построение регрессионной зависимости между двумя переменными

Вы можете разместить ссылку на наш сайт:
Документы


При копировании материала укажите ссылку ©ignorik.ru 2015

контакты
Документы