?

Log in

No account? Create an account
dibr
 
[Most Recent Entries] [Calendar View] [Friends View]

Friday, October 6th, 2017

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

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

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

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

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

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

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

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

Я так думаю.

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



<< Previous Day 2017/10/06
[Calendar]
Next Day >>
My Website   About LiveJournal.com