ЖАНРЫ

Джордж и код, который не взломать
Шрифт:

Глава шестая

На следующий день, когда Джордж проснулся – а проснулся он поздно, – в доме было непривычно тихо. Даже негодующие крики, какими близнецы каждое утро встречали свой завтрак, не доносились с кухни. Джордж потянулся под одеялом, пошевелил пальцами ног – и вспомнил свой вчерашний день: Анни с её проектом про то, как жизнь попала на Землю из космоса, обезумевшие банкоматы, которые плюются деньгами… Надо наконец выяснить, что происходит! Спрыгнув с кровати, Джордж быстро оделся и помчался вниз.

Сцена, которую он увидел, была поистине идиллической. Юнона и Гера мирно, кротко сидели на стульчиках и ели завтрак, не плюясь и не фыркая. Он совершенно растерялся. Обычно кухня во время завтрака близнецов походила на театр военных действий. Каким образом демоны превратились в ангелов?

Мама и папа улыбались Джорджу. Видя, как вытянулось его лицо, мама совсем развеселилась.

– Мы ведь тебе говорили, что однажды они вырастут и поумнеют, – сказала она.

– Что, за одну ночь?!

– Видишь ли, – снисходительно сказал папа, – дети быстро меняются. Ты был точно та…

Но договорить папа не успел: домашний кексик, описав причудливую траекторию, врезался ему прямо в челюсть. По кухне разлетелись крошки, а близнецы залились счастливым смехом. За первым кексом последовал второй, потом третий; они бомбардировали бедного папу, как обломки космической породы – молодую Солнечную систему.

Джордж счёл это удачным моментом для бегства. Он выскользнул за дверь, ведущую из кухни в сад, и крикнул:

– Я к Анни!

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

– Приве-е-ет!

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

Конечно же, Анни восседала на горе подушек напротив Космоса. Этот компьютер был их верным другом и помощником и не раз выручал из беды. Правда, он не всегда работал безупречно: однажды, прокладывая Джорджу и Анни путь домой, Космос не справился в одиночку, и если бы не помощь другого суперкомпьютера, друзья остались бы на веки вечные в далёкой – совсем не Солнечной! – системе планет. А ещё раньше Космос чуть не взорвался от перегрузки, вытаскивая Эрика из чёрной дыры. Случались дни, когда этот компьютер вёл себя капризно и непредсказуемо…

И сегодня был как раз такой день.

Что такое суперкомпьютер?

Что такое флопс?

Каждый год появляются всё более и более мощные компьютеры. Один из способов сравнить мощности двух компьютеров – проверить, сколько операций с плавающей запятой (floating point operations, сокращённо «флопс») они могут совершить за секунду.

Одна большая система

Какими бы мощными ни были сегодня процессоры, можно попробовать построить гораздо более мощный компьютер, соединив несколько процессоров вместе. Суперкомпьютер – это компьютер исключительной производительности, построенный путём объединения множества процессоров в одну большую систему. Каждый процессор выполняет свою часть работы параллельно с остальными.

Связать процессоры – значит объединить их в сеть; зачастую достаточно просто соединить компьютеры (даже на большом расстоянии) сетями, подобными телефонным, или через интернет.

Чрезвычайно параллельная задача

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

Но недостаточно уметь решать такие задачи, чтобы называться суперкомпьютером, – ведь большинство интересных задач не являются чрезвычайно параллельными. Процессорам приходится обмениваться промежуточными данными; суперкомпьютер должен уметь одновременно решать и обычные задачи, и «распараллеленные» независимые задачки. Этим суперкомпьютер отличается и от обычных компьютеров, связанных в сеть, и от больших серверов.

Хороша ли сеть?

Чем качественнее сеть, тем производительнее параллельные вычисления. Качество сети определяется:

• пропускной способностью – количеством информации, которое можно передать за секунду (чем больше, тем лучше);

• задержкой – временем между отправкой сигнала и получением ответа (чем меньше, тем лучше).

Доступ к памяти

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

Системы с симметричной многопроцессорной обработкой (SMP – Symmetric Multiprocessor)

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

Системы с неравномерным доступом к памяти (NUMA – Nonuniform Memory Access)

В таких системах производительность тем хуже, чем дальше процессор от памяти, которую он хочет прочитать или в которую ему нужно писать. Как и SMP, эти системы используют разделяемую (общую для всех процессоров) память, и программисту приходится заботиться о том, чтобы данные хранились как можно ближе к процессору, который их использует. Системы NUMA дешевле, чем SMP.

Интерконнект

Это специальная высококачественная сеть для соединения изолированных компьютеров (в такой сети их обычно называют узлами). Процессор в одном узле не видит памяти в других узлах, поскольку это суперкомпьютер не с общей, а с распределённой памятью. Программисту приходится добавлять в программу код для передачи данных между узлами. Суперкомпьютеры, в которых для узлов используются обычные компьютеры, называются кластерами.

Современные компьютерные системы

Зачастую современные компьютеры включают в себя элементы, которые раньше имелись только в суперкомпьютерах. Например, у одного процессора может быть несколько ядер, и каждое действует как отдельный процессор – это система SMP, где несколько ядер имеют непосредственный доступ к общей памяти. У более дорогих компьютеров есть несколько разъёмов для процессоров, каждый из которых – своего рода система

NUMA, где одному разъёму соответствует набор ядер и их память.

Графический процессор (GPU) для суперкомпьютеров

Это новшество по вкусу всем любителям компьютерных игр. Оно необычайно быстро «создаёт» пиксели для экрана во время игры. Благодаря своей архитектуре эти процессоры идеально подходят для некоторых видов задач в суперкомпьютерах.

Флопс, мегафлопс… экзафлопс!

1 мегафлопс = 1 миллион флопс.

1 гигафлопс = 1 миллиард флопс (1000 мегафлопс).

1 терафлопс = 1000 гигафлопс.

1 петафлопс = 1000 терафлопс.

1 экзафлопс = 1000 петафлопс.

Глядя на эту табличку, легко увидеть, как выросла производительность компьютеров в последние несколько десятилетий:

• 1998: компьютер с одним процессором способен достичь производительности в 500 мегафлопс.

• 2007: множество одиночных процессоров, которые могут «разогнаться» до 10 гигафлопс.

• 2013: есть компьютеры с двумя процессорами по восемь ядер, каждое из которых теоретически имеет производительность в 20 гигафлопс. Таким образом, максимальная производительность всей системы – 320 гигафлопс. По сути, это система NUMA: общая память, шестнадцать независимых ядер… Но сегодня никому и в голову не придёт называть это суперкомпьютером – разве что мы соединим в одну сеть несколько сотен таких машин.

• Существует список пятисот самых мощных суперкомпьютеров – Top500 (www.top500.org), который обновляется дважды в год. Сейчас, на момент написания книги, большинство машин из этого списка находятся на уровне нескольких сотен терафлопс.

Однако в первой строке списка -машина с 33862,7 терафлопс (33,8627 петафлопс). Это несравненно мощнее компьютеров конца XX века!

Первые экзафлопс-компьютеры могут появиться всего через несколько лет. Можешь представить себе эту мощность?!

– Он, кажется, не в духе, – наморщив нос, пожаловалась Анни.

Космос ничего не сказал (что было совсем на него не похоже), зато чихнул.

– Он что, простудился? – спросил Джордж.

– Он всё время в дурном настроении, – сказала Анни. – Ноет, что заболел. Это как-то не в его стиле.

– Да, пожалуй, это странно! А чем ты хотела с ним заняться? – Джордж придвинул стул и сел рядом с Анни.

– Своим проектом, – ответила она.

– Давай вместе! – быстро сказал Джордж.

– Давай! – Она вывела на экран две фотографии и расположила их рядом. – Ты небось думаешь, что на обеих фотографиях Эрик? А вот и нет. На одной и правда папа, то есть Эрик.

А на второй – робопапа, то есть Эрбот.

– Ты хочешь сказать, – подхватил её мысль Джордж, – что один из них живой, а второй – неживой?

– Верно, – подтвердила Анни. – Но почему так? В чём главное различие?

– Н-ну… – замялся Джордж. – Один сам решает, что ему делать, а другой нет?

– А вот и нет, – сказала Анни. – У Эрбота есть панель управления, но он запоминает все предыдущие команды и принимает решения исходя из своего опыта!

– Одному необходимы еда, вода и сон, другому нет?

– Эрботу нужна энергия, – сказала Анни. – А мой папа… Короче, это ещё вопрос, необходим ли ему сон.

Джордж рассмеялся. Эрик был знаменит тем, что ему хватало трёх часов сна в сутки. Этот факт был прекрасно известен его соседям, поскольку в предрассветные часы он предпочитал работать под громкую оперную музыку.

– А где, кстати, Эрбот? – спросил Джордж.

– Заряжается, – сказала Анни.

– Один из них дышит, – продолжал гадать Джордж, – а второй нет? У одного внутри желудок, сердце и прочие органы, а у другого провода и всё такое…

– Вот! – сказала Анни. – Я как раз думаю о том, из чего они оба состоят. И составляю список элементов жизни.

– И что там у тебя на первом месте?

Она прокрутила экран вниз, до надписи крупными буквами: УГЛЕРОД.

– «Всем известно, – вслух прочёл Джордж, – что родина углерода – звёзды». Хм!

– Что? – встрепенулась Анни. – Ошибка? Я же включила проверку орфографии.

– Нет, ошибок нет, – успокоил её Джордж. – Просто я не уверен, что это всем известно.

– А, хорошо. – Она стёрла начало предложения и начала заново: «Как известно большенству…»

– После «ш» не «е», а «и», – сказал Джордж.

– Ой, я думала, у меня режим автокоррекции! – Анни включила функцию автоматического исправления ошибок.

– Но дело не в этом, – продолжал Джордж. – Просто люди обычно мало что знают про углерод. В смысле, это ты знаешь, что углерод пришёл к нам со звёзд, потому что твой папа учёный, и у него есть Космос, и он показывал нам рождение и смерть звезды – как в конце жизни звезды происходит взрыв сверхновой. А другие люди, как правило, знать не знают, что химические элементы происходят из звёзд…

Поделиться с друзьями: