Журнал «Компьютерра» № 37 от 10 октября 2006 года
Шрифт:
Сам брифинг, правда, из-за желания показать как можно больше «наворотов» и одновременно совместить это с массой лирических отступлений на тему «почему R&D так важно для Intel» или «как хорошо мы дружим с British Telecom», получился довольно сумбурным, но на протяжении четырех последующих дней обо всем этом подробно рассказали в докладах сами разработчики, а не руководители исследовательских лабораторий.
Естественно, с практической реализацией дела обстоят куда хуже, чем на бумаге, и добрая половина из того, о чем гордо рассказывали в конференц-зале отеля «Мариотт», пестреет дырами, закрыть которые может только какой-нибудь гениальный прорыв, говорить о сроках которого, конечно, невозможно. Так что есть в этом всем элемент показухи — Intel так хотелось уложить всех наповал, что в ход пошли все, даже самые сырые наработки. Хотя приятно уже то, что несмотря на колоссальную сложность поставленных задач и непредсказуемую, как и от всяких фундаментальных исследований, отдачу, работа над ними все-таки идет. Как говорится, глаза боятся, а руки делают, — и это единственно правильный
Нельзя сказать, чтобы Intel изобрела здесь что-то новое, — в Штатах даже зарегистрирована корпорация The Programmable Matter, не говоря уже о десятках фирмешек и исследовательских групп, пытающихся найти ключ к давней мечте человечества, хорошо знакомой соотечественникам по сказке о Емеле и щучьем велении. Ну а как еще называть статью в Nature, где так красочно расписывается столь тотальное распространение нанороботов в 2100 году, что дома больше не строят, а сбрасывают грузовик «программки» — а дальше сам собой вырастает хошь коттедж, хошь электростанция, хошь завод? Тем не менее Intel — первая компания на моей памяти, которая публично демонстрирует прототипы элементарных «кирпичиков» программируемой материи. Правда, поскольку Programmable Matter — ныне торговый знак, то называется это другими словами, в основном «клэйтроникой» (clay по-английски — глина).
Собственно, идея, лежащая в основе всей концепции, — это то, что можно создать контролируемую материю, используя специальные искусственные «атомы» — крошечные наноавтоматы, способные целенаправленно взаимодействовать друг с другом. «Клатомы» соответственно должны каким-то образом уметь произвольно прицепляться и отсоединяться, перемещать себя друг относительно друга и — что тоже немаловажно — обмениваться информацией о том, что им необходимо сделать. На IDF специалисты Карнеги-Меллона показывали с десяток разных опытных моделей «клатомов», выполненных в макроскопическом масштабе, на которых идет отработка первых идей, — правда, пока не для объема, а для плоскости. Модельки, оснащенные электромагнитами (которые служат и для соединения, и для перемещения клатомов), действительно ползали по столу и неким образом взаимодействовали — хотя, увы, лишь в очень примитивных вариантах и не больше двух-трех клатомов за раз. Впрочем, в наш компьютерный век большого числа железок и не требуется, — на демонстрации был показан ролик, иллюстрирующий поведение большой системы, на которой отрабатывается технология управления миллионами и миллионами клатомов. Дело ведь не только в том, чтобы создать отдельные элементы и миниатюризировать их — нужно еще заставить их по сигналу извне совершать осмысленные действия в условиях, когда даже координаты отдельных клатомов будут внешней системе толком неизвестны. Выход пока видят в разработке принципиально новых управляющих систем, которые будут работать по псевдослучайному принципу, создавая своеобразный «тепловой шум», когда в массиве атомов случайным образом перемещаются незаполненные «дырки» и как-то этот шум на границе нужным образом корректируя — в демонстрации, например, клатомы из бесформенных «озер» образовали нечеткое и колеблющееся, но тем не менее отчетливо читающееся слово «intel».
Показали и первые миниатюрные (доли миллиметра) сэмплы клатомов, произведенных с помощью более или менее стандартного литографического процесса. Проблему создания нанороботов сложной структуры в Карнеги остроумно предлагают решать, «вытравливая» традиционными методами плоский рисунок — своеобразную «развертку» робота, а затем «склеивая» его особыми способами в объемный объект. Выглядит довольно любопытно, но без микроскопа в том, что получилось и демонстрировалось в небольшом контейнере, конечно, не разберешься.
Тем не менее рассчитывать на появление в обозримом будущем хоть каких-то работающих прототипов, несмотря на все вышесказанное и на оптимизм моих коллег, вспоминающих, какой путь прошли за пятьдесят лет жесткие диски персональных компьютеров, я бы не стал. Например, те же модельки с электромагнитами непрерывно потребляют довольно много электроэнергии, рассеивая ее в виде тепла, — представляете стену дома, которая греется как электрочайник и рассыпается пылью при отключении электричества? Специалисты пытаются решить эту проблему, используя не электромагнитные («динамические»), а электростатические силы притяжения, но как они собираются ими управлять, на лету перераспределяя по пылинке клатома заряды, для меня осталось загадкой. Электромагнитному варианту могли бы здорово помочь высокотемпературные сверхпроводники, которые бы сняли проблему энергозатрат, но их создание, очевидно, относится к вполне сопоставимым по масштабам сверхзадачам человечества. Даже чисто механически непонятно, удастся ли обеспечить движение не пары атомов друг относительно друга, а «дырки» в большом массиве, на который действуют внешние силы. Да и программирование клатомов для 3D и в реальном масштабе времени, несмотря на все демонстрации, — тоже нерешенная проблема. Потребуется совершенно новый подход к программированию сверхбольших систем, а исследователи здесь лишь в самом начале пути.
Куда реалистичнее звучат рассказы о других реализациях объявленной Intel общей концепции «управления физической материей». Например, антенны для систем подвижной связи, самостоятельно изменяющие размеры и положение в пространстве для оптимального приема сигнала. Примеров соответствующей реализации, правда, на Форуме показано не было, но в принципе чисто
Если клэйтроника на Форуме все-таки проходила под грифом экзотической диковинки, то о терапроцессорах, позволяющих на старой технологии за счет радикально новых идей получить на один-два порядка большую производительность, нежели у традиционных «многоядерников», говорили более чем серьезно — эта тема составляла содержание не только презентаций, но и технических сессий для профессионалов. Впрочем, главная идея здесь тоже далеко не нова и даже вполне процветает в коммерчески выпускаемом «железе», начиная с Cell и заканчивая специализированными сопроцессорами от ClearSpeed. Ее суть в том, чтобы заменить одно сложное ядро (на котором вычислительные блоки нередко занимают менее 10% площади кристалла, а остальное уходит на то, чтобы вовремя подготовить для этих 10% данные и инструкции) набором из, скажем, пяти более простых, в каждом из которых вычислительные блоки займут половину площади ядра. Естественно, загрузка этих блоков из-за простоты обслуживающей их электроники будет невысока, а потому их быстродействие — заметно ниже, но потенциальный выигрыш за счет пятикратного увеличения числа вычислительных ресурсов перекроет все. Побочные эффекты — увеличение тактовой частоты (за счет упрощения) и снижение тепловыделения (за счет него же) — тоже играют на руку подобному подходу. И все было бы замечательно… если б не необходимость заставлять работать эти десятки процессорных ядер «в одной упряжке». Даже оставляя в стороне вопросы программирования параллельного ПО для десятков специализированных ядер, необходимо с достаточной скоростью читать и записывать обрабатываемую ими информацию и передавать ее на другие устройства — в противном случае наш терапроцессор будет большую часть времени ожидать новую порцию данных, и все его быстродействие сойдет на нет.
То, что предлагает Intel, как ни крути, сильно напоминает Cell, только с гораздо большим количеством ядер: если в детище IBM и Sony их всего девять, то в экспериментальном кристалле Intel — добрых восемьдесят (матрица 8x10). И там и там ядра максимально упрощены и функционируют на частоте 3—4 ГГц; и там и там, чтобы снять проблему недостаточной пропускной способности, каждому ядру выделяется кусочек локальной памяти, с которым оно может работать без оглядки на всех остальных; и там и там используется сложнейшая система связи, связывающая отдельные ядра в многомерную сетку, в которой передаются данные. Разница только в реализации: если IBM и Sony используют сравнительно традиционные технологии, то Intel — принципиально новые. Например, в Cell локальная память реализована как упрощенный аналог кэш-памяти первого уровня и является частью кристалла процессора. В терапроцессоре же используется технология трехмерной упаковки оперативной памяти — на подложке строится «сэндвич» из кристаллов оперативной памяти и лежащего над ними кристалла процессора, что позволяет разместить на той же площади куда больше и ядер, и подключенной к ним памяти. В ядрах Cell нет кэш-памяти и тем более — когерентной (хранящей общие для всех ядер данные), в терапроцессоре — есть. В качестве внешнего интерфейса для Cell используется «электронная» технология, для терапроцессора планируется оптический канал на порядок большей пропускной способности и т. д.
Впрочем, хватает и уникальных наработок — например, в терапроцессоре планируется использовать так называемую транзакционную оперативную память, позволяющую объединить несколько операций чтения-записи в одну транзакцию, для которой гарантируется защита от одновременного чтения-записи со стороны других ядер. Например, если у нас есть счетчик — ячейка памяти, к которой обращаются все ядра, каждый раз увеличивая его на единичку, то в «классическом» варианте, когда контроллер памяти просто обслуживает запросы на чтение и на запись от всех ядер, легко может возникнуть следующая ситуация: скажем, первое ядро прочитало текущее значение счетчика, но не успело записать новое, тогда как счетчик — с уже устаревшим значением — читает второе ядро. Если, например, в счетчике было записано число 11, то и первое, и второе ядро в этом случае прочитают «11», вычислят 11+1 = 12 и два раза подряд (сперва одно, потом второе) запишут в счетчик это значение вместо правильного — 11+1+1 = 13. Когда же чтение и запись представляют собой одну транзакцию, такой проблемы не возникает — пока первое ядро не запишет в счетчик 12, второе не сможет прочитать его значения. Механизм еще требует доработки и уточнения, но уже понятно, что этот способ намного быстрее, чем сегодняшняя практика «защиты» счетчика, сводящаяся к тому, что, прочитав счетчик, процессорное ядро ставит «блокировку», запрещающую остальным процессорам что-либо читать или писать из памяти, пока туда не будет записан результат вычислений.
Из других интересных наработок отмечу кэш-память с разделением приоритетов (QoS), в которой данные одного приложения интенсивно вытесняются из кэшей определенных уровней, а другого, более чувствительного к задержкам оперативной памяти, — остаются там до последнего, причем более часто используемые данные — в кэшах высших уровней; усовершенствованные технологии виртуализации, направленные на использование с операционными системами и языками программирования следующих поколений, «заточенных» под высокопараллельные вычисления; интеграция высокоскоростных средств ввода-вывода, вплоть до сетевого контроллера, непосредственно на кристалл процессора.