НЕОБХОДИМОСТЬ ПОСТРОЕНИЯ ПВС. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ

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

Прежде чем перейти непосредственно к параллельным си­стемам, рассмотрим по отдельности каждую из этих целей.

С момента появления ЭВМ в 1940 г их быстродействие стре­мительно возрастало. К сожалению, поддерживать такие же тем­пы увеличения быстродействия, как и раньше, становится все труднее и все дороже. Простой расчет показывает, что мы, по-видимому, приближаемся к верхней границе скорости обработ­ки данных, достижимой на цифровых вычислительных маши­нах, - это следует из основных физических законов. Таким об­разом, если мы хотим и дальше повышать быстродействие, нельзя рассчитывать только на сокращение времени срабатыва­ния электронной схемы, уменьшение времени распространения сигнала, необходимо найти другое решение проблемы. Одно из возможных направлений - это иметь в системе несколько про­цессоров, работающих параллельно. Эта идея не нова. Еще в 1842 г Манабреа писал: «... машина может ... вырабатывать не­сколько результатов одновременно, что очень сильно сократит общее время вычислений» [1]. Это равносильно параллельнос­ти, но, так как в наше время придумано много терминов, связан­ных с параллельностью, нам следует, прежде чем переходить к более детальному обсуждению параллельных систем, разобрать­ся в этой терминологии.

Когда говорят об универсальной ЭВМ, работающей в усло­виях вычислительного центра, используют термин «производи­тельность». Этот термин обозначает число различных и не свя­занных между собой заданий, которое процессор способен об­работать за данное время. Производительность р процессоров будет, конечно, больше производительности одного процессора (но соответственно увеличится и стоимость системы). Заметим,что, хотя установив р отдельных ЭВМ, мы и получим увеличе­ние производительности в р раз, время выполнения отдельного задания любого пользователя заметно не изменится.

В связи с параллельностью используется и другой термин -мультипрограммирование. Идея состоит в обработке несколь­ких заданий на одном центральном процессоре с использовани­ем нескольких устройств ввода-вывода, причем процессор и все устройства ввода-вывода могут работать одновременно. Несмот­ря на то, что используется только один процессор, время обра­ботки всех заданий значительно уменьшится. Цель мультипрог­раммирования - уменьшить общее время обработки несколь­ких заданий. В противоположность этому, вычисляя «коэффи­циент повышения быстродействия (к.п.б.)» (speedup), мы хо­тим знать, во сколько раз уменьшится время обработки одного отдельного задания.

Для того, чтобы еще больше разграничить эти понятия, сто­ит подчеркнуть разницу между терминами одновременность (concurrency) и параллелизм (parallelism). Одновременность оз­начает, что в один и тот же момент времени происходят никак не связанные между собой события; например, данные переда­ются с диска на печатающее устройство в то время, как на про­цессоре идет некоторая программа. Обработка же всех разрядов слова одновременно, или выполнение одновременно р частей одной и той же программы, - это параллелизм.

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

Основное внимание при исследовании возможностей со­здания ПВС и рассмотрении уже существующих мы будем уде­лять увеличению к. п. б. (а не производительности) при помощи пространственного параллелизма, достигаемого ценой умерен­ных затрат.

Рассмотрим теперь вопросы стоимости. Пока все выпуска­емые на продажу процессоры были «из породы динозавров», объединение нескольких таких машин в одну систему обходи­лось слишком дорого. Более того, это было невыгодно потому, что к. п. б., как оказалось, совсем не обязательно увеличивается пропорционально увеличению стоимости оборудования. Дело в том, что в каждый данный момент времени схемы приоритета предоставляют доступ к некоторому блоку памяти только одно­му из процессоров, поэтому некоторые процессоры будут вы­нуждены ждать (так называемый «конфликт по памяти»). В ре­зультате к. п. б. увеличится менее чем в р раз, в то время как сто­имость возрастет ровно в р раз, а это может сделать весь проект экономически невыгодным.

Соотношение между однопроцессорными и мультипроцессор­ными системами по показателю стоимость/производительность изменилось с появлением мини-ЭВМ. Мини-ЭВМ (и тем более микро-ЭВМ), т. е., по сути своей, современные персональные ком­пьютеры, оказались по крайней мере на порядок более эффектив­ными по стоимости, чем большие машины. Есть целый ряд оче­видных соображений, объясняющих причины этого явления:

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

2. Экономика крупномасштабного производства. Наклад­ные расходы на одну ЭВМ при объеме производства от 1 04 до 1 06 персональных компьютеров в год будут меньше, чем при производстве 50-100 больших однопроцессорных вычислитель­ных систем в год.

3. При существующей политике цен стоимость разработки программного обеспечения больших вычислительных систем полностью поглощается стоимостью аппаратуры. Стоимость как аппаратуры, так и программного обеспечения (что дороже) скла­дывается из стоимости разработки и стоимости реализации, и в последнее время они значительно снизились. Кроме того, дажев случае традиционных ЭВМ массовая продажа этих машин позволяет окупить затраты на аппаратуру и программное обес­печение. Что же касается параллельных систем, то их окупае­мость достигается еще проще, так как они используют типовые серийно выпускаемые устройства на БИС. Проведенный анализ показал, что по показателю производительность/стоимость муль­типроцессорные ЭВМ в 3-4 раза превосходят однопроцессор­ные ЭВМ, построенные на той же технологической базе. Одна­ко результат такого сравнения очень сильно зависит от стоимо­сти памяти.

В настоящее время идет быстрый процесс снижения цен на микропроцессоры, что делает приведенные выше соображения еще более актуальными. Так, например, стоимость системы РЕРЕ, имеющей столько процессоров, что по количеству мил­лионов операций в секунду она сравнялась с большой однопро­цессорной CDC 7600, составляет всего 10% от стоимости пос­ледней [1]. Создаваемые в настоящее время параллельные сис­темы обработки данных разрабатываются на основе микропро­цессоров или устройств на СБИС в рамках новейших техноло­гий и будут еще более эффективными по своей стоимости.

Теперь перейдем к обсуждению модульности. Еще одна причина, по которой ПВС экономически выгодны, состоит в следующем. До недавнего времени ЭВМ покупались и устанав­ливались как некие единые устройства. Всякий раз, когда возни­кала необходимость в большей ЭВМ с большим быстродействи­ем, приходилось отказываться от старой машины и покупать новую. В то же время использование ПВС позволяет наращи­вать вычислительную мощность по мере необходимости. Такое свойство системы можно назвать «способностью к инкремент-ному наращиванию» или модульностью. Таким образом можно создавать конкретную архитектуру, наиболее отвечающую нуж­дам пользователя.

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

Однопроцессорная ЭВМ надежна ровно на столько, на сколько надежна ее самая «уязвимая» часть. Кроме того, отказ однопроцессорной ЭВМ - это катастрофа, в то время как при отказе одного из процессоров в ПВС оставшиеся процессоры потенциально работоспособны и система может продолжать выполнять свою задачу, правда, с несколько меньшей произво­дительностью. При отключении некоторой части ПВС времен­но для технического обслуживания либо при обнаружении в ней неисправности система должна оставаться работоспособной и продолжать выполнять свои функции за счет небольшого сни­жения быстродействия. Более того, всегда, когда это возможно, такая непрерывность работы должна достигаться без дополни­тельных расходов на резервные (избыточные) компоненты, ис­пользуемые, например, на некоторых телефонных станциях или других отказонеустойчивых системах. В таких системах аппара­тура удваивается или утраивается, и все результаты сравнивают­ся. Надежность достигается введением избыточных модулей и схемами голосования по большинству, что дорого, а, следова­тельно, уменьшается стоимостную эффективность.

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

Таким образом, ПВС имеют ряд преимуществ, но заметно­го прогресса в области построения параллельных систем не на­блюдается. Причины, по которым ПВС не пользуются особой популярностью, заключаются в следующем:

1 . Инженерное дело по самой своей природе консерватив­но. Здесь присутствует классическая тупиковая ситуация: мы не можем научиться программировать для мультипроцессорных систем, пока таких систем не существует, но мы и не построим такую систему, пока для нее не будет готовых программ.

2. На рынке нет спроса на эти системы. Другой тупик: отку­да может появиться спрос, если даже неизвестно, что такие па­раллельные структуры могут существовать?

3. Ограниченная область применения; отсутствие «парал­лельной» математики; недостаток знаний о возможности разби­ения задач на параллельные ветви; огромные затраты на разра­ботку языка и программ.

Еще одно немаловажное для синтеза ПВС замечание мож­но сформулировать следующим образом: «Хороший разработ­чик ЭВМ должен в первую очередь знать задачи потенциальных пользователей, знать ту технологическую базу, на которой будет построена система, и конкретных людей, которые осуществят разработку аппаратуры и программ для проектируемой ЭВМ».

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