ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ

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

В параллельном программировании используются очень похожие средства. Существуют многозадачные системы, в которых каждый процессор выполняет одни и те же операции над различными данными. Имеются конвейерные системы, в которых каждый процессор осуществляет лишь один шаг задания, передавая результаты следующему процессору, который делает очередной шаг. Системы с потоками данных представляют собой последовательность процессоров, сформированную для выполнения определенного задания; для вычисления результата данные передаются от одного процессора к другому [6].

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

Введение в параллелизм

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >