6.5.1 Конструкторы производных типов.............................................. 289
6.5.2 Регистрация и удаление производных типов............................ 294
6.5.3 Подпрограммы, сопутствующие производным типам............ 294
6.6 Операции упаковки и распаковки данных......................................... 298
6.6.1 Типы MPI_BYTE и MPI_PACKED............................................ 301
6.7 Атрибуты коммуникаторов................................................................... 301
6.8 Ввод и вывод............................................................................................. 306
6.8.1 Основные операции с файлами.................................................... 306
6.9 Вопросы и задания для контроля......................................................... 315
Список литературы.................................................................................... 316
Предметный указатель........................................................................... 317
Исторически программирование цифровых вычислительных машин начиналось с записи на языках программирования программ, которые при их выполнении управляли единственным арифметико-логическим устройством (процессором), считывая значения очередных операндов из памяти и помещая в память результаты этих вычислений. Процесс обработки данных принципиально был последовательным во времени. Десятилетиями программирование осуществлялось таким образом, чтобы к моменту выполнения очередного действия значения необходимых операндов уже были созданы и находились в памяти машины. Это было консервативным наследием машин фон-неймановской структуры.
Оказалось, что простое повышение быстродействия отдельных узлов и машины в целом не может привести в обозримом будущем к существенному ускорению обработки данных в силу того, что процессорный блок оставался одним единственным. Обнадеживающим примером достижимости высокой скорости обработки при одновременном использовании множества медленно работающих процессорных блоков служили аналоговые вычислительные машины. Поэтому, начиная с шестидесятых годов, в этом направлении начали проводиться интенсивные исследования в области создания многопроцессорных вычислительных систем и программного обеспечения, поддерживающего одновременную совместную работу множества процессоров [8, 9]. Проблемным здесь оказался обмен данными между одновременно протекающими процессами. Развитие локальных сетей и микроэлектронной базы сетевых интерфейсов с соответствующими протоколами обмена данными позволили по-новому подойти к организации параллельных вычислений в мультипроцессорных системах.
Из всего, что было апробировано до 1994 года на существовавших параллельных вычислительных системах и их операционных системах, для дальнейшего развития была использована идея организации параллельных вычислений на базе интерфейса передачи сообщений [16], а в форме спецификации MPI-2 введен стандарт на запись параллельных программ, что открыло дорогу разработкам параллельных переносимых программ.
Для построения параллельных алгоритмов и записи параллельных программ прежде всего нужно приучить себя мыслить в двух измерениях: во времени и ранжированном пространстве процессоров. Необходимо понимать и учитывать множество нюансов, возникающих в параллельных вычислительных системах при выполнении операций обмена данными как внутри локального процессора, так и между различными процессорами [1]. Очень важными становятся вопросы построения параллельного алгоритма, который бы выполнялся за минимально возможное время, использовал при этом наименьшее число процессоров и не имел бы тупиковых остановок.
В данном учебном пособии последовательно рассматриваются все названные вопросы и даются соответствующие рекомендации по их учету и разрешению. По ходу изложения приводятся примеры.
Первый раздел содержит основные сведения и понятия, относящиеся к параллельным процессам и параллельному программированию. Здесь обсуждается основной принцип вызова процессов на обработку. Рассматриваются важнейшие характеристики параллельной обработки, полученные на основе анализа формальной модели параллелизма.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.