Скачать книгу

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

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

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

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

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

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

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

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

Скачать книгу


<p>12</p>

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