Литмир - Электронная Библиотека

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

– Сильно сказано, пойду тогда Джаву учить. – Заулыбался системщик.

– Спасибо за экскурсию Родик. Ну а теперь дай мне самому потыкаться и всё попробовать. Если появятся вопросы к тебе можно обращаться?

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

– Понятно! – подумал Сергей – Игровая зависимость на лицо. Все эти системщики игровые наркоманы. Даже на этот очень секретный объект любимую игрушку протащил. Интересно, а Борис об этом знает?

Остаток дня прошел очень плодотворно. Сергей влил в себя тонну информации и протестировал все средства разработки. Все оказалось понятным и потому не сложным. Писать эволюцию он решил завтра с утра а сегодняшний вечер завершить перевариванием впитанной информации разбавленной небольшим количеством местного пива.

Вечером сидели на веранде в плетенных креслах, любовались прекрасным швейцарским закатом и слушали пение птичек. Сергей с пивом, а Родион с чипсами и кока-колой. Громко пыхтя и топая ввалился Борис с бутылкой пива и плюхнулся в свободное кресло.

Эволюция

С утра работа пошла хорошо. Несмотря на то что Родиона и Бориса на втором этаже не было, на рабочем столе линукса Сергей обнаружил папку с исходниками Си с плюсами. И когда это Родик успел?

Через час появились оба, и вся компания отправилась завтракать. Вчера Сергей решил обнаглеть и заказал себе на завтрак "Запеченные устрицы а-ля Рокфеллер", И чуть было не пожалел. После завтрака отправились перекурить и Родион начал приставать к Сергею и Борису с вопросами.

– Ну расскажите добрые люди над чем мы работаем, что это за эволюция такая.

– Пусть тебе лучше Боря покажет, она у него на ноутбуке есть, а я пока поработаю слегка.

Только Сергей сосредоточился и начал строчить код, как прибежал возбужденный Родион с ноутбуком Бориса.

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

– Нет не могут. У них мутируют только свойства. Ну там тяжелее становятся или легче. Может коэффициент злости добавиться или уменьшиться, размер, скорость. Но сама программа управляющая этими кляксами одна на всех и она не меняется. Вот если бы я сделал так, чтобы каждая особь свою программу с собой носила и эта программа случайным образом изменялась у потомков, то тогда да. Нежизнеспособные программы вымирали бы, а случайно сделанное полезное изменение наоборот давало преимущество и такие особи бы выживали. Что-то типа нашей ДНК11. Но это гораздо сложнее сделать сроки нужны другие.

– Ну сделай пожалуйста. – взмолился Родион. – У нас же суперкомпьютер скоро заработает. Там скорость бешеная. Эволюция до разумной кляксы за пару дней пройдет. Очень хочется на это посмотреть!

– Родион отстань от дяди! – донесся голос Бориса. – дядя Сережа будет делать только то, что дяде Боре надо. Понятно?

– Понятно.

Родион поплелся на свое место, одел наушники и начал молотить по клавиатуре.

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

Сергею приходилось иногда писать небольшие программы второй раз при потере исходных текстов, но он никогда не повторялся на все сто процентов. Для второй реализации он выбирал новый путь, где использовал новые идеи и пытался сделать программу с большими возможностями и более эффективным алгоритмом. Так и с этой эволюцией. В прошлый раз он использовал поле для жизни виртуальных организмов размером с экран монитора, такое же прямоугольное как и сам монитор. В этот раз ему нужно было использовать поле гораздо больших размеров и без прямых углов. Лучше всего подходил виртуальный шар, а двумерные животные должна были ползать по его поверхности. Пришлось применить сферическую систему координат, что значительно изменяло алгоритм, но зато позволяло избежать аномалий в углах пространства, которых теперь не было.

Но самым большим новшеством было то, что алгоритм писался для суперкомпьютера с почти бесконечным числом процессоров и такой же почти бесконечной памятью для данных. Раньше для обсчета происходящего в виртуальном мирке эволюции применялся один бесконечный цикл, который пробегал по всем существам и вычисляя взаимодействия каждого существа с окружающей средой вносил изменения в его сущность, такие как новые координаты, скорость, направление движения и так далее. По сути этот алгоритм был рассчитан на один процессор. Теперь же для каждого нового существа запускался новый параллельный поток12, для которого выделялся персональный процессор и в этом потоке работал свой бесконечный цикл обсчитывающий изменения для своего существа. Ассемблер, то есть система инструкций вакуумного суперкомпьютера была очень хорошо настроена на параллельные вычисления и поэтому новшества на величину кода почти не повлияли. Писалось вполне легко и быстро и с каждым часом производительность увеличивалась. Уже к вечеру основной костяк алгоритма был почти готов. Осталась отладка кода.

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

Вечер с бутылкой пива был на веранде. Похоже зарождалась новая традиция. Рассказал Борису и Родиону, что удалось сделать и что наметил на будущее.

– Вечно ты себе придумываешь новые головняки – пробурчал Борис. – Сделал бы один в один как было раньше и все дела.

– Не бойся дружище, все успеем вовремя. – Успокоил приятеля Сергей. Он понимал, что Борис, как ответственное лицо опасается, что Сергей влезет в дебри и надолго застрянет. – Во-первых понимаешь, натура у меня такая, не могу писать одно и тоже, хоть под пистолетом заставляй, а во-вторых я боюсь, что программа, которая использует всего один процессор из миллиардов вызовет у суперкомпьютера такую скуку, что он опять заснет от безнадеги.

– А ДНК к ним приделаешь? – Робко влез в разговор Родион.

– Ты знаешь Родион, пока нет, чтобы не травмировать нежную психику Бориса, но в следующей версии возможно и приделаю. Во всяком случае задел для этого я уже сделал.

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

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

– Если я про гениталии на совете директоров вякну, то нам быстро дадут коленом по этим самым гениталиям. – Пробурчал Борис, а остальные хором заржали.

Демонстрация эволюции

– Ну давай показывай! – Раздался голос Бориса над ухом Сергея. – Говорил, что за неделю успеешь, а уже третья неделя началась.

вернуться

10

 PHP– язык программирования

вернуться

11

 Дезоксирибонуклеи́новая кислота́ (ДНК) – макромолекула, обеспечивающая хранение, передачу из поколения в поколение и реализацию генетической программы развития и функционирования живых организмов.

вернуться

12

 Параллельный поток – объект, выполняемый параллельно с основным потоком приложения и с другими параллельными потоками.

4
{"b":"826021","o":1}