ПК ЗА РАБОТОЙ

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

На прошедшей в октябре в Сан-Хосе (шт. Калифорния) конференции Microprocessor Forum многие производители оборудования изложили свои взгляды на то, каким образом они могут со своей стороны обеспечить разработчикам ПО наилучшие возможности для использования параллельных вычислений. Джим Кале из IBM - главный архитектор микропроцессорного ядра Power4 - сразу высоко установил планку выступлений своим предметным рассказом о требованиях к следующему поколению серверов.

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

Отметив растущую важность обработки данных потоковых типов, он привел для иллюстрации способностей своего двойного процессора Power4 такой пример: за одну секунду каждый из двух его кристаллов “прокачивает” по 20 полнометражных видеофильмов (более 100 Гб данных). Такая ширина полосы пропускания может показаться излишней для приложений, не работающих с видеоматериалами или иными интенсивными потоками данных. Однако Кале напомнил тем, кто так думает, кое-какие положения из книги “101 вопрос из теории очередей”, не забыв и о проблеме высокого пик-фактора.

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

Завтрашние (или даже сегодняшние) серверы нуждаются в крупных резервах полосы пропускания, чтобы избежать эпизодических катастроф снижения производительности ниже приемлемого уровня. (Проблема, известная инженерам коммунальных служб как “туалетное наводнение в перерыве Суперкубка”.)

В том, что касается поддержки одновременного делания нескольких дел, “мы, производители аппаратуры, действуем намного более оперативно, чем разработчики ПО, - похвалил сам себя профессор Стэнфордского университета Джон Хенесси. - Мы выводим их на удобные стартовые позиции для построения параллельного ПО, расчищая путь, по которому они могут пройти, затрачивая минимум усилий. А затем просто встраиваем многопоточность в аппаратуру, и все оказываются довольны”.

Без радикального пересмотра современного способа построения программ, предупредил Хенесси, “разработчики ПО так и будут продолжать действовать в прежнем стиле, заставляя нас подстраивать под него аппаратуру”. То есть разработчикам оборудования придется из кожи вон лезть, выискивая возможности распараллеливания в программах, авторы которых ни о чем таком подумать не удосужились.

По словам инженера из Intel Харша Шарангпани, создателям нового кристалла Itanium пришлось немало потрудиться, изыскивая способы загрузить его параллельные возможности - до восьми операций за один такт - при исполнении приложений уровня предприятия. Компиляторы, генерирующие оптимизированный для Itanium код, будут выполнять глобальный анализ программ в поиске цепочек операций, допускающих параллельное выполнение.

С другой стороны, такие кристаллы, как Athlon фирмы AMD, уже используют разбиение сложных инструкций на несколько более простых, которые затем выполняются параллельно. У многих возникает в связи с этим вопрос: а не сумеет ли AMD обеспечить сравнимый уровень производительности, не требуя столь значительных перемен в инструментарии и в наборе навыков инертной массы разработчиков ПО?

А вы нашли бы, куда применить какой-нибудь 64-разрядный “нет-tanium”? Пишите мне по адресу: peter_coffee@zd.com.

 

Версия для печати