Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Многопоточное параллельное программирование.pdf
Скачиваний:
112
Добавлен:
28.06.2014
Размер:
206.51 Кб
Скачать

Многопоточное параллельное программирование

Цель работы

Освоение методов и средств построения и реализации многопоточных программ.

Введение

В настоящее время существуют различные языковые средства представления и реализации параллельных программ, начиная от низкоуровневых примитивов ОС, специальных библиотек (MPI, PVM и др.), предназначенных для описания и реализации взаимодействующих параллельных процессов и заканчивая системами параллельного программирования, основанными на высокоуровневых языках представления параллельных программ. Примерами последних являются системы функционального параллельного программирования [1, 2], граф-схемного параллельного программирования [3], логического и объектно-ориентированного параллельного программирования и др.

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

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

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

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

Многопоточное параллельное программирование появилось как реакция на необходимость эффективного использования многопроцессорных вычислительных систем с общей памятью. К примеру, фирма Intel активно внедряет технологии многопоточного параллельного программирования в связи с выпуском ею многопроцессорных ВС. Отметим, что несмотря на простоту, как самой идеи многопоточного параллельного программирования, так и её реализацию, многопоточное параллельное программирование требует повышенных усилий от программиста, касающихся обеспечения корректности параллельной программы (однозначности результата её выполнения независимо от временных характеристик индуцируемых потоков и использования общих переменных), её эффективности (частое "столкновение" потоков при обращении к общим программным и аппаратным ресурсам).

Соседние файлы в предмете Параллельные вычислительные системы