Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТОГОВЫЙ ВАРИАНТ ШПОРЫ.docx
Скачиваний:
7
Добавлен:
23.09.2019
Размер:
814.05 Кб
Скачать

Вопрос 35. Программное обеспечение для мультикомпьютеров.

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

Второй подход - добавление специальных библиотек, содержащих примитивы коммуникации и управления. Здесь программно сам создает процесс параллелизма и управляет им, используя дополнительные примитивы. Следующий шаг - добавление нескольких специальных конструкций к существующим языкам программирования, позволяющих, например. легко порождать новые параллельные процессы, выполнять повторения цикла параллельно или выполнять арифметические действия над всеми элементами вектора одновременно. Этот подход широко используется, и очень во многие языки программирования были включены элементы параллелизма.

Четвертый подход - ввести совершенно новый язык специально для параллельной обработки. Очевидное преимущество такого языка - он очень хороню подходит для параллельного программирования, но недостаток его в том, что программисты должны изучать новый язык. Большинство новых параллельных языков императивные (их команды изменяют переменные состояния), но некоторые из них функциональные, логические или объектно- ориентированные.

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

Ниже мы обсудим каждый из этих вопросов в отдельности.

Модели управлении

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]