Программирование квантовых компьютеров: джентльменский набор издательства «Питер»
Мы очень стараемся отслеживать тренды ещё на этапе их формирования и готовить для русскоязычных читателей наиболее актуальные книги. Сегодня я покажу, как это происходит. Для примера возьму довольно необычную тему — программирование квантовых компьютеров.
Эта история началась 4 года назад, и теперь, в конце 2020-го, у нас уже сформирован небольшой, но весьма доступный и актуальный портфель.
В 2016 году к нам в издательство от зарубежных коллег пришла очень занимательная книга: The Future X Network: A Bell Labs Perspective. Если вы раньше не слышали о Лаборатории Белла — обязательно поинтересуйтесь. Весьма незаурядная организация!
К сожалению, на русском языке она издана так и не была. И всё же мы её внимательно изучили. Это не абстрактная футурология, а очень серьёзное исследование с прогнозами до 2025 года, которые глупо игнорировать. Более того, проверяя сейчас, спустя 5 лет после составления этих прогнозов (книгу писали в 2015-м, ещё до того как их купила Nokia), соответствие их действительности очень впечатляет.
Среди многих тем наше внимание особо привлекли те, что касались вычислений. Спрос и предложение, технологии и перспективы. Здесь-то мы и получили первые серьёзные сигналы о том, что облачные вычисления и инфраструктура, квантовые компьютеры из предположений и экспериментов превращаются в осязаемый, ускоряющийся фактор трансформации всего IT (а чуть позже и не IT тоже).
С этими мыслями и чувствами мы начали искать.
Всё что касается облаков, машинного обучения и биг даты — весьма понятно, наши книги по этой теме вам известны. Поэтому мы искали подтверждение спроса (в это время как раз активно рос Хаб квантовые технологии). Искали авторов и книги, которые будут полезны читателям на нынешней стадии развития квантовых технологий и в недалёком будущем.
Наконец ближе к концу 2018 года желания сошлись с возможностями. Мы нашли и приняли в план издательства нашу первую книгу из этого портфеля: «Квантовые вычисления для настоящих айтишников».
Почти год прошёл от принятия решения до постановки книги на полки розничных и виртуальных магазинов.
Раз уж с практикой на тот момент было затруднительно, ведь ещё не было работающих машин с адекватного размера квантовым объёмом, мы рассудили, что нашей аудитории больше пригодится понятный и точный путеводитель по теории квантовых вычислений. В книге соблюдён тонкий баланс между количеством вопросов, которые необходимо обсудить с читателем, и глубиной «дебрей», в которые придётся залезть, чтобы результат не был обманчиво упрощён.
В качестве нашей утренней звезды выступила книга от The MIT press, впоследствии ставшая бестселлером на Amazon. К слову, мы приняли книгу к изданию почти за полгода до её релиза на Западе.
Дальше случилось неожиданное!
На CES 2019 был представлен Первый коммерческий квантовый компьютер — IBM. То есть мы, конечно, предполагали, что IBM будет активно работать в этом направлении. Однако их успехи превзошли наши ожидания.
Но что важнее — мы получили сигнал о том, что следует заняться книгами не только по теории, но и по практике программирования квантовых компьютеров. И, не дожидаясь перитонита издания первой книги, было решено перейти от прощупывания темы сразу к формированию линейки литературы.
Прошерстив все варианты, несколько месяцев спустя мы выбрали книгу от Владимира Силвы — активного исследователя и разработчика, работающего в различных подразделениях IBM, связанных как раз с перспективными технологиями и крупномасштабными вычислениями.
Нам было понятно, что IBM становится лидером квантовой гонки. У них достаточно опыта, ресурсов, клиентов и решимости для того, чтобы сделать из новейшей технологии настоящую индустрию. Ну и ещё удалось выудить из их научных публикаций и буклетов-гайдов для бизнеса интересную и убедительную информацию о ближайших планах/достижениях. Из всего следовало, что по крайней мере в ближайшее десятилетие именно их стек технологий будет стандартом «продакшена». Конечно в тех пределах, в которых можно говорить о продакшене столь молодой технологии.
«Разработка с использованием квантовых компьютеров» подойдёт для разработчиков, уже владеющих хотя бы базовыми знаниями в CS и основами языка Python. Книга предназначена для формирования навыков работы как с симулятором, так и с настоящим квантовым компьютером, к которому безвозмездно даёт доступ IBM. Автор учит нас пользоваться специальным фреймворком от IBM (пишем код на Python, фреймворк сам транслирует его в команды для железа и оптимизирует их), а также предлагает минимальный необходимый набор теории. Есть и несколько небольших учебных проектов, в которых наглядно реализован особый подход к решению задач, с использованием преимуществ квантовых вычислений. В общем, идеальный вариант для тех, кто любит сначала поиграть, покрутить и лишь потом решать, сколько тратить времени на углубленное изучение.
Эту книгу мы успели выпустить вовремя, в этом же месяце прошёл CES 2020, IBM и первое настоящее коммерческое применение нового квантового компьютера. Прошёл и полностью подтвердил все предположения и заявления, которыми мы руководствовались.
Научного редактора для этого издания я нашёл на Хабре (Михаил Коробко aka Shkaff). Наверняка многие из вас читали его увлекательные посты о гравитационной астрономии и квантовых технологиях, благодаря которым она (астрономия) стала возможна.
Кстати, тираж книги уже почти распродан. Если она заинтересовала — убедительно советую не откладывать покупку, иначе придётся довольствоваться электронным вариантом.
Третьей книгой в нашем портфеле стала «Программирование квантовых компьютеров. Базовые алгоритмы и примеры кода».
Как понятно из названия, это нечто среднее между предыдущими двумя. С одной стороны, мы изучаем что-то довольно фундаментальное — алгоритмы. Хотя и гораздо более динамичное, чем сами основы квантовой физики и квантовых вычислений, которые обсуждали в «Квантовых вычислениях для настоящих айтишников». Практические задачи перед квантовыми компьютерами только начинают ставить, и ансамбль алгоритмов ещё долго будет пополняться. Что не мешает приступить к изучению уже созданных, а возможно, и внести собственный вклад и предложить алгоритм сообществу.
С другой стороны, очень внимательно смотрим на то, как же их реализовать с использованием актуальных фреймворков и железа. То есть прикладной характер настоящего времени налицо. Особенно в ситуации, когда большинству разработчиков в принципе мало понятно, как и зачем будут внедряться квантовые вычисления, насколько применимы их нынешние алгоритмические любимцы.
Автор выбрал в качестве основной инфраструктуру Microsoft — второго, на наш взгляд, игрока этой гонки. Публичные инструменты, тот же Q#, они начали развивать раньше IBM, он даже замечен в профильных российских программах подготовки магистров. Таким образом, это решение использовать наработки Microsoft не идеологическое, а вполне прагматичное. Тем не менее, это не книга с игрой в одни высокотехнологичные ворота. Например, вот так автор соединяет квантовую физику, железо, софт и теорию программирования:
Если вы хотите освоить телепортацию, лучше всего опробовать ее в деле. Учтите, что на протяжении всей человеческой истории до момента написания книги лишь несколько тысяч людей выполняло физическую телепортацию какого-либо рода, так что даже выполнение следующего кода ставит вас в число первопроходцев. Для данного примера вместо системы моделирования мы воспользуемся реальным пятикубитным QPU компании IBM (рис. 4.1). Вы сможете скопировать пример кода из листинга 4.1 на сайт IBM Q Experience, щелкнуть на кнопке и убедиться в том, что телепортация прошла успешно.
Рис. 4.1. Микросхема IBM очень мала, так что перемещение кубита будет довольно коротким; на иллюстрации и схеме выделены части QPU, между которыми будет происходить телепортация
Для программирования IBM Q Experience можно использовать OpenQASM и Qiskit. Обратите внимание: в листинге 4.1 содержится не код JavaScript, предназначенный для выполнения в QCEngine, а код OpenQASM, предназначенный для выполнения в облачном интерфейсе IBM (рис. 4.2). Выполнение этого кода позволит вам не смоделировать, а реально выполнить телепортацию кубита в исследовательском центре IBM в Йорктаун Хайтс (Нью-Йорк). Мы подробно опишем, как это делается. Подробное рассмотрение этого кода также поможет вам точно понять, как работает квантовая телепортация.
Пример кода
Этот пример можно выполнить онлайн по адресу http://oreilly-qc.github. io? p=4–1.
Листинг 4.1. Телепортация с проверкой
include "qelib1.inc";
qreg q[5];
creg c[5];
// Шаг 1: создать запутанную пару
h q[2];
cx q[2],q[4];
barrier q[0],q[1],q[2],q[3],q[4];
// Шаг 2: подготовить данные
x q[0];
h q[0];
t q[0];
barrier q[0],q[1],q[2],q[3],q[4];
// Шаг 3: отправить
h q[0]; h q[2];
cx q[2],q[0];
h q[2];
measure q[0] -> c[0];
measure q[2] -> c[2];
barrier q[3],q[4];
// Шаг 4: получить
x q[4];
z q[4];
barrier q[3],q[4];
// Шаг 5: проверить
tdg q[4];
h q[4];
x q[4];
measure q[4] -> c[4];
Научным редактором книги выступил уже известный вам Михаил Коробко aka Shkaff
И теперь краткий анонс четвёртой, ещё находящейся в производстве книги — «Танец с кубитами. Как на самом деле работают квантовые вычисления».
Автор Роберт Сатор (привет TENET, привет Нолан!), вице-президент направления IBM по квантовым компьютерам.
CV автора
Это будет уже четвёртое наше издание о квантовых вычислениях и программировании квантовых компьютеров. Обширное и обстоятельное, больше похожее на классическую компьютерную литературу, к которой вы привыкли. Внутри, конечно, довольно много математики, но вас ведь это не пугает в хороших книгах по Машинному и Глубокому обучению?
Коллеги по опасному бизнесу выделяют книгу как наиболее важную для тех, кто желает заняться квантовыми вычислениями всерьёз.
«Очень нужное и долгожданное пополнение в корпусе литературы по квантовым вычислениям. Свежая, провокационная и глубоко продуманная, с разделами об основных математических инструментах, которые доступны каждому. Настоятельно рекомендую!»
Ilyas Khan, CEO, Cambridge Quantum Computing
Подробнее о книге вы сможете прочитать в нашем блоге в период предзаказа/старта продаж. К сожалению, точной даты я сейчас назвать не могу, сориентирую на начало 2021 года. Советую подписаться на наш блог и/или почтовую рассылку, чтобы не пропустить!
Кстати, раз уж мы весь пост говорим на тему неопределённостей, советую обратить внимание на нашу книгу «Вероятностное программирование на Python: байесовский вывод и алгоритмы». Здесь обошлось без квантовых эффектов, но тоже очень интересно и всё понятно.
Резюмируем. Примерно таким образом в издательстве «Питер» мы работаем над тем, чтобы наши читатели получал доступ к сливкам компьютерной литературы. Конечно, не получится избавиться от некоторого лага с англоязычным миром. Однако мы работаем на опережение, отсматриваем книги зачастую ещё на этапе концепции от западных издательств и вместо вас сортируем сотни книг, вылавливая лучшее! Могу уверенно сказать, что среди локальных (национальных) книжных рынков русскоязычный читатель от IT получает самый широкий и актуальный выбор.