Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Буланкин В.Б / Учебное пособие Гергель В.П..doc
Скачиваний:
234
Добавлен:
22.03.2015
Размер:
1.16 Mб
Скачать

Учебно-методические пособия

33. Афанасьев К.Е. и др. Многопроцессорные вычислительные системы и параллельное программирование. - Кемерово: Кузбассвузиздат, 2003.

34. Головашкин Д.Л. Методы параллельных вычислений. Ч. 1. - Самара: Самар. гос. аэрокосм, ун-т, 2002.

35. Головашкин Д., С.П. Головашкина С.П. Методы параллельных вычислений. Ч. 2: . - Самара: Самар. гос. аэрокосм, ун-т, 2003.

36. Деменев А.Г. Параллельные вычислительные системы: основы программирования и компьютерного моделирования. - Пермь: ПГПУ, 2001.

37. Дацюк В.Н. и др. Методическое пособие по курсу "Многопроцессорные системы и параллельное программирование. - Ростов-на-Дону: РГУ, 2000.

38. Дорошенко А.Е. Математические модели и методы организаций высокопроизводительных вычислений. Киев: Наукова думка, 2000.

39. Комолкин А.В., Немнюгин С.А. Программирование для высокопроизводительных ЭВМ. - СПб: Изд-во НИИ химии СПбГУ, 1998.

40. Сергеев Я.Д., Стронгин Р.Г., Гришагин В.А. Введение в параллельную глобальную оптимизацию. - Н. Новгород: ННГУ, 1998.

41. Старченко А.В., Есаулов А.О., Параллельные вычисления на многопроцессорных вычислительных системах. - Томск: ТГУ, 2002.

42. Шпаковский Г.И., Серикова Н.В. Программирование для многопроцессорных систем в стандарте MPI: Пособие - Мн.: БГУ, 2002.

43. Фурсов В.А. и др. Введение в программирование для параллельных ЭВМ и кластеров. - Самара: СНЦ РАН, СГАУ, 2000.

44. Якобовский М.В. Распределенные системы и сети. - М.: МГТУ "Станкин", 2000.

Информационные ресурсы сети Интернет

45. Информационно-аналитические материалы по параллельным вычислениям (http://www.parallel.ru)

46. Информационные материалы Центра компьютерного моделирования Нижегородского университета (http://www.software.unn.ac.ru/ccam)

47. Информационные материалы рабочей группы IEEE по кластерным вычислениям (http://www.ieeetfcc.org)

48. Introduction to Parallel Computing (Teaching Course) (http://www.ece.nwu.edu/~choudhar/C58/)

49. Foster I. Designing and Building Parallel Programs. - Addison Wesley, 1994.(http://www.mcs.anl.gov/dbpp)

<< Назад     Содержание     Дальше >>

1. Принципы построения параллельных вычислительных систем

1.1. Пути достижения параллелизма

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

  • независимость функционирования отдельных устройств ЭВМ - данное требование относится в равной степени ко всем основным компонентам вычислительной системы - к устройствам ввода-вывода, к обрабатывающим процессорам и к устройствам памяти;

  • избыточность элементов вычислительной системы - организация избыточности может осуществляться в следующих основных формах:

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

    • дублирование устройств ЭВМ путем использования, например, нескольких однотипных обрабатывающих процессоров или нескольких устройств оперативной памяти.

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

Возможные пути достижения параллелизма детально рассматриваются в [22, 29]; в этой же работе рассматривается история развития параллельных вычислений и приводятся примеры конкретных параллельных ЭВМ (см. также [9, 29, 31]).

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

  • многозадачный режим (режим разделения времени), при котором для выполнения процессов используется единственный процессор; данный режим является псевдопараллельным, когда активным (исполняемым) может быть один единственный процесс, а все остальные процессы находятся в состоянии ожидания своей очереди на использование процессора; использование режима разделения времени может повысить эффективность организации вычислений (например, если один из процессов не может выполняться из-за ожидании вводимых данных, процессор может быть задействован для готового к исполнению процесса - см. [6, 13]), кроме того, в данном режиме проявляются многие эффекты параллельных вычислений (необходимость взаимоисключения и синхронизации процессов и др.) и, как результат, этот режим может быть использован при начальной подготовке параллельных программ;

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

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

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