Дважды, в сентябре и в декабре этого года, мне удалось встретиться с Грегом Паподопулосом, занявшим хотя и не вполне формальное, но весьма значимое место технического руководителя компании Sun Microsystems.
Это случилось после ухода из компании ведущего научного работника (chief scientist), сооснователя Sun и просто харизматической личности Кремниевой долины Билла Джоя. Скорее всего, это не простая кадровая перестановка: за сменой лидеров просматриваются глубокие изменения в работе компании, связанные с изменениями в окружающей среде. Несмотря на свою относительную молодость, Джой несколько «устарел». Он являет, — или во всяком случае являл собой — «поколение Unix». Родом из мятежного университета Беркли, он типичный юниксоид. А Грег, хотя и заканчивал университет в Сан-Хосе, но как специалист сформировался в Массачусетском технологическом институте, известном своими кибернетическими традициями со времен Норберта Винера. Инженерную карьеру Грег Паподопулос начал в 70-е годы в компаниях Hewlett-Packard и Honeywell, в 80-е перешел в МТИ, где за свою научную работу был удостоен президентской награды Национального научного фонда США, присуждаемой молодым исследователям. В 1993 году Паподопулос занял должность главного архитектора в компании Thinking Machines. Это была небольшая, насчитывавшая менее 200 сотрудников, но весьма значимая в мире суперкомпьютеров компания. Thinking Machines находилась в тесном контакте с учеными из МТИ и вошла в историю как пионер в области параллельных систем. Середина 90-х годов оказалась трудным временем для большинства таких «научных» суперкомпьютерных компаний, многие из них исчезли. В 1994 году обанкротившаяся Thinking Machines была куплена Sun. С тех пор Грег занимает руководящие должности в этой компании. Помимо своей непосредственной работы Паподопулос активно занимается общественной деятельностью, он член совета SETI, проекта, направленного на создание любительской среды Grid, которая нацелена на поиск внеземных цивилизаций.
Грег, начнем с того, что вы не программист, ваши образовательные корни ближе к системам управления, поэтому вы должны лучше понять мой вопрос. За последние несколько десятилетий при всех видимых успехах ИТ произошел своего рода «развод» компьютинга с наукой. Не случайно так широко распространился сам термин — «информационные технологии». В общественном мнении представления о науке сейчас больше ассоциируются с биоинженерией, нанотехнологиями, а не с компьютерными системами. Неужели дальше только технологический рост?
Работа в области, о которой вы говорите, относится к не слишком известной части моей биографии. Я действительно несколько лет был связан с разработкой систем управления летательных аппаратов, в том числе, космических. Тогда, пожалуй, и сформировался тот базис, который позволяет мне лучше понять происходящее в последнее время. Я уверен в том, что теория управления и обратная связь вернутся в компьютинг, но, разумеется, на качественно ином уровне или в совершенно ином облике, чем это было в технических замкнутых системах управления, в классике автоматического регулирования. Относительно «развода», я с вами полностью согласен в том, что наука и архитектура компьютерных систем развиваются чрезвычайно медленно. Физические основы развиваются по экспоненте — это и скорость работы транзисторов, и миниатюризация, и ширина полосы передачи, и беспроводная связь. Однако все это физика. Прогресс в физике сделал на какое-то время бессмысленным развитие компьютерных наук, инвестиции в физику были эффективнее, а деньги решают все. Посмотрите на современные процессоры: практически все они построены на идеях 60-х — 70-х годов. Да, их производительность растет по закону Мура, но почти исключительно за счет физики. Разумеется, мысли о том, какими должны быть процессоры, есть, но все дело упирается в экономическую целесообразность. Выход технологий на бытовой уровень, делает их массовыми и дешевыми, но одновременно становится тормозом для качественного развития. Можно также говорить о некоторых странностях в развитии программирования как науки, но это тема для специального разговора.
Однако накопление знаний продолжалось и продолжается. Не стоит забывать об этом богатстве. Есть масса невостребованных пока еще идей, которые обеспечат развитие в будущем; развитие невозможно без преемственности. В какой-то мере это утверждение можно отнести и к нашей гордости, к нашему главному брэнду — к языку Java. Гений Джеймса Гослинга состоит не только и не столько в том, что открыл что-то радикально новое. Не менее важно другое. Он сумел собрать все вместе и придать нужную форму идеям, которые были известны на протяжении предшествующих двух десятилетий, он естественным образом продолжил начатое раньше. Не случайно, когда язык Java с фантастической скоростью стал завоевывать окружающий мир, многие ученые выдвигали нередко логически обоснованные претензии, обнаруживая реализованными те или иные собственные соображения; например, сборка мусора или повышенная защищенность были уже сделаны ранее.
Существующее положение вещей, в частности тот самый «развод», о котором вы упомянули, следует признать как неизбежное зло. Жизнь такова, какая она есть. Чаще всего техническая история идет путем, предопределенным ей экономикой. От этого ни куда не деться, но мне кажется, что мы подходим к эпохе радикальных перемен и поэтому я не устаю повторять, что компьютинг входит в наиболее интересную для меня эпоху. Мы подходим к периоду, который можно назвать зрелостью. На пути к нему мы преодолели целый ряд детских болезней, и я верю, что «развод» не вечен.
На одной из недавних конференций Microprocessor Forum, вы явно спровоцировали аудиторию утверждением: «Микропроцессоры мертвы» (Microprocessors are dead). Понятно, вы имели в виду, что традиционная архитектурная тенденция в проектировании микропроцессоров исчерпала свой потенциал. Причин кризиса процессоров несколько, одна из них заключается в том, что процессоры развиваются с большим ускорением, чем память. В итоге задержка при обращении к памяти даже при развитой системе кэширования делает дальнейший рост тактовой частоты, как основной резерв производительности, малопродуктивным. Это обстоятельство в качестве аргумента чаще всего используют представители Sun Microsystems. Если процессоры умрут, то что придет им на смену?
Разумеется, процессоры как таковые не умрут. Другое дело, в прошлом останется целый ряд представлений о том, что такое процессор. Нынешние процессоры отстали от требований времени, хотя за последние десять лет в компьютинге изменилось многое, если не сказать все. В новых условиях программное обеспечение с неизбежностью превратится в наборы сервисов, которые будут доступны компьютерам, подключенным к сети. За последние годы сформировалось представление о практических реализациях сервисов, поддерживаемых двумя платформами Java и .Net.
Для полноценной поддержки нового программного обеспечения нужны машины нового типа. Здесь следует сделать несколько последовательных шагов. Шаг первый был сделан давно, тогда, когда центральный процессор собрали на одном кристалле, и появился микропроцессор. Теперь следует сделать следующий шаг в направлении интеграции, собрав все наполнение материнской платы на одной микросхеме, — т.е. перейти от микропроцессоров к «микросистемам», собрать весь сервер на кристалле. А дальше предстоит сделать следующий шаг и собрать на одной кремниевой подложке сетевую структуру, это уже будут «микросети». В апреле 2003 года Sun Microsystems обозначила свою позицию в движении к следующему поколению процессоров, объявив программу Throughput Computing. Все это стало возможным сейчас благодаря развитию полупроводниковых технологий по закону Мура.
На конференциях SunNetwork в сентябре в Сан-Франциско, и в декабре в Берлине большое внимание уделяется программе Throughput Computing, в соответствии с которой разрабатывается новое поколение SPARC, кристаллов, которые все же называют не микросистемами, а микропроцессорами. В тех выступлениях, которые удалось услышать, говорилось о многоядерности и многопотоковости. Но, признаюсь, трудно отличить, чем эта программа отличается от планов на будущее, которые анонсированы IBM, Intel и HP. Не могли бы вы провести какое-то сопоставление с альтернативными стратегиями?
При выборе направления для дальнейшего развития аппаратного обеспечения мы исходили из того, что сейчас можно выделить четыре важнейших тренда. Во-первых, сетевые вычисления по своей природе являются многопотоковыми, и требуются процессоры, способные отразить именно эту специфику. Здесь скорость счета не является критическим показателем. Во-вторых, и это связано с первым аргументом, современные процессоры уже достаточно хороши, чтобы обрабатывать существующие потоки, но, в-третьих, их работу сдерживает медленный обмен с памятью. Наконец, четвертое, есть подходы, которые приводят к появлению слишком сложных процессоров, они не для нас. Следует вспомнить, что инженеры Sun никогда не делали производительность отдельно взятого процессора самоцелью: потребитель оценивает общую системную производительность, а не производительность одного компонента. Еще на памяти многих конкурентная борьба между DEC и Sun, в которой противопоставлялись скорость выполнения команд и производительность систем. Вот и сейчас мы сохраняем преемственность и не намереваемся непосредственно в лоб конкурировать с другими производителями процессоров на поле сравнительных характеристик быстродействия. Скорость работы всей системы в целом — вот наша цель. Она может быть повышена, в том числе, и за счет распараллеливания работ.
Известно два типа параллелизма действий, реализуемых в процессоре. Более традиционным является параллелизм на уровне команд (Instruction Level Parallelism, ILP). Мы же намерены развивать иное направление — многопотоковый параллелизм (Thread Level Parallelism, TLP). Подход на основе ILP реализован в архитектуре EPIC (Explicitly Parallel Instruction Compilation), известно к какому усложнению процессора он приводит. Идея многопотоковости, на которой мы строим свою стратегию, — не наше открытие, он известна в программировании достаточно давно, но мы намерены реализовать ее аппаратно на уровне кристалла. Если первый подход к параллелизму предполагает усложнение архитектуры процессора, то мы не стремимся совершенствовать собственно процессор, мы хотим изменить постановку задачи.
Предлагая Throughput Computing, мы ориентируемся на всю организацию вычислительного процесса в целом, а не на отдельные частности, поэтому мы хотим использовать большее число процессоров с большей эффективностью. Наша сильная сторона в том, что сейчас, уступая по производительности Itanium 2 всего-то на проценты, о которых так много говорят, сохраняем простоту. В UltraSPARC III число транзисторов на порядок меньше, чем в Itanium 2. (Более точные данные: Itanium 2/1 ГГц на SPECint_base 2000 показывает результат 810 единиц, а на SPECfp_base 2000 — 1431, Sun UltraSPARC III соответственно 642 и 953, в зависимости от модификации число транзисторов в UltraSPARC III варьируется от 2 до 29 миллионов, а в Itanium 2 — 241 миллион. — Л.Ч.) Меньшее число транзисторов позволяет разместить на одном кристалле несколько ядер и реализовать технологию Chip MultiThreading. В полном объеме она будет воплощена в проектируемом процессоре Niagara, он будет способен поддерживать 32 потока, но частично она будет внедрена в двуядерном процессоре UltraSPARC IV, выпуск которого начнется в 2004 году и далее в UltraSPARC V в 2006 году.
Основные работы над проектом Niagara начались в 2002 году, когда была приобретена компания Afara Systems, которая имела задел в области Chip MultiThreading и SPARC. Кстати, ее основателем был Лес Коэн, архитектор первого поколения процессоров UltraSPARC. Решения Afara удачно сочетались с собственными разработками Sun по проекту MAJC. В Niagara будет включен контроллер памяти и сетевые интерфейсы, что позволит говорить о «системе на кристалле» (system on a chip), поскольку все коммуникации, необходимые для организации мультипотоковых вычислений будут расположены на одной подложке. На первых порах наиболее успешным, скорее всего, окажется применение процессоров Niagara и их предшественников для сетевых приложений, но в последующих версиях, о которых можно будет говорить года через три, появится возможность для более эффективной работы с приложениями, для которых характерна интенсивная обработка данных. В еще более отдаленном будущем можно говорить о конвергенции ILP и TPL.
Мне представляется, что в ближайшие годы будет своего рода соревнование между Sun и IBM, поскольку общие представления о развитии архитектур SPARC и Power достаточно близки.
В прошлом году в одной из статей были процитированы ваши слова: «Мы открываем себя заново вместе с N1». Почему именно с N1?
Появление N1 закономерность и случайность одновременно, вместе с N1 мы в очередной раз переосмысливаем нашу мантру «Сеть — это компьютер». Закономерность, потому что следует из логики развития компании в целом, а случайность, потому что эта концепция родилась в случайном разговоре главного инженера Sun Роба Джинджелла и главного инженера по аппаратному обеспечению Стива Маккея. Летом 2000 года они поставили перед собой вопрос, если язык Java позволил отвязать приложения от конкретной машины и операционной системы, то почему бы, не создать универсальную сетевую среду, которая объединяла бы в себе различные компоненты компьютеров. Джинджелл и Маккей пришли к выводу о необходимости объединения двух тенденций — аппаратной и программной и строить компьютер не как ящик, а как сеть.
Где, как не в Sun, могла состояться эта беседа, и где как не в Sun, могла последовать немедленная реакция. Была создана команда, а Джинджелл придумал название N1, подразумевающее Network 1. Это очевидная реминисценция по отношению к легендарной рабочей станции Sun 1. В 1982 году было сказано, что Sun 1 — это программа действий на 20 лет, N1 станет программой на 20 следующих лет. В этом смысле мы открываем себя заново.
Команду N1 возглавил Юсеф Халиди, имевший опыт разработки кластерных конфигураций. Свою деятельность эта команда начала с того, что провела десятки встреч с потенциальными потребителями, чтобы уяснить их требования. Параллельно обнаруживались и объединялись родственные подходы и разработки внутри компании, например, виртуализация систем хранения, проекты серверов-лезвий, а далее естественно возник интерес к Grid.
Поначалу история N1 повторяла то, что происходило с Java, идея не вызвала особого энтузиазма у Скотта Макнили, но после года скрытной работы результаты были представлены и восприняты с энтузиазмом. N1 должна стать новой тяжелой артиллерией, по оценкам Роба Джинджелла в 2005 году до 85% дохода Sun Microsystems будет так или иначе связано N1. Теперь уже сам и Скотт утверждает необходимость N1, сравнивая появление этой категории продуктов с заменой ручной коммутации на телефонных станциях. Вот его слова: «Отныне сеть работает, как настоящий компьютер» (This Time, the Network Really Is the Computer).
Итак, два генеральных направления — Throughput Computing и N1. Как они сочетаются?
Throughput Computing и N1 появились на свет независимо, но это дети одних и тех же родителей, поэтому они удачно взаимно дополняют друг друга. В комбинации они позволят строить центры обработки данных следующего поколения. Благодаря стратегии развития UltraSPARC появится возможность обеспечения нужной производительности, а N1 позволит видеть центр обработки данных как единое целое.