Uploaded by ара рмоа

перевод Parallel Processing

advertisement
Параллельная обработка, компьютерная техника, в которой многочисленные операции выполняются одновременно.
Параллелизм сокращает время вычислений. По этой причине, он используется для многих приложений, требующих
большого объема вычислений, таких как прогнозирование экономических тенденций и создания визуальных спецэффектов
для художественных фильмов.
Два распространенных способа, которые осуществляют параллельной обработки через многопроцессорную обработку или
параллелизм на уровне команд. Многопроцессорная обработка связывает несколько процессоров - компьютеры или
микропроцессоры (электронные схемы, которые обеспечивают вычислительную мощность и контроль над компьютерами) вместе, чтобы решить одну проблему. Параллелизм на уровне инструкций использует один процессор компьютера, который
выполняет несколько команд одновременно.
Если проблема делится равномерно на десять независимых частей, которые решаются одновременно на десяти компьютерах,
то решение требует одну десятую часть времени, которое потребуется на одном непараллельном компьютере, где каждая
часть решается в последовательном порядке. Многие крупные проблемы легко делятся для параллельной обработки; Тем не
менее, некоторые проблемы трудно разделить, потому что их части являются взаимозависимыми, требуя результатов от
другой части проблемы, прежде чем они могут быть решены.
Части проблемы, которые не могут быть вычислены параллельно называются последовательными. Эти последовательные
части определяют время вычисления для задачи. Например, предположим, что проблема имеет девять миллионов
вычислений, которые могут выполняться параллельно и один миллион вычислений, которые необходимо выполнить
последовательно. Теоретически, девять миллионов компьютеров могли бы выполнить девять десятых от общего вычисления
одновременно, оставляя одну десятую часть общей проблемы, которую необходимо вычислить последовательно. Таким
образом, общее время выполнения составляет лишь одну десятую часть того, что было бы на одном непараллельном
компьютере, несмотря на дополнительные девять миллионов процессоров.
ПАРАЛЛЕЛЬНАЯ АРХИТЕКТУРА
В 1966 году американский инженер-электрик Майкл Флинн выделил четыре класса архитектуры процессора (конструкции
того, как процессоры манипулируют данными и инструкциями). Данные могут быть переданы либо в процессор компьютера
по одному за раз, в одиночный поток данных, либо несколько элементов данных могут быть отправлены в то же время, в
множественные потоки данных. Точно так же, инструкции могут быть выполнены либо по одному за раз, в одиночном
потоке команд, либо несколько инструкций могут выполняться одновременно, в множественных потоках команд.
Последовательные компьютеры имеют одиночный поток команд, одиночный поток данных (SISD) архитектуры. Одна часть
данных отправляется к одному процессору. Например, если 100 чисел должны быть умножены на число 3, каждый номер
будет направлен к процессору, умножен, и результат сохранен; то следующий номер будет отправлен и вычислен, пока не
будут вычислены все 100 результатов. Приложения, которые подходят для архитектур SISD включают те, которые требуют
сложных взаимозависимых решений, таких как обработка текстов.
Процессор множественного потока команд, одиночного потока данных (MISD) воспроизводит поток данных и посылает его
на несколько процессоров, каждый из которых затем выполняет отдельную программу. Например, содержания базы данных
могут быть отправлены одновременно нескольким процессорам, каждый из которых будет искать разное значение.
Проблемы хорошо подходящие для параллельной обработки MISD включают системы технического зрения, которые
извлекают несколько характеристик, таких как растительность, геологические характеристики или производственные
объекты, из одного спутникового изображения.
Архитектура одиночного потока команд, множественного потока данных (SIMD) имеет несколько элементов обработки,
которые выполняют одну и ту же инструкцию по отдельным данным. Например, машина SIMD со 100 элементами
обработки может одновременно умножить 100 чисел каждая по числу 3. SIMD процессоры программируются так же, как
процессоры SISD, но их операции выполняются с массивами данных, а не отдельными значениями. SIMD процессоры также
известны как матричные процессоры. Примеры приложений, которые используют SIMD архитектуры - повышение
обработки изображений и обработки радиолокаций для управления воздушным движением.
Процессор множественного потока команд, множественного потока данных (MIMD) имеет отдельные инструкции для
каждого потока данных. Эта архитектура является наиболее гибкой, но и наиболее трудно программируемой, поскольку она
требует дополнительных инструкций для координации действий процессоров. Она также может имитировать любой из
других архитектур, но с меньшей эффективностью. MIMD конструкции используются на сложных симуляциях, таких как
выступающие модели роста и развития города, а также в некоторых программах искусственного интеллекта.
Параллельная связь
Еще одним фактором в архитектуре параллельной обработки явл. то, как процессоры взаимодействуют друг с другом. Один
из подходов заключается в том, чтобы позволить процессорам совместно использовать одну память и общаться, читая
данные друг друга. Это называется совместной памятью. В этой архитектуре все данные могут быть доступны любому
процессору, но необходимо соблюдать осторожность, чтобы не допустить связанным процессорам непреднамеренного
перезаписать результаты друг друга.
Альтернативный метод - подключение процессоров и позволяют им отправлять сообщения друг другу. Этот метод известен
как передача сообщений или распределенная память. Данные разделены и сохраняются в памяти разных процессоров. Это
затрудняет обмен информацией, так как процессоры не подключены к той же памяти, но это и безопаснее, потому что
результаты не могут быть перезаписаны.
В системах с общей памятью с увеличением числа процессоров доступ к единой памяти становится затруднительным, и
узкие формы. Для устранения этого ограничения и проблемы изолированной памяти в системах с распределенной памятью
процессоры с распределенной памятью также могут быть построены со схемой, которая позволяет разным процессорам
доступ к памяти друг друга. Этот гибридный подход, известный как распределенная совместно используемая память,
устраняет узкие места и проблемы совместного использования обеих архитектур.
СТОИМОСТЬ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ
Параллельная обработка является более дорогостоящей, чем последовательные вычисления, так как несколько процессоров
являются дорогостоящими и увеличение скорости вычислений редко пропорционально числу дополнительных процессоров.
Процессоры MIMD требуют сложного программирования для координации своих действий. Нахождение ошибок
программирования MIMD также осложняется зависящими от времени взаимодействий между процессорами. Например,
один процессор может потребовать результат из памяти второго процессора, прежде чем процессор производит результат, и
поместить его в свою память. Это приводит к ошибке, что трудно идентифицировать.
Программы, написанные для одной параллельной архитектуры, редко эффективно работают на другом. В результате,
использование одной программы на двух разных параллельных процессорах часто включает в себя дорогостоящую и
трудоемкую перезапись этой программы.
ПЕРСПЕКТИВЫ И ПРИМЕНЕНИЯ
Когда параллельный процессор выполняет более 1000 операций в одно время, это называется массовым параллелизмом. В
большинстве случаев, проблемы, которые подходят массовому параллелизму, связаны с большими объемами данных,
такими как прогнозирование погоды, имитирование свойств гипотетических фармацевтических препаратов и взлом кодов.
Массовые параллельные процессоры на сегодняшний день являются большими и дорогими, но вскоре технология позволит
процессору SIMD с 1024 процессорными элементами находиться на одной интегральной схеме.
Исследователи обнаружили, что последовательные части некоторых проблем могут быть обработаны параллельно, но на
разных архитектурах. Например, 90 процентов проблемы могут быть пригодны для SIMD, оставшиеся 10 процентов,
которые представляются последовательными, но просто требуют обработки MIMD.
В 1996 году International Business Machines Corporation (IBM) бросил вызов Гарри Каспарову, действующему чемпиону мира
по шахматам, в шахматном матче с суперкомпьютер под названием Deep Blue. Компьютер использовал 256
микропроцессоров в параллельной архитектуре, чтобы вычислить более 100 миллионов шахматных позиций в секунду.
Каспаров выиграл матч с тремя победами, две ничьи и одно поражение. Deep Blue стал первым компьютером, который
выиграл игру против чемпиона мира с регулированием времени контроля. Некоторые эксперты прогнозируют эти типы
машин для параллельных обработок, в конечном счете превосходят способности человека в игре в шахматы, и некоторые
полагают, что массивные вычисления мощности в один прекрасный день могут заменить интеллект. Deep Blue служит
прототипом для будущих компьютеров, которые будут необходимы для решения сложных задач.
Download