Теперь замолчал Андрей. У него вдруг возникло странное ощущение, будто он еще не проснулся и сейчас, вот-вот, проснется еще раз.
– А сколько считался обычно? – осторожно переспросил он.
– Десять минут.
– Значит, вдвое быстрее? – уточнил Андрей. – Это ведь премия Скотта.
– Получается так.
– Этого быть не может. – Андрей хихикнул, пытаясь разогнать нервное напряжение. – Ты что-то напутал.
– Шесть раз подряд? – усмехнулся Валька.
– Так, ладно, я еду.
– Никому не говори пока, хорошо? – попросил Валентин. – Ну… мало ли, может, это что-то принципиально новое…
– Бред. Я сейчас приеду и разберусь. Но если там что-то серьезное, то без Пашки нам все равно не справиться.
– Жаль, – вздохнул Валентин. – Хотя… На троих тоже можно будет поделить.
– Что делить, Валя? Шкуру неубитого медведя? Все, я еду. – Андрей положил трубку и пошел одеваться.
Такого Вальку Знобина Андрей еще не видел. Это был какой-то совершенно другой Валька, не опытный управляющий, не стратег, а маленький ребенок, которому пообещали новую игрушку, и он из кожи вон лезет, чтобы ее получить. Он без напоминания сбегал в магазин, пока Андрей почесывал затылок перед компьютером, сам заварил кофе, все порезал и разложил по блюдечкам и тарелочкам.
Андрей мысленно посмеивался, но помалкивал, пытаясь разобраться, что же, собственно, произошло. Все тесты показывали удвоение быстродействия на всех вычислительных операциях. Ровно вдвое – циферка в циферку. Но поскольку этого физически быть не могло, Андрей пытался выяснить не то, что произошло в действительности, а то, каким образом обманываются тесты.
– А… черт. – Он стукнул себя ладонью по лбу. – Фигней занимаюсь…
– Давай кофе выпьем, – предложил Валька.
– Да подожди ты… – отмахнулся Андрей. – Я ищу ошибку тестирования, а ведь ты ему задавал реальный просчет, а не тест.
– Ну. А до тебя это только сейчас дошло?
– Да. Ладно, давай пить кофе. Хотя подожди, я кэш посмотрю.
– Только, ради бога, ничего не меняй!
– Не буду, не буду.
Андрей открыл диалоговое окно переустановки параметров кэширования.
– Пятьдесят процентов, как она и говорила.
– И что, все дело только в этом движке? – удивился Валька, ставя чашки на стол. – Почему же никто не додумался?
Андрей задумчиво поглядел на монитор:
– Можно изменить параметры, проверить быстродействие, а затем снова выставить пятьдесят процентов. И проверить снова. Ничего другого менять не будем, не бойся.
– Давай. – Валька отпил кофе из чашки.
Андрей выставил шестьдесят процентов кэширования и запустил тест.
– Да, быстродействие упало вдвое, – сообщил он. – До обычного.
– Ставь обратно. – Валька напряженно отодвинул блюдце и повернулся к компьютеру.
– Не дрейфь, сейчас все верну, – усмехнулся Андрей и повел курсором мыши.
Янтарная стрелочка легла на нарисованный движок, справа от которого было написано: «Больше половины объема», а слева – «Меньше половины объема». Андрей сдвинул движок к середине, и всплывающий указатель высветил – «51 %». Еще чуть в сторону, и движок резко скакнул влево, перескочив середину. Указатель высветил – «49 %».
– Ты мышку когда последний раз чистил? – спросил Андрей и повертел шарик пальцем.
Он еще дунул в щелочку – для уверенности – и снова попробовал установить движок точно на середину. Но тот рывком проскочил заветную точку и замер.
– Пятьдесят один, – хмуро заметил Валька, уже понимая, что произошло непредвиденное. – Какого же хрена ты его двигал?
– Узнать-то надо было! – попробовал защититься Андрей.
– Ах, узнать? Экспериментатор…
Андрей спешно провел тесты на разных положениях движка. Быстродействие то уменьшалось, то увеличивалось, но превысить паспортное вдвое так и не удалось. Наилучшие показатели оказались именно на шестидесяти процентах, как и было сказано в руководстве.
– Пятьдесят точно не устанавливается? – Валька сам попробовал, но ничего не вышло. – Что будем делать?
– Изобретать квантовый компьютер, – невесело усмехнулся Андрей.
– Очень смешно, – нахмурился Валька. – У нас на руках был прототип, вдвое превышающий по мощности все существующие на настоящий момент машины. Причем достигалось это явно программным, а не аппаратным методом. И вот теперь, по твоей безалаберности, мы остались у разбитого корыта.
Он подумал несколько секунд, со вздохом глянул на остывающий кофе и спросил, стараясь не смотреть Андрею в глаза:
– Кто эта баба?
– Хрен ее знает… – честно ответил Андрей. – Программистка. Некрасивая. Я для отмазки проглядел пару программ и отправил ее на все четыре стороны. Валь, ну я же не знал, что она вытворит нечто подобное!
– Как ты с ней связывался? – Голос Валентина звучал тихо, ровно, но очень настойчиво.
– По телефону.
– Записан?
– Да. Я ей с мобилы звонил. Он должен был остаться в регистре набранных номеров.
– Звони.
– Прямо сейчас? – Андрей послушно снял телефон с пояса.
– Нет. Через год. – Валька опустился в кресло и одним глотком допил кофе. – Звони давай.
Андрей не любил сердитого Вальку. С начальством тот на короткой ноге – взбредет ему что-нибудь в голову, расхлебывай потом. Он вывел регистр на экран телефона и принялся перебирать номера.
– Нету, – наконец сказал он.
Валька нахмурился еще сильнее.
– Слушай, Валь, ну я в чем виноват? – не выдержал Андрей. – Чего ты дуешься? Знаешь ведь, что в этом регистре только пять последних номеров.
– Тебе мало платят? – вкрадчиво спросил Валька. – Ты не мог нормальную мобилу купить?
«Начинается…» – подумал Андрей.
– Платят нормально, – сказал он вслух.
– Вот и я так считаю. Ладно. Где у тебя еще есть ее телефон?
– Дома в почте. На сигаретной пачке еще был записан, но я ее выбросил.
– Езжай домой.
– Да погоди ты! – Андрей сел в свободное кресло и придвинул чашку с кофе. – На фиг она нужна? Давай лучше Пашку дернем. Он расщелкает это дело на раз.
Валька думал долго, взвесил все в уме, молча поглядывая на монитор.
– Ладно, – кивнул он.
– Это правильно. – У Андрея отлегло от сердца. – Если мы поймем, что к чему, то заработанного и на троих хватит. Без Пашки все равно не разобрались бы, а если бы и разобрались, кто бы нам теорию описал?
– Звони, звони… – нетерпеливо заерзал Валентин, постукивая по столу пухлыми пальцами.
Андрей набрал номер и дождался, когда на другом конце снимут трубку.
– Пашка, привет.
– О, хорошо, что ты позвонил! Я уже сам собирался.
– Погоди, – остановил его Андрей. – Об этом позже поговорим. У нас тут с Валентином кое-какая проблемка возникла. Очень насущная. Ты можешь приехать?
– Как раз собирался. Ты у Валентина?
– Да, в офисе.
– Очень хорошо. Я сейчас на Белорусской, так что буду скоро.
– Давай. На месте все объясним.
Андрей повесил телефон на пояс и взялся за бутерброд с колбасой.
– Паша сейчас на Белорусской, – сообщил он. – Скоро будет.
– Ладно, – кивнул Валька. – Думаешь, разберется?
– Обязательно разберется. Ты ведь знаешь, он один из лучших спецов. Помнишь, ему даже менты три года назад доверили сделать неподбираемый код для электронных замков.
– Помню. Но одно дело – коды с открытым ключом, а другое – делать то, что согласно современной теории невозможно в принципе.
– Баба ведь сделала! – успокоил его Андрей. – К тому же мы теперь точно знаем, что это возможно.
Пашка прибыл через полчаса.
– Ну, что тут у вас? – с ходу спросил он. – О, бутербродики…
Он ухватил бутерброд и поискал глазами свободную чашку для кофе.
– Ну и лица у вас. – Он включил кофеварку. – Как после всенощного бдения.
– На себя посмотри, – буркнул Андрей.
Пашка послушно глянул в зеркало у шкафа.
– У меня-то все как раз нормально, а у тебя глазенки как в начальной стадии конъюнктивита. Рассказывайте, в чем ваша проблема.
Валентин и Андрей переглянулись, затем, совершенно синхронно, посмотрели на Пашку.
– Вы что, издеваетесь? – Он заинтересованно поднял брови, не зная, злиться или смеяться.
– Паш… Ты стул возьми, – посоветовал Андрей. – А еще лучше вместо меня садись в кресло возле компьютера. Я и на стуле могу.
Совершенно сбитый с толку Пашка уселся возле машины.
– Вы яснее можете выражать свои мысли? – осторожно поинтересовался он.
– Сейчас, сейчас. Все расскажем, – пообещал Андрей.
Валентин встал и молча налил себе вторую чашку кофе.
– Сердце посадишь, – предупредил Пашка.
– С вами я его и так посажу… – фыркнул Валентин и наполнил чашку.
Андрей вздохнул и наконец подобрал нужную фразу для начала разговора:
– Паш, ты только не подумай, что мы психи…
– Хорошее начало, – усмехнулся Пашка, но в глазах появилась заинтересованность, которой раньше не было.
– Я тут, в кабинете, встречался с одной женщиной, – продолжил Андрей. – И мы смотрели программы, которые она принесла. Перед просмотром она их устанавливала, понятное дело. И попросила перестроить параметры кэша, чтоб увеличить быстродействие. Я ей позволил. Ну, мы посмотрели и разъехались. А сегодня звонит Валентин и говорит, что его машина работает вдвое быстрее обычного.
– Во сколько? – насторожился Пашка.
– Вдвое, – подтвердил Валентин.
– На каком алгоритме?
– Преобразование Фурье.
Пашка хихикнул и покачал головой:
– И это прямо сейчас можно замерить?
– Нет, – грустно ответил Андрей. – Я попробовал изменить параметры кэша, и все вернулось в привычные рамки.
– Вы мне голову морочите, да? – поднял брови Пашка. – Я уже готов узнать, в чем соль вашей шутки.
– Это не шутка. – Андрей тоже пошел выцеживать из кофеварки добавку.
– Так почему же ты не поставил параметры, на которых машина работала необычным образом?
– Они не устанавливаются, – объяснил Валентин.
– Что значит – не устанавливаются? Сколько там было? – Он потянулся к мышке.
– Пятьдесят процентов, – ответил Андрей.
Пашкина рука замерла и медленно опустилась на стол.
– Сколько, сколько?
– Не прикидывайся глухим, – осадил его Валентин.
Пашка откинулся на спинку кресла и рассмеялся, прикрыв лицо руками.
– Вспомнил! – сообщил он сквозь смех. – Была у нас такая байка. Это из той же оперы, что и карбюратор от «КамАЗа» и гусеницы от трактора «Беларусь»… Когда кто-то из «чайников» ругался, что машина работает медленно, мы советовали ему выставить кэш на пятьдесят процентов. Но емкость кэша может быть либо меньше, либо больше пятидесяти, там же русским языком написано… Ты хочешь сказать, что не знал этого?
– А почему? – вполне серьезно спросил Андрей. – Я всегда ставил шестьдесят, как советуют. Другого не пробовал.
– Тебе на пальцах объяснить или с формулами? – Пашка убрал ладони от раскрасневшегося лица.
– На пальцах.
– А… Хорошо. Память, построенная по ISP-технологии, уже шумит на квантовом уровне. Детальки там махонькие. Каждый бит хранится в десятке тысяч атомов, даже меньше, если реально. То есть при работе классических алгоритмов там накапливаются определенные погрешности, связанные с принципом суперпозиции состояний «ноль-единица». Чтобы исключить эту погрешность, на каждой операции вся память сканируется четыре раза подряд, битовые значения проверяются, погрешность отнимается и вычисления переходят на новый вычислительный шаг. Если же емкость кэша выставить ровно на пятьдесят процентов емкости памяти, то два такта сканирования придутся на кэш и лишь два оставшихся на память как таковую. В любом другом случае разница получается нечетной и принцип четверного сканирования сохраняется.
– Хорошо. А почему нельзя сканировать два раза? – решил уточнить Андрей.
– Потому что точность вычисления погрешности падает вдвое и ее придется вычитать уже по квантовым алгоритмам. А их пока нет. Есть только алгоритмы Шора и Гровера, но для этой операции они непригодны.
– Понятно, – кивнул Андрей. – Но если теоретически допустить возможность двойного сканирования, то машина будет работать в два раза быстрее?
– Да. Это и побудило Скотта учредить сорокамиллионную премию. Но на тысячном вычислительном шаге все твои нули перепутаются с единицами.
В тишине кабинета было слышно, как шуршит кондиционер. Где-то недалеко проехал мощный турбодизельный грузовик, и стекла дрогнули от его басовитого рева.
– Она это сделала, – внятно и очень спокойно произнес Валентин. – Она создала квантовый алгоритм для отсева шума!
Пашка притих. Он уже понял, что с ним не шутят.
– Но это ведь такой прорыв… – шепнул он. – Андрюха, где эта девушка?
– Не знаю. Ее телефон у меня дома остался.
– Стоп! – поднял руку Валентин. – Вы ведь устанавливали программы на мой компьютер?
– Да, – подтвердил Андрей.
– Так они должны были остаться! – Пашка радостно хлопнул себя ладонью по бедру и пробежал пальцами по клавишам. – Так… Вчерашнее состояние… Ага, точно. Загрузка в семнадцать двадцать пять. Вот чертовка! Нет, я в нее уже влюбился, хотя ни разу не видел!
– Она страшненькая, – предупредил Андрей. – Что там такое?
– Что? А… Программы со встроенным самоуничтожением. Все вычистила, как веником! Какая умница! Под такой системой! Нет, это просто гений в юбке.
– Она не носит юбку, – снова вставил Андрей.
Пашка глянул на него с непониманием:
– Звони ей скорее!
– Номер телефона только у меня дома, в ее письме.
– Поедем все вместе, – предложил Валентин.
Они спустились по лестнице и вышли к машине.
– Ты говорил о сорока миллионах? – напрямую спросил Валентин у Пашки.
– Если разово, то именно столько, – прикинул Пашка. – Ну, минус стоимость оформления патента. На таком уровне это может вылететь и в пятьсот тысяч. Но если устроить аукцион среди компаний, которые выпускают компьютеры, можно поднять и больше. Сам ведь Скотт собирался получить с этого выгоду, а не просто заплатить премию.
Андрей открыл машину, Валентин сел на переднее сиденье.
– Поехали, – коротко кивнул он и прикрыл глаза, откинув плешивую голову на подголовник.
Андрей запустил двигатель, выехал на трассу и хорошенько придавил педаль газа. Солнце нещадно слепило, выдавливая слезы из глаз. Андрей сощурился и нажал кнопку на панели, чуть затемнив лобовое стекло. Рекламные щиты с шелестом пролетали по бокам, словно раскрашенные мельничные крылья, по противошумным экранам плавали блики отраженного света.
– Не гони так, – не открывая глаз, попросил Валентин. – А то сейчас самое время разбиться.
Сверкающие стены небоскребов пускали тысячи солнечных зайчиков, торговый дом на Савеловской отливал ртутным блеском. Андрей много раз мысленно сравнивал город с растущим кристаллом, и сейчас это сравнение пришло снова – само собой. Ветер шумел в приоткрытом окне, шелест колес то нарастал, когда машина проскакивала под прозрачными трубами надземных переходов, то снова растворялся в открытом пространстве, стиснутом лишь щитами противошумных экранов. Это создавало отчетливое ощущение волнистости, хотя трасса была ровной – настоящая асфальтовая река, гладкая и сверкающая, как застывшая лава.
– Сегодня что, солнечная активность повышенная? – спросил Андрей.
– Не знаю, – пожал плечами Пашка. – Включил бы радио, там скажут.
– Ну его на фиг, – отмахнулся Андрей. – По всем станциям крутят одно и то же.
Он перестроился на фрилайн и еще добавил скорости.
Длинные гудки в трубке тянулись немыслимо долго.
– Ну что? – нетерпеливо спросил Валентин.
– Дома никого нет. – Андрей нажал кнопку отбоя и сел на диван.
– В каком хоть районе она живет?
– Медведково. Но до самого дома я ее не довозил. По номеру телефона в крайнем случае можно адрес узнать.
– Жаль, что программ не осталось. – Валентин вздохнул и сел рядом. – Можно было бы их распотрошить и понять, как все устроено. Тогда саму девушку можно было бы и не беспокоить. Похоже, она даже не знает, каким сокровищем обладает.
– Ну, это уже воровство, – раздался с кухни Пашкин голос. – Я вам обоим шеи сверну, если вы всерьез об этом подумали.
– Такие деньги не воруют, – усмехнулся Валентин. – Они либо идут в руки, либо нет.
– Это ты брось. – Пашка показал голову из-за дверного косяка. – Нам что, на четверых будет мало?