home   contents  previous      next        up

Введение

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

По мере того как компьютеры становятся все более быстрыми, может возникнуть соблазн предположить, что компьютеры, в конечном счете, станут "достаточно быстрыми", и что аппетит увеличения вычислительной мощности будет постепенно уменьшаться. Однако история развития компьютеров показывает, что по мере того как новая технология удовлетворяет уже известные приложения, появляются новые приложения, интерес к которым был вызван этой технологией и которые теперь требуют разработки еще более новой технологии и так далее. Так, например, первые исследования рынка сбыта фирмой Cray Research предсказывали рынок в десяток супер-ЭВМ, однако с тех пор было продано много сотен супер-ЭВМ.

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

Хотя коммерческие приложения могут в достаточной мере определить архитектуру большинства будущих параллельных компьютеров, традиционные научные приложения будут оставаться важными потребителями параллельной вычислительной технологии. Действительно, поскольку нелинейные эффекты затрудняют понимание чисто теоретических исследований, эксперименты становятся все более и более дорогостоящими, непрактичными или невозможными по политическим или каким-либо другим причинам (например, США проводит ядерные испытания, используя лишь суперкомпьютеры), то вычислительные исследования сложных систем становятся все более и более важными. Вычислительные издержки, обычно, увеличиваются как четвертая степень и даже более от точности вычислений. Научные исследования часто характеризуются большими требованиями к объему памяти, повышенными требованиями к организации ввода-вывода. Так что для научных исследований будет необходима все возрастающая мощность компьютера.

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

До настоящего времени эффективность самых быстрых компьютеров возросла почти по экспоненте. Первые компьютеры выполнили несколько десятков операций с плавающей запятой в секунду, а производительность параллельных компьютеров середины девяностых достигает десятков и даже сотен миллиардов операций в секунду, и, скорее всего этот рост будет продолжаться. Однако архитектура вычислительных систем, определяющих этот рост, изменилась радикально - от последовательной до параллельной. Эра однопроцессорных компьютеров продолжалась до появления семейства CRAY X-MP/ Y-MP - слабо параллельных векторных компьютеров с 4 - 16 процессорами, которых в свою очередь сменили компьютеры с массовым параллелизмом, то есть компьютеры с сотнями или тысячами процессоров.

Эффективность компьютера зависит непосредственно от времени, требуемого для выполнения базовой операции и числа базовых операции, которые могут быть выполнены одновременно. Время выполнения базовой операции ограничено временем выполнения внутренней элементарной операции процессора (тактом процессора). Уменьшение такта ограничено физическими пределами, такими как скорость света. Чтобы обойти эти ограничения, производители процессоров пытаются реализовать параллельную работу внутри чипа - при выполнении элементарных и базовых операций. Однако теоретически было показано, что стратегия Сверхвысокого Уровня Интеграции (Very Large Scale Integration - VLSI) является дорогостоящей, что время выполнения вычислений сильно зависит от размера микросхемы. Наряду с VLSI для повышения производительности компьютера используются и другие способы: конвейерная обработка (различные стадии отдельных команд выполняется одновременно), многофункциональные модули (отдельные множители, сумматоры, и т.д., управляются одиночным потоком команды).

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

Другая важная тенденция развития вычислений - это огромное увеличение производительности сетей ЭВМ. Еще недавно сети имели быстродействие в 1.5 Mбит/с, но в конце девяностых, сети с быстродействием в 1000 Mбит/с будут повсюду. Наряду с увеличением быстродействия сетей увеличивается надежность передачи данных. Это позволяет разрабатывать приложения, которые используют физически распределенные ресурсы, как будто они являются частями одного многопроцессорного компьютера. Например, коллективное использование удаленных баз данных, обработка графических данных на одном или нескольких графических компьютерах, а вывод и управление в реальном масштабе времени на рабочих станциях.

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

Число процессоров в компьютерах будет увеличиваться, следовательно, можно предположить, что в течение срока службы программного обеспечения оно будет эксплуатироваться на все увеличивающимся числе процессоров. В этой связи можно предположить, что для защиты капиталовложений в программное обеспечение, маштабируемость (scalability) программного обеспечения (гибкость по отношению к увеличению/изменению числа используемых процессоров) будет столь же важна как переносимость. Программа, способная использовать только фиксированное число процессоров, будет такой же плохой, как и программа, способная работать только на одном типе компьютеров.

Отличительных признаком многих параллельных архитектур является то, что доступ к локальной памяти процессора дешевле, чем доступ к удаленной памяти (памяти других процессоров сети). Следовательно, желательно, чтобы доступ к локальным данным был более частым, чем доступ к удаленным данным. Данное свойство программного обеспечения называют локальностью (locality). Наряду с параллелизмом и маштабируемостью, он является основным требованием к параллельному программному обеспечению. Важность этого свойства определяется отношением стоимостей удаленного и локального обращений к памяти. Это отношение может варьироваться от 10:1 до 1000:1 или больше, что зависит от относительной эффективности процессора, памяти, сети, и механизмов, используемых для помещения данных в сеть и извлечения их из сети.

Теперь рассмотрим модели параллельных компьютеров, параллельных вычислений, проблемы, возникающие при разработке, написании и отладке параллельных программ. Наиболее детальные описания будут даны параллельным вычислительным системам, используемым в ВЦ РАН. Первыми системами, с которых в ВЦ РАН (в начале 90-х годов) начались исследования в области параллельных вычислений, были транспьютерные платы IMS B008, содержащие до 10 транспьютеров и подключаемые к IBM PC. Затем в качестве одного из вычислительных серверов локальной сети ВЦ РАН была установлена система GC-1/64 фирмы Parsytec, содержащая 64 транспьютера и подключаемая к Unix-машине. Теперь мы ожидаем подключения системы IBM SP, оснащенной мощными процессорами Power-2. На примере систем разработки параллельных программ этих компьютеров хорошо видно, что, несмотря на определ§нный прогресс, создание параллельных программ остается сложной задачей.


home   contents  previous      next        up