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

Изначально название «бионика» было образовано путем сложения biology + electronics, однако по-русски его обычно используют и в более широком смысле. Среди работ этой направленности заметно выделяется проект SpiNNaker Манчестерского университета. Поставленная его авторами цель предполагает создание компьютера, способного моделировать массовый параллелизм и надежность мозга. В мозгу обмен данными между нейронами осуществляется посредством дендритов — ветвящихся отростков, воспринимающих сигналы от других нейронов, рецепторных клеток или от внешних раздражителей. Они проводят нервные импульсы к телу нейрона, а в контексте данного проекта дендронные импульсы представляют собой пакеты данных, которыми обмениваются между собой узлы сети. Вот почему для проекта выбрано название SpiNNaker (Spiking Neural Network architecture). Несмотря на фантастичность замысла, проект вполне реален, а создаваемая система обещает быть работоспособной, поскольку базируется на многолетних научных исследованиях, проводившихся в Манчестерском университете, и наработках компании ARM, имеющей более чем тридцатилетнюю историю.

Проект SpiNNaker делится на две составляющие: электронная первооснова и ее бионическая системная организация. Физически система будет состоять из пучков (Fascicle), построенных на специально создаваемых микросхемах SpiNNaker Chip, — в первом варианте это 20-ядерный процессор архитектуры ARM с собственной памятью. Каждый пучок объединяется с соседями посредством высокоинтегрированного сетевого модуля (Network-on-Chip, NoC), что позволяет создавать конфигурации, состоящие из сотен тысяч процессоров. В качестве процессорной основы используются ядра ARM968E-S — для экспериментальной версии Fascicle созданы четырех- и восьмиядерные процессоры, которые, благодаря преимуществам встроенных технологий, обеспечивают низкую стоимость (около 2 долл.) и потребление ниже 1 Вт.

Проектом руководят два ветерана, Стив Фарбер и Эндрю Браун. Фарберу ближе первая составляющая, а Брауну — вторая. Теоретические предпосылки к проекту SpiNNaker были изложены в их совместной книге Temple Computational Intelligence: A Compendium.

Профессор Манчестерского университета Стив Фарбер сейчас переживает вторую волну внимания к себе со стороны общественности. Первая пришлась на начало 80-х, когда он был одним из руководителей двух «великих» британских компьютерных проектов: компьютер BBC Micro и процессор ARM. С тех пор Фарбера называют отцом ARM, а BBC Micro не вышел за пределы острова, поскольку в остальном мире в его образовательной нише господствовал Apple и его клоны (например, отечественные «Агат» и «Правец»). Однако на родине он был выпущен в количестве 1,5 млн штук и в течение 15 лет оставался основой преподавания компьютерной грамотности в Великобритании. Что касается ARM, то в рекомендациях эта архитектура не нуждается — она лицензирована десятками производителей, тиражирующих ее в неподдающихся подсчету миллиардах экземпляров, и по суммарному объему выпуска с ARM не может сравниться ни один другой процессор.

Вторая жизнь асинхронных процессоров

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

Леонид Черняк

Таким образом, основа проекта SpiNNaker была заложена в те десять лет с 1980-го по 1990 год, когда Стив Фарбер работал в компании Acorn, где руководил разработкой аппаратного обеспечения. Перейдя в Манчестерский университет на должность профессора, Фарбер организовал исследовательскую группу Amulet и сосредоточил свое внимание на создании асинхронных версий ARM. Его коллега профессор Университета Саутгемптон Эндрю Браун не столь известен, его карьера развивалась в обратном направлении, он начал с академических исследований и пришел к практике, создав две компании. Он не специалист в электронике, и его взгляды много шире инженерных. Вот что он написал: «Среди тех, кто занимается электроникой, лишь очень немногие знают о существовании чего-то еще, что не связано с бесконечной гонкой в надежде успеть за экспоненциальным ростом возможностей в соответствии с законом Мура. Но есть предел сложности, он почти достигнут, и больше не нужны устройства, для которых главным критерием является быстродействие. Востребованы уже сейчас и еще больше будут востребованы в будущем разумные устройства, а это значит наступает наше время».

Нет ничего странного, что с такими амбициями группа Amulet сосредоточила свое внимание на проекте SpiNNaker, ставящем конечной целью создание такой модели мозга, которую можно было бы соотнести с реальным мозгом. Человеческий мозг содержит от 80 до 100 млрд нейронов, а суперкомпьютер, состоящий из 1 млн процессоров, каждый из которых сможет воспроизвести 1000 нейронов, будет моделировать мозг всего в 100 раз меньше человеческого. Авторы надеются, что на кремниевом аналоге мозга им удастся симулировать сложные нервные сети и в конечном счете создать модель для исследования мозговых процессов.

Новый закон Мура

Фарбер и Браун убеждены в том, что рост плотности размещения транзисторов по закону Мура продолжится, и это скоро приведет к достижению некоторого логического предела сложности одного ядра. Тем не менее прогресс полупроводниковых технологий, обеспечивающих рост плотности, неизбежен, поэтому единственный выход из создавшегося положения состоит в увеличении числа простых ядер на кристалле, что может привести к «новому закону Мура», а именно к удвоению числа ядер с тем же периодом, то есть каждые 18 месяцев. Если дело обстоит именно так, то через 20-25 лет на одном кристалле можно будет разместить миллионы ядер. В таких условиях применяемые сегодня для создания параллельных систем методы, используемые сейчас в системах с общей памятью или в системах с распределенной памятью, не помогут. Фарбер и Браун считают, что ученые должны искать альтернативные ответы на вопрос: как жить в условиях, когда стоимость процессора станет ничтожно малой, а количество процессоров в системах -- неограниченно большим? До сих пор не создано какого-либо научного базиса для ответа на этот вопрос, поэтому не остается ничего другого, как обратиться к Природе и понять, как она справляется с параллельными процессами.

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

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

Вот такой инструмент и создается в рамках проекта SpiNNaker, в основе которого лежат несколько предположений, роднящих его с биологическими системами: асинхронность — для преодоления сложности тонкой и грубой гранулярности, ограничений закона Амдала; виртуализация топологии интерконнекта — для развязывания логики и физики; низкое энергопотребление, которое в условиях неограниченного числа процессоров становится весьма актуальным.

Принципы SpiNNaker

Указанные системные свойства могут быть реализованы при условии высочайшей отказоустойчивости, а для этого необходимо решить классическую задачу построения надежной системы из ненадежных компонентов. Обычно отказоустойчивость большинства «локальных систем» повышают за счет дублирования, например путем кластеризации. Иные подходы можно обнаружить в «глобальных системах» — в Интернете или в новейших гигантских облачных ЦОД, где допускается точно запланированный выход из строя отдельных компонентов с автоматическим перераспределением их функций на оставшиеся (метод плавной деградации). В биологических системах все то же самое реализуется на уровне одного устройства — мозга. Человек теряет по одному нейрону ежесекундно и при этом не замечает происходящего, то же самое необходимо перенести на уровень устройства. Никто не предполагает, что нейронная сеть SpiNNaker откроет решение этой головоломки единовременно, но хотя бы позволит найти подходы.

Из-за необходимости все делать в такт невозможно поднять производительность отдельных частей и всей системы в целом, поэтому тактовый генератор называют еще комитом (так называли во времена Древнего Рима командира гребцов на галере) — подчиненность частоте остается неизбежным злом современных компьютеров. Однако в Природе нет тактирования, и нечто подобное пытаются реализовать в асинхронных процессорах, но пока не слишком удачно, поэтому в SpiNNaker принято паллиативное решение — ограниченная асинхронность (bounded asynchrony): чем выше системный уровень, тем ниже синхронность. Внутри себя узлы-пучки (Fascicle) работают по традиционным синхронным принципам, между собой в квантованные промежутки времени они обмениваются микропакетами (Spike), а в целом в системе синхронизация отсутствует.

 

Топология SpiNNaker

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

Энергетический принцип создания SpiNNaker сводится к тому, что используются ядра встроенного процессора с минимальным потреблением. Внутриядерный процессор имеет производительность, примерно сопоставимую с мощным процессором современного ПК, но при этом потребляет не более 1 Вт, что гораздо лучше, чем у графических процессоров GPGPU.

Архитектура SpiNNaker

Системная архитектура SpiNNaker выполнена в виде двухмерной тороидальной сети микропроцессоров (Chip Multiprocessor, CMP), связанных между собой посредством Ethernet. Эта сеть имеет треугольные ячейки, чтобы можно было образовывать пути для обхода дефектных узлов. Каждый узел CMP состоит из двух чипов: система на кристалле SpiNNaker MPSoC и гигабитная микросхема памяти DDR SDRAM. В свою очередь каждый чип SpiNNaker MPSoC содержит 20 ядер ARM968, связанных в сеть двумя (один на вход, другой на выход) контролерами NoC с внутренней системой синхронизации: System NoC для выполнения общих функций управления при доступе к системным ресурсам и Communications NoC, передающий информацию между пучками.

Сoncurrency на всех уровнях

 

Кремниевая компиляция, из прошлого в будущее

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

Леонид Черняк

Архитектура и принципы построения SpiNNaker обеспечивают системе и приложениям качество, для которого используют слово concurrency, обычно переводимое как параллелизм, что не вполне точно. В русском языке нет одного слова для обозначения синхронизации и совмещения по времени коллективной работы различных компонентов, но это не параллельность, а скорее взаимная совмещаемость. Синонимами concurrency можно считать: сосуществование, коинцидентность, а антонимами: конфликт, рассогласованность.

Проблема согласованной работы сотен тысяч узлов сети SpiNNaker усугублена тем, что перед нами однородная система с большой степенью распределенности плюс к тому не имеющая явно выраженных механизмов синхронизации. Следовательно, для таких процедур, как, например, первоначальная загрузка и загрузка приложений и для других служебных процедур, требуются какие-то иные, чем обычно принято, механизмы. Проблема решается путем выделения одного из 20 ядер узла и передачи ему управляющих функций монитора процессов (Monitor Processor). В этом качестве может быть использовано любое ядро, что необходимо для обеспечения надежности, а выбором конкретного ядра и системными функциями в каждом из пучков управляет системный контроллер (System Controller). В процедуре обмена данным и между узлами сети используются: многоадресные сообщения mc (multicast), предназначенные всем узлам; сообщения для обмена данными между парными узлами p2p (point-to-point) и между ближайшими соседями nn (nearest-neighbour). Все перечисленное вместе реализует алгоритмы заливки (flood fill) системного и прикладного ПО. Посредством трех типов сообщений можно создать модель, примерно отражающую принципы работы мозга, хотя ни Фарбер, ни Браун не переоценивают возможные результаты своих исследований.

В США в 2008 году стартовал близкий по своим целям проект DARPA SyNAPSE, поддержанный Hughes Research Laboratories, HP и IBM, а также сообществом из шести университетов, среди которых Стэнфордский и Корнеллский. Этот проект заметно масштабнее и пока еще лучше финансируется, поэтому здесь поставлены более радикальные задачи, а для моделирования мозга в нем используются не обычные процессоры, а так называемые нейроморфные компьютеры. Работа базируется на трудах профессора Калифорнийского технологического института Карвера Мида, известного тем, что именно он сформулировал в форме закона известное наблюдение Гордона Мура, предложил средства для проектирования микросхем и многое другое.