`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Они не возвращаются, они никуда не уходили

Статья опубликована в №48 (665) от 16 декабря

+88
голосов

Вполне возможно, что никто из прочитавших эту статью никогда не увидит описываемое в ней, как говорится, «в живую». Также не исключена вероятность, что у компании, стоящей за интересной разработкой, ничего не получится – времена сейчас не лучшие для попыток внедрения пусть не совсем и не во всем новых, но весьма интересных и многообещающих технологий. И все же...

Они не возвращаются, они никуда не уходили
ILLIAC IV

Давайте попробуем в двух словах обрисовать то, что происходит сейчас с доступными персональными вычислениями (или, если хотите, с массовым компьютингом). Благо все видно невооруженным глазом – как будто внезапно выяснилось, что для повседневного и персонального, основанного на вычислительной технике, очень уж высокая производительность не нужна, но приличное качество визуализации информации, тем не менее, необходимо. Иными словами – лишь бы хватало производительности на браузер, почтовый клиент, какой-нибудь мессенджер, плеер и программу чтения документов, и лишь бы не надо было вглядываться в крохотный экранчик. Результат этого «откровения» – нетбуки, очередная мутация идеи персонального носимого вычислителя. Ее, похоже, восприняли и производители, и потребители (что же касается известного скепсиса в отношении этих КПК-переростков, то он связан скорее всего с обычной грубейшей ошибкой и непрофессионализмом маркетологов, отвечающих за «позиционирование»).

Собственно говоря, это все, что можно сказать об очевидном в нынешнем массовом персональном компьютинге. А теперь – пара слов о неочевидном. В нетбуке как персональном носимом вычислителе ничего нового, по сути, нет. Кроме, конечно, одной важнейшей в инженерии вещи – сочетания массогабаритных показателей, технических характеристик и цены. В остальном – это даже не традиционный, а «заскорузлый» вычислитель, в недалекой перспективе – максимум SMP-архитектуры. И весьма посредственной, по нынешним меркам, производительности. Что означает – ожидать появления принципиально новых классов приложений, вполне возможно, очень нужных именно для носимых персональных компьютеров, не приходится. Из чего, в свою очередь, следует, что нетубки – обычный промежуточный этап эволюции, и, вероятнее всего, они окажутся такими же живучими, как их предшественники – КПК.

Но обратимся к главному персонажу – к пользователю. Сегодня его персональным вычислительным устройствам потенциально и уже за смешные деньги доступна самая разнообразная информация – координатная (GPS-модули уже даже в розницу стоят сущие гроши), об ускорениях и ориентации в пространстве (микросхемы акселерометров и гироскопов), видео и аудио реального времени в разных диапазонах (CMOS-микрокамеры, микрофоны), модули сверхширокополосной беспроводной связи, не требующей лицензирования в большинстве стран, и т. д., список получается огромный. Буквально десять лет назад до всех этих источников информации могли дотянуться разве что небожители военных проектов с баснословными бюджетами. Сегодняшняя же их массовая доступность – факт того, что мы на пороге серьезного кризиса персональных вычислений: нам уже доступно море дешевой информации, но у нас нет технических средств, позволяющих «перемалывать» ее с пригодной для реальных задач производительностью. Мир обработки информации в реальном времени – это мир цифровой фильтрации, нелинейных систем управления и распознавания образов. Иными словами – это матрицы, тензоры, системы дифференциальных уравнений, мир сверхвысокой, суперкомпьютерной производительности. И как с помощью традиционной, хоть бы и модной многопроцессорной (многоядерной) SMP-архитектуры соединить в одном устройстве и требуемую производительность, и высокую энергетическую эффективность? Хотя... Может, кому-то нужен постоянно носимый вычислитель массой 300 г, но с 30-килограммовым ранцевым аккумулятором?

Так ли хороша SMP?

Они не возвращаются, они никуда не уходили
Типовая систолическая матрица на основе iWarp

Давайте сразу еще раз уточним – мы не говорим «вообще», нас интересует только область задач, традиционно относящаяся к классу «супервычислений». И в этом контексте можно не заниматься самостоятельным поиском ответа на вопрос, а обратиться к опыту специалистов знаменитой исследовательской организации Sandia National Laboratories. В ней к оценке перспективности вычислительных архитектур подходят очень серьезно, от результатов зависят эффективность и успешность сложных и ответственных научных программ (в Sandia производят испытания ядерного оружия методом моделирования, например). Достаточно заметить, что для решения только одной тестовой задачи оценки SMP-архитектуры специалистам Sandia требуется более месяца. В начале ноября в журнале IEEE Spectrum появилась публикация предварительных результатов работы команды компьютерных архитекторов Sandia под руководством Ричарда Мерфи . Естественно, ничего противоречащего элементарной логике в этой публикации нет – с ростом числа процессоров SMP-архитектуры (многоядерные процессоры, по сути, являются ее овеществлениями) «бутылочное горлышко» разделяемой между ними шины доступа к общей памяти сводит преимущества архитектуры к нулю. Единственный нюанс, специфический для многоядерных процессоров, – невозможность наращивания емкостей кэш-памяти с увеличением количества ядер на кристалле из-за ограниченной площади последнего – еще больше усугубляет ситуацию. В общем, по словам самих специалистов Sandia, «после восьми ядер увеличение их количества неэффективно, а начиная с 16, происходит деградация производительности до уровня двухъядерного процессора». В контексте этой статьи результаты Sandia означают одно – если мы ожидаем появления новых носимых персональных вычислителей, пригодных для решения новых классов задач, в реальном времени использующих данные от множества разнотипных датчиков, то искать подходящие архитектуры в вариациях SMP нет смысла. Точка.

От ILLIAC до SEAforth

В 1976 г., после более чем десятилетней проектной программы, заработал один из самых спорных суперкомпьютеров в истории – ILLIAC IV. Этот в проекте 256-процессорный векторный 64-битовый вычислитель к моменту запуска оказался чуть ли не золотым (начальный бюджет в 8 млн долл. был превышен почти в четыре раза, фактически же реализована была только четверть процессоров) и, по сравнению с детищами Сеймура Крея, хилым. Но все же в нем было много привлекательного – и суперсовременная по тем временам элементная база (чудовищно прожорливые и быстрые микросхемы эмиттерно-связанной логики и тонкопленочные микромодули оперативной памяти), и, конечно, архитектура. ILLIAC IV образовывался цепочкой связанных друг с другом вычислителей, каждый из которых располагал как собственной небольшой оперативной памятью (2048 64-битовых слов), так и разделяемыми с двумя соседями ОЗУ. Больше того, каждый вычислитель мог не только адресовать память своих непосредственных соседей, но и был способен передать данные четырем предшествующим и четырем последующим вычислителям в цепи. Допускалось использование вычислителей в 32-битовом режиме, в этом случае их количество в цепи удваивалось. Координировал работу всех вычислителей отдельный компьютер. Согласно общепринятой классификации ILLIAC IV был представителем SIMD-архитектур (в которых одним потоком команд обрабатывается много потоков данных). По сути, архитектура ILLIAC IV в 1976 г. предвосхитила то, что буквально через пару лет китайский ученый Сян Цзун Гун (Hsiang-Tsung Kung), работающий в американском университете Карнеги Меллон, впервые назвал систолической матрицей.

Они не возвращаются, они никуда не уходили
Транспьютер фирмы INMOS

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

В качестве примера машины с архитектурой систолической матрицы можно привести системы на основе мало кому известных чипов производства... Intel – iWarp. Создавались они в кооперации с академической наукой (тем же университетом Карнеги Меллон) и предназначались в том числе и для космической станции Freedom, проект которой ввиду высокой дороговизны трансформировался в международную космическую станцию (МКС). Согласно проектной задаче предназначение iWarp – требующие высокой производительности приложения, такие как матричные операции и обработка изображений. Кроме того, от процессора требовались относительно невысокая сложность (это, очевидно, связано с надежностью), энергопотребление и цена. Если учесть, что проект iWarp стартовал в 1988 г., а первые микросхемы были выпущены уже через год, можно сказать, что с задачей разработчики справились на «отлично». Кристалл вычислителя iWarp размером 1,2×1,2 см содержал 32-битовый RISC-процессор (с поддержкой 96-битовых сверхдлинных инструкций и операций с плавающей точкой), четырехканальный полностью дуплексный модуль обмена данными с «соседними» вычислителями (40 MB/c), механизмы поддержки виртуальных каналов связи в структурах из вычислителей с буферированием, контроллеры оперативной памяти и прямого доступа к памяти (ПДП). Типовая систолическая матрица на основе iWarp включала в себя четыре вычислителя, каждый – с собственной памятью, и необходимые для поддержки каналов связи микросхемы низкой степени интеграции. К классу систолических матриц относились и некоторые массово-параллельные ЭВМ, созданные с использованием знаменитых транспьютеров фирмы INMOS. К слову, теория систолических матриц (для прикладных математиков они больше форма описания алгоритмов) продолжает развиваться, и заинтересованным читателям можно посоветовать обратить внимание на работы доктора Райнера Кресса (Rainer Kress) и созданное им современное понятие обобщенной систолической матрицы, уже формально называемой KressArray.

В 90-е годы, когда вера в неочевидные следствия из эмпирических правил вроде «закона Мура» еще не омрачалась действительностью, о систолических матрицах не то чтобы совсем забыли. Вычислители такой архитектуры стали нишевыми устройствами, интересными только специалистам. Но, похоже, теперь все меняется. Систолические матрицы приходят в массовый компьютинг, да еще и с чьей помощью!

В истории вычислительной техники совсем немного таких людей. Мы знаем сотни имен блестящих теоретиков, тысячи талантливых инженеров, десятки тысяч удачливых и умных бизнесменов. А вот универсалов, сочетающих в себе и таланты ученого, и подлинный инженерный дар, и, наконец, умеющих находить источники финансирования для своих разработок, совсем немного. Если добавить к этому краткому описанию и удивительную для эпохи «быстровянущих стартапов» верность своим же идеям, имени этого человека многим читателям даже не надо называть. Чарльз «Чак» Мур, создатель одной из самых спорных и, бесспорно, интересных виртуальных машин, сред программирования и языка Forth, архитектор и программист написанных в Forth систем проектирования интегральных микросхем, конструктор, разработавший с помощью его же программ не один Forth-микропроцессор (причем не игрушечный, а используемый в реальных космических программах NASA). При всем этом Мур умудряется на протяжении трех с половиной десятилетий удерживать на плаву и свои коммерческие проекты.

А его новый проект – овеществленная компанией Intellasys (Чарльз Мур – ее технический директор) массово-параллельная система на чипе SeaForth с архитектурой чуть ли не канонической систолической матрицы. Причем эпитет «массово-параллельная» использован не для красного словца – на одном кристалле уже выпускаемой микросхемы 40С18 размещена матрица из сорока (!) независимых асинхронных вычислителей. Каждый из них – специфическая полноценная машина с собственной оперативной и долговременной памятью. Архитектура этой машины в полной мере отражает приверженность Мура идеям минимализма и позволяет добиться поразительных показателей энергетической эффективности – при максимальной загрузке вычислитель потребляет всего несколько милливатт энергии. В силу принципиальной асинхронности SeaForth-системы говорить о тактовых частотах нет смысла, ее быстродействие ограничивается топологией вычислителей и технологическим процессом. Если попытаться оценить его на основании задержек в схеме, можно привести эквивалентную тактовую частоту порядка 600–700 MГц, при этом речь идет не о частоте центрального процессора, а всей системы, включающей и память.

Итак, отдельный вычислитель SeaForth. Чарльз Мур не был бы самим собой, если бы это не была аппаратная стековая машина – основа виртуальной Forth-системы. Правда, в SeaForth архитектура канонической Forth-машины претерпела незначительные, но исключительно важные для специфики практических задач изменения. По сути, это все та же классика Forth-систем – 18-битовая вычислительная машина с двумя стеками (данных – для размещения операндов арифметико-логического устройства, и возвратов – для реализации управляющих конструкций языка). Увы, для решения задач обработки сигналов, например, такой архитектуры явно недостаточно. Высокая эффективность большинства современных цифровых сигнальных процессоров, скажем, основана на быстрых многооперандных командах. А в минимальной Forth-машине команде доступны всего два операнда – вершины стеков данных и возврата. Для преодоления этого ограничения в вычислителе SeaForth предусмотрено относительное новшество в мире Forth – смешанная стеково-регистровая архитектура. Теперь обновленная Forth-машина предоставляет программисту непосредственный доступ как к вершинам стеков, к лежащему под вершиной элементу, так и к двум регистрам общего назначения, один из которых может использоваться в механизмах адресации команд в качестве индексного (с автоинкрементом/декрементом). Использование этих регистров увеличило и без того высокую степень упаковки кодов машинных команд – большинство из них 5-битовые, и в одном машинном слове их помещается до трех (естественно, эта возможность поддержана декодером команд вычислителя). Объемы памяти вычислителя могут поразить незнакомых со спецификой работы Forth-систем людей – по 64 слова ОЗУ и ПЗУ. На самом деле, с учетом упаковки кода, это немало. Да и в небольшой системе команд предусмотрено все, что нужно для задач обработки данных, включая умножение с накоплением.

Главный механизм SeaForth – конечно же, внутренняя система обмена данными. Каждый вычислитель располагает отображенными на адреса собственного адресного пространства памяти четырьмя полудуплексными двунаправленными асинхронными портами, соединяющими его с четырьмя соседями в матрицу. Механизм синхронизации обмена предельно прост – если вычислитель M пытается передать данные вычислителю N, возможны два варианта – или M автоматически переведется во временный останов со сверхмалым потреблением (если в это время N выполняет операцию чтения из соответствующего порта), или же в такой же режим будет переключен N (если ничто не мешает M выполнить передачу). После завершения передачи данных вычислители продолжают исполнение своих программ в нормальном режиме, поэтому обмен данными может использоваться и для синхронизации. Через порты обмена можно передавать не только данные, но и команды – каждый вычислитель имеет уникальную способность выполнять команды непосредственно из порта обмена с помощью... команды перехода по адресу порта. К особенностям системы следует отнести и возможность «широковещания» – каждый вычислитель может и отправлять, и получать данные одновременно от нескольких соседей.

Итак, SeaForth 40C18 уже на рынке. Это фактически первая доступная однокристальная массово-параллельная вычислительная система с пиковой производительностью 26 млрд операций в секунду и энергопотреблением, соответствующим требованиям аппаратуры с батарейным питанием. Ее возможности уже высоко оценены специалистами по встраиваемым вычислителям, причем речь идет не о любителях, а о профессионалах из самых требовательных индустрий (в частности, электронщиках и программистах BMW). Для нее доступна развитая система программирования с эмулятором, позволяющая в краткие сроки и с минимальными инвестициями начать проектные работы. Ее производительности достаточно для обработки в реальном времени сигналов от самых сложных датчиков. Рассмотрят ли ее возможности разработчики персональных носимых компьютеров – вот в чем вопрос.

+88
голосов

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT