ТЕХНОЛОГИИ МНОГОПРОЦЕССОРНОЙ ОБРАБОТКИ НА КОМПЬЮТЕРАХ MACINTOSH.

Рождение MP Mac
Сценарии многопроцессорной обработки
О значении тактовой частоты
Необъятные горизонты многопроцессорной обработки

Самые "крутые" профессионалы в области компьютерной графики добиваются ускорения работы старым добрым способом: используют несколько компьютеров. Запустив рендеринг объемного изображения на Power Mac, вы включаете старушку Quadra. После того как Quadra оказывается связана по рукам и ногам фильтрацией файла изображения объемом 300 Мбайт, вы переходите к Windows-машине. Несмотря на годы усилий, затраченных на повышение производительности компьютеров, один человек может без труда загрузить работой несколько машин.

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

Рождение MP Mac

Новая технология появилась с легкой руки компании DayStar Digital. Создав плату для размещения на ней нескольких процессоров, DayStar первой среди производителей клонов Macintosh фундаментально увеличила вычислительную мощь этого класса компьютеров. Компания моделировала свою многопроцессорную архитектуру nPower - теперь она называется Apple Multiprocessor API - на базе Windows NT. Это позволило изготовителям, поддерживающим многопроцессорную обработку для Windows NT, перенести их коды на многопроцессорные компьютеры Macintosh. Например, компания Adobe переработала свою MP-версию пакета Photoshop 3.0.5 менее чем за две недели.

Но, несмотря на структурное сходство Multiprocessor API и Windows NT, они не идентичны. Подобно Unix и OS/2, Windows NT обеспечивает симметричную многопроцессорную обработку (SMP), при которой вычислительная нагрузка распределяется между процессорами равномерно, а также отсутствует разделение процессоров на главный и подчиненные. Любое приложение, включая саму операционную систему, может выполняться на любом процессоре. Приложение может разбить сложную операцию на несколько задач - по числу процессоров в системе. Либо приложение может выполняться в фоновом режиме на одном процессоре, не снижая при этом производительность приложения, работающего в активном режиме на другом процессоре.

SMP представляет собой настоящее профессиональное решение для повышения производительности вычислительных систем, но оно требует полной поддержки со стороны операционной системы. В то же время API, которую разработала компания DayStar, ограничивается лишь набором системных расширений. В результате мы получаем то, что DayStar называет псевдо-SMP, а по крайней мере один из официальных представителей Apple - асимметричной многопроцессорной обработкой (AMP). Концепция AMP предполагает, что один процессор является ведущим (master), а все остальные - ведомыми (slaves). Все операции проходят через ведущий процессор, который классифицирует их и распределяет по ведомым процессорам. Сложных операций, которые поддаются разделению, не так много, поэтому большую часть времени ведомые процессоры мирно покоятся на своих кремниевых ложах.

В действительности API компании DayStar является улучшением концепции AMP (что объясняет появление приставки "псевдо"). Один процессор является первичным, а остальные - дополнительными. И пока на первичном процессоре выполняются операционная система и низкоуровневые функции приложений (так называемые "инструментальные вызовы"), он пересылает другие операции для выполнения на дополнительных процессорах.

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

Сценарии многопроцессорной обработки

Концепция API компании DayStar предусматривает два возможных сценария многопроцессорной обработки. Первый, который DayStar называет Level 1, - это многозадачность. Приложение может "изгнать" длительную операцию, например рендеринг нескольких кадров трехмерной анимации, на дополнительный процессор. Это позволяет другим активным программам без задержек выполняться на оставшихся процессорах. Пока разработчики приложений не спешат поддерживать сценарий Level 1. А наиболее вероятная в текущей версии Macintosh OS кандидатура для работы по сценарию Level 1 - фоновая печать - должна выполняться на основном процессоре.

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

О значении тактовой частоты

До сих пор многопроцессорные платы несколько отстают по величинам тактовых частот от однопроцессорных машин. Когда я писал эти строки, максимальная тактовая частота компьютеров Macintosh достигала 225 МГц, а тактовая частота многопроцессорных машин - 180 МГц. Какая машина окажется наиболее подходящей, зависит от характера и объема выполняемых вами работ.

Представьте себе, что центральные процессоры - это лошади. У вас есть четверка лошадей, которые могут скакать со скоростью 40 км/ч. С таким экипажем вы выходите на старт, чтобы соревноваться с одной лошадью, которая может бежать со скоростью 50 км/ч. Победа в этой гонке будет зависеть от нагрузки. Запрягите каждую команду в небольшую тележку, которой правит маленькая обезьянка, и одна, но более быстрая, лошадь возьмет приз. Но если вместо скромной тележки взять дилижанс, набитый гориллами, то победит, несомненно, более медленная и в то же время более выносливая четверка лошадей.

Если ваша работа состоит в основном из предварительного просмотра иллюстраций в пакете Macromedia FreeHand или из верстки полос в QuarkXPress, значит, вы заставляете своих лошадок тащить много маленьких повозок, которые нужно довезти до мест назначения как можно быстрее. В этом случае вам будет вполне достаточно мощности однопроцессорной системы, а оба приложения будут работать на самой высокой скорости при использовании самых быстрых из существующих процессоров. Но если ваши дни протекают под знаком постоянной смены цветовых режимов и ретуширования фотографий, то возникающая нагрузка достаточно велика и заслуживает того, чтобы распределять ее среди нескольких процессоров. И тогда при выполнении рендеринга, компьютерной анимации или при применении сложных эффектов к большим изображениям ваш "дилижанс с гориллами" не догонит никто.

Необъятные горизонты многопроцессорной обработки

Учитывая дороговизну MP-машин, мы постарались тщательно взвесить все "за" и "против". Наши тесты показали, что в системе с четырьмя процессорами приложение, оптимизированное для многопроцессорных машин (например, Photoshop), работает примерно вдвое быстрее, чем его аналог на самом быстром однопроцессорном компьютере. Причем даже и тогда, когда установленный объем оперативной памяти позволяет размещать в ней практически все программы и все используемые данные. (Имейте в виду, что некоторые операции в приложениях, оптимизированных для многопроцессорной обработки - типа размытия по Гауссу с большим радиусом в пакете Photoshop, выполняются примерно в семь раз быстрее, чем те же операции на однопроцессорном компьютере Macintosh. А некоторые, наоборот, совсем не ускоряются.) Не слишком значительная экономия времени при высокой цене оборудования может устроить крупные фирмы, занимающиеся обработкой изображений в больших масштабах, но независимые продюсеры и свободные художники могут "не потянуть".

Однако в течение ближайшего года ситуация может кардинально измениться. Пример Power Mac учит нас, что вложения в новейшие технологии начинают окупаться с появлением нового программного обеспечения, оптимизированного для нового аппаратного обеспечения. Список основных приложений и вспомогательных утилит, которые планируется оптимизировать в 1997 г., выглядит как великолепная библиотека программного обеспечения самого широкого профиля. И если компания Apple, как обещала, снабдит следующую версию операционной системы поддержкой SMP, завтрашние операции на уровне ОС будут выполняться на сегодняшних многопроцессорных компьютерах.

В настоящее время компания DayStar обладает исключительными правами на распространение четырехпроцессорных систем, в то время как Apple и другие производители могут изготавливать только двухпроцессорные машины (как в случае Power Mac 9500/180MP). Но, по заявлению Apple, в апреле 1997 г. срок действия этого соглашения истекает. После этого любой производитель волен размещать в своих машинах столько процессоров, сколько ему вздумается, и хотя ни один изготовитель, за исключением DayStar, не объявил о своих планах производства машин с более чем двумя процессорами, скорее всего, к концу года такие изделия появятся. А тех из вас, кто уже является обладателем системы с шиной PCI, компания Apple готова заверить, что модели 8500 и 9500 технически готовы для MP. В начале следующего года могут появиться в продаже двухпроцессорные платы модернизации.


Дик Макклелланд - автор двух книг, которые увидят свет в ближайшее время: "Macworld Photoshop 4 Bible" и "PageMill 2 for Dummies" (обе выходят в издательстве IDG Books Worldwide, 1997). Автор врезок - Мел Бекмен.