Дмитрий Радищев (dibr) wrote,
Дмитрий Радищев
dibr

короли, капуста и квантовая механика

И последний раз (честно-честно!) про оптимизацию у компиляторов, квантовую механику, королей и капусту.

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

Как мы видим, в определенных условиях современные оптимизирующие компиляторы способны превратить казалось-бы-небольшую ошибку в программе в абсолютно неожиданное и контринтуитивное, хотя и формально правильное, поведение программы. Примеры где компилятор "нашёл" косинус, больший двух, или "обнаружил" контрпример опровергающий теорему Ферма я уже приводил.
Интересно, что подобные примеры часто реализуются в "герметичных" ситуациях - когда данный кусок кода работает внутри себя, не взаимодействуя с внешним миром. Если попросить программу вывести на печать конкретные числа, опровергающие теорему Ферма, или косинус которых больше двух - оптимизация магическим (но опять же формально безошибочным) образом перестраивается так, что волшебство исчезает, косинусы оказываются не большими единицы, а теорема Ферма - неопровергнутой. (На самом деле обычно достаточно обращаться к volatile переменной, это считается достаточным "взаимодействием с миром", чтобы магия ушла).

А теперь скажите, ничего не напоминает? Система, ведущая себя по непредсказуемым, странным и контринтуитивным законам (но - законам), правило "важны только внешние проявления, внутреннее состояние можно при этом считать любым, даже неопределенным", а главное - при любой попытке понаблюдать за этим самым внутренним состоянием и вытащить магию на внешний, наблюдаемый, уровень - магия исчезает, и система начинает вести себя скучно и предсказуемо, "как в школьном учебнике"?

Квантовая механика же! Вот прямо в точности, от кота Шредингера (пока мы не сделали в программе вывод текущего состояния (не открыли ящик), можно считать что внутри всё что угодно), до каких-нибудь спутанных частиц и квантовой телепортации (если в пределах видимости оптимизатора есть несколько функций, использующих один набор данных, взаимодействовать друг с другом в оптимизаторе они могут ну очень хитрым образом, примеры тоже существуют). Ну, и квантовомеханический "наблюдатель", про которого в КМ сломано столько копий, тут появляется достаточно очевидным образом: как только программа взаимодействует с чем-то, поведение чего оптимизатору неизвестно, происходит декогеренция и система схлопывается к классической (глубокая оптимизация этого места становится невозможной, магия уходит).

А это означает, что квантовая механика в нашей вселенной оказалась возможной только потому, что наша вселенная была собрана с глубокой оптимизацией - то есть, это окончательный релиз, а не отладочная версия (их наоборот, собирают так, чтобы поведение было максимально предсказуемым). Что с одной стороны радует (мы - не черновик, мы - чистовик!), но с другой стороны озадачивает: получается что на самом-то деле предполагалось, что нам будет доступна только классическая механика - то есть стимпанк, "пневматические вычислители", и ни-ка-кой электроники сложнее радиоламп, а современное взрывное развитие тех же компьютеров связано с тем, что мы обнаружили "ошибки Вселенной", связанные с глубокой оптимизацией, смогли понять их систему, и создать эксплойты, применяющие эти ошибки нам на пользу. И понятно, почему КМ такая "нечеловеческая" и неочевидная - она и не должна быть очевидной, это "взлом вселенной", штатный интерфейс - механика классическая, там как раз всё просто.

И сейчас Разработчик Вселенной наверняка сидит за терминалом, фигеет от происходящего (он-то ожидал вяло развивающуюся цивилизацию с классической физикой, а не вот это вот взрывное развитие и "взлом вселенной"), но процесс не прерывает: во-первых, уже много счётных ресурсов вложено, жалко выкидывать, а во-вторых - ветка развития-то интересная, можно и понаблюдать, глядишь нетривиальный результат для статьи по вселеннологии получится, опять же - при компиляции следующей вселенной понятно будет чего избегать.

А вот "квантовый компьютер" в нашем мире уже явно не взлетит. Потому что ресурсы "прямого доступа к Матрице" явно вычерпаны уже обычными компьютерами (просто прикиньте, на сколько ПОРЯДКОВ выросли скорости и объёмы компьютеров, и возможно ли это без перехода от "законов физики" к "взлому вселенной и прямому обращению к железу Разрабочика"), и "квантовому компьютеру" тупо не достанется ничего принципиально нового. Для нас это будет выглядеть как нерешаемые технические проблемы с когерентностью: несколько кубит - ок, много кубит - ой, система рассыпается, что ты с ней не делай.

Я так думаю.

КДПВ unrelated, если что.



Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 30 comments