Индийский доцент

Как падаван вырастает в специалиста? Через решение задач посложнее. Через ошибки, проваленные проекты. Но кому на производстве улыбается пустить молодого да раннего на ответственный участок, когда на кону будущее компании. Так и учатся десятилетиями. Тому, что было актуально десять лет назад.

Собственно, затем и нужен хороший институт, университет. Пробовать идеи, подходы, методы, ошибаться. Если не лениться, специалист обязательно вырастет. А там, глядишь, возникнет тема жизни.

В сентябре, проездом из Украины в Москве был доцент (associate professor) Мумбайского университета Вирендра Сингх. Искал возможности совместной работы с местными ВУЗами. Познакомились, я послушал, над чем он работает, с кем сотрудничает.

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

Для анализа производительности вычислительных систем группой Сингха совместно с Университетом Саутгемптона разрабатывается clock accurate System C симулятор NIRGAM. Решение академическое, полностью свободное, скалируемое на кластера и сети. Идет интеграция с Graphite, который и у нас в лаборатории Пентковского используют, с MOSSIM, это уже совместно с Валенсийским университетом. Большое внимание уделяется топологии сети суперкомпьютера, активно анализируются SiP решения для интерконнекта.

Совместно с токийским университетом индийцы работают над спецвычислителями на FPGA для расчета цунами. Идея простая — берется универсальный кластер с теми же Intel процессорами, но критические алгоритмы зашиваются непосредственно в FPGA. На сегодня результат — 60 раз ускорение с меньшим потреблением памяти по сравнению с универсальным кластером, цель — 200 раз. Кроме того исследуются т. н. Coarse Grain Reconfigurable Architectures (как это хоть перевести?), нечто среднее между FPGA и ASIC. Очевидно, что чем выше универсальность процессора, тем больше оно проигрывает специализированному решению на задаче, под которую этот спецвычислитель построен. Но перестраивать компьютер под каждый новый набор данных тоже не эффективно. Вот и ищутся разные компромиссы между производительностью на одной задаче и настраиваемостью на класс задач. Для проверки идей силами студентов строится собственный суперкомпьютерный кластер.

Следующее направление исследований группы Сингха — надежность микросхем (fault tolerance). Сегодняшние топологические нормы таковы, что одной прилетевшей альфа частицы из космоса или из корпуса микросхемы, не говоря о скачке напряжения, может хватить, чтобы изменить величину обрабатываемого сигнала. А значит, если не прилагать дополнительных усилий, результаты вычислений могут быть непредсказуемы с недопустимо высокой вероятностью. Проблема решается на всех этапах разработки: ищутся новые геометрии приборов, чтобы не увеличивая размер увеличить устойчивость. На схемотехническом уровне работают над избыточностью. Простой пример — память, хранение данных с избыточностью очевидно увеличивает надежность. Арифметика столь просто не дублируется. Также разрабатываются программные решения. Очевидно, что задача задаче рознь — если смотреть кино, то потерявшийся пиксель большой беды не принесет. А вот при работе с данными без избыточности, при разархивировании, например, или в текстовых документах, любой измененный байт может привести к неприятностям. То есть для некоторых вычислений мы можем потерять качество, а для других нет. Самым простым решением, идущим в русле миниатюризации, является дублирование ядер, заведение десятков и сотен ядер в одном процессоре. Критические вычисления можно в фоне проводить на нескольких ядрах, сравнивать результаты и таким образом отбраковывать неудачные вычисления. Но это увеличивает в разы потребление энергии. Поэтому разрабатываются способы минимизировать подобную переработку. Подобные исследования софта интересны, в частности, Интелу.

Следующий шаг — верификация и тестирование уже готовых микросхем. Тестирование готового чипа — дорогое удовольствие. Для него используется специальные приборы, их работа стоит 3-5 центов в секунду. Протестировать нужно каждый чип, так что одна секунда работы тестера при партии в миллион изделий обходится в десятки тысяч долларов. Естественно, хочется минимизировать количество изделий на тестере и количество времени, которое изделия находятся в тестировании. Значит, максимальное количество логики тестируется в параллель. Таким образом, когда микросхема тестируется, она потребляет энергии в несколько раз больше, чем в обычном режиме и конечно увеличивается вероятность эту микросхему сжечь. Не потому, что она плохая, а потому, что режимы работы закритические, ну и с методологией тестирования легко нахомутать. Надо искать баланс между скоростью и увеличением выхода негодных. Мумбайский университет ведет работы в этом направлении с IBM, LSI.

Еще одна важная тема — отладка микросхем. В случае, когда на продукт давит рынок, как правило есть окно 6-9 месяцев, за которое чип должен быть доведен до ума, вставлен в систему и выставлен на полку. Иначе, грубо говоря, приходит Рождество, игровая приставка не готова — адью доля рынка. Отладка начинается задолго до того, как микросхема готова в кремнии. Симуляция, формальная верификация позволяют проверить несколько тестовых векторов в секунду, но это крайне мало. Даже если все 9 месяцев непрерывно гонять симуляционные тесты, будет покрыта лишь малая часть возможных вариантов. Поэтому как можно быстрее производится предварительный чип, на нем можно гонять на 9 порядков больше тестов, чем на симуляторе. Но возникает другая проблема. Допустим, нашли мы ошибку в поведении микросхемы. А как отлаживать? Ошибка может случиться за миллионы тактов до того, как проявила себя зависанием или неправильным результатом. А RTL, чтобы вставить отладочных печатей, уже нет, только железка. Поэтому встает задача эффективного — с минимальным увеличением площади кристалла и уменьшением быстродействия — добавления в схему отладочных выводов, с помощью которых можно улучшить доступ к промежуточным данным вычислений. Это направление разрабатывается совместно с IBM.

Наконец, еще одна интересная тема, которой занимается Сингх, это patchable hardware design, то есть возможность внесения изменений в чип после того, как он произведен. Эта задача очень интересна для изделий, которые планируется выпускать небольшими партиями. Скажем, нужно 10 000 изделий. Произвели, нашли ошибку. Опять производить? Если планируются миллионы чипов, то так и делают. В случае же небольшой партии это может значить провал всего проекта по финансовым соображениям, производство новой партии стоит больших денег. Поэтому ищутся варианты внесения изменений в уже произведенные чипы. Технология понятна — оставляем пару слоев металла для последующих патчей. Беда в том, что это достаточно сложно организационно и, самое печальное, результирующая схема будет проигрывать порядка 10% по производительности. Если удастся добиться 5%, то подход может быть промышленно интересным.

Любой, окунувшийся в этот ворох задач, начнет впитывать в себя пульс предметной области, что уж говорить о голодных до нового студентах. Может это все стоит безумных денег? Да, оборудованы лаборатории неплохо, но оно не за семью замками, к нему есть доступ других научных команд. Куда важнее связь с реальными задачами — Интел, IBM и другие заказывают исследования, дают гранты студентам. Причем заметим, суммы вовсе не астрономические. 20К долларов в год, которые, по словам Вирендры, выделяются некоторыми крупными компаниями, вполне себе подъемны для российских компаний. Часто исследования для крупных компаний идут келейно, на компанейском оборудовании, результаты оказываются для внутреннего потребления. Но как только возникает нужда диплома или диссертации, требуется публикация, а значит кусочек знаний попадает в общее научное употребление.

Мы встретились уже перед отлетом Сингха в Индию. Несколько дней он ходил по московским ВУЗам, давайте, мол, дружить. Чем Россия, Москва хуже упомянутых центров? Но разговора не получилось. То ли не интересен, то ли не на тех людей выходил. Так что, если вдруг есть интересующиеся совместными научными проектами, имейте в виду: Вирендра Сингх Россию любит, очень хочет работать вместе, в актуальных темах недостатка нет. Да и опыт имеется. С Таганрогом работают над анализом сетевого трафика для выделения вредоносной его части. А чем они занимаются совместно с Анжелой Юрьевной Матросовой из Томска я в следующий раз расскажу.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>