Компьютерра PDA 19.06.2010-25.06.2010
Шрифт:
Кафедра Ваннаха: Левиафан как форма искусственной жизни
Автор: Ваннах Михаил
Опубликовано 24 июня 2010 года
Одно из самых интересных направлений информационных технологий - искусственная жизнь, ИЖ, artificial life. Под этим термином подразумевают обычно изучение жизни, биологических систем и их эволюцию при помощи моделей. Ну, чаще всего - математических, прокручиваемых на цифровой машине. Работы Крейга Вентера по замене ДНК на синтезированную, по перепрограммированию живой клетки, также проходят по ведомству искусственной жизни. Англосаксы обзывают такие работы wet a-life. Есть и термин wetware - "мокрое", то бишь - живое, обеспечение, аппаратная часть биологических компьютеров или элементов - вроде медицинских или химических сенсоров на биологической основе. Но, вообще то, этот термин применим к изучению самых общих живых систем, вне
Под жизнью рассмотрим ниже то, что один из отцов отечественной кибернетики А. А. Ляпунов в начале 1960-х определил, как "высокоустойчивое состояние вещества, использующее для выработки сохраняющих реакций информацию, кодируемую состояниями отдельных молекул". А вообще - возьмём да и позволим себе вольность, недопустимую в научной работе публикуемой в реферируемом журнале. Вот возьмём да и урежем определение Ляпунова на последние четыре слова. Зачем ограничиваться отдельными молекулами (у А. А. Ляпунова были весьма серьёзные основания для этого, приведённые в его же труде "Об управляющих системах живой природы и общем понимании жизненных процессов", М., 1962) - расширим понятие жизни до всего, что для повышения собственной устойчивости и выЖИВАЕМОСТИ (без тавтологии - никак) использует информацию. А на чем эта информация записана - не суть важно. Это могут быть и современные технические средства, логические схемы, магнитные домены... Это могут быть и некие квантовые состояния, в перспективных и фантастических устройствах. Неважно - главное то, что система функционирует на основе информации.
Мы подчас с тоской вспоминаем простые и надежные устройства индустриальной эры. Но вот тулупчик с завернутым в него инструментом, занимавший большую часть багажника старенького "Москвича", как-то уже подзабылся. А зря - без такого малого джентльменского набора из гаража лучше было не выезжать... И при такой надёжности цифровая электроника была невозможна - оставим на совести авторов паропанка (steampunk) сугубо реалистичные описания вычислительных машин викторианской эры, насчитывающих мириады шестерёнок и зубчатых реек, да обслуживаемых толпами смазчиков... Владелец современной машины с нутром её не сталкивается за весь цикл эксплуатации, а о необходимости сервиса говорит ему бортовой компьютер. Ну а следующим шагом технологии вполне могли бы быть машины, которые добиваются повышения своей надежности не советуя заехать в сервис или встать и вызвать эвакуатор, а сами - заказывая по Сети нужные запчасти в сервисной сети; сами устанавливая их; ну, а по мере повышения точности и уменьшения допусков, повышения стандартизации путем оперирования такими стандартными деталями, как отдельные атомы, обходясь и без запчастей. Причём первое для современных технологий - вопрос организации и потребности. Ну а последнее - перехлёстывает то, что принято называть нанотехнологиями. Но законов природы всё это не нарушает, и поэтому можно постулировать грядущее появление "живых" механизмов. При одном условии - если этому не будут препятствовать социальные механизмы. Все знают трогательную любовь, питаемую властями России к автозаводу в городе Тольятти. И все знают, как нам повезло, что в стране не было крупного города, благосостояние которого зависело б от производства арифмометров "Феликс-М". А то не видать бы нам ИТ-чудес, как и своих ушей... А представьте "живой" автомобиль, который сам себя чинит, используя для этого даже не запчасти, а так - подобранные на обочине атомы... Ну а если ещё он станет питаться не углеводородами, а солнечным светом - так это ж вообще будет подрыв основ и стабильности!
Но в любом случае кажется, что понятие искусственной жизни - это нечто весьма современное. Сугубо из последних десятилетий, после кибернетики... Ан нет! Понятие это относится к заре нового времени и прозвучало в одной из кардинальных книг европейской цивилизации. Книга эта звалась "Левиафан", а автором её был Томас Гоббс (Thomes Hobbes, 1588-1679), человек, в котором интеллектуальная смелость сочеталась с поразительной житейской осторожностью. Хотя, возможно, на Гоббса повлиял пример его папы, викария холерического характера, отлучённого от должности после драки у церковных дверей с другим викарием, и оставившего детей на попечение брата. Переведя ещё в детстве "Медею" латинским стихом, Гоббс подвизался в роли домашнего учителя в семье графов Девонширских. Путешествуя в этом качестве по Европе, он впитал идеи Кеплера и Галилея, с последним он был лично знаком. Впрочем, тяга к прогрессу научному сочеталась в нём с консерватизмом политическим. В 1628 году он переводит Фукидида, видя в нём оружие против демократических идей. Это, вкупе с другими работами, доставляет ему место наставника будущего короля Карла II. И на службе ему бежавший в Париж от гражданской войны Гоббс создает знаменитый "Левиафан, или Материя, форма и власть государства церковного
Но вот интеллектуально "Левиафан" хорош. Особенно его начало - представление о том, "что все автоматы (механизмы, движущиеся при помощи пружин и колес, как, например, часы) имеют искусственную жизнь". Наивно? Но ведь это писано в те годы, когда друг Гоббса аббат Мерсенн пытался запустить пушечное ядро на орбиту спутника земли... И далее - представление о государстве, Левиафане, как об объекте искусственной жизни, созданном искусством человека. То что дальше - это историкам политической философии. Пусть сегодня bella omnia contra omnes, война всех против всех, с которой началась человеческая история, кажется более правдоподобной, - в свете находок обглоданных прачеловеческих костей в прачеловеческих же становищах, - чем сторонникам либерального "естественного состояния" Локка. И пусть идея блага, достигаемого подчинением власти, не привлекает после тоталитаризмов ХХ века. Всё равно - идея о подобии социальных структур живым существам золотыми буквами вписана в историю науки.
Ну, и под конец вспомним, что перед крахом СССР появилась тенденция рассматривать тогдашний аппарат управления как некие "големы", объекты искусственной жизни - ну, например, в самиздатовской статье А. Лазарчука и П. Лелика "Голем хочет жить"Идея забавная, но отводящая внимание от конкретных людей, сначала управлявших, а потом и - владевших собственностью. Когда то Бернард Рассел отметил, что в передовых странах практика ведет за собой философию, а в странах отсталых чужие теории определяют практику...
Нет ничего проще
Автор: Герман Царев
Опубликовано 24 июня 2010 года
Орфография и пунктуация автора сохранены.
– прим. ред.
Наверное, каждый человек, занимающийся разработкой программного обеспечения, когда-либо сталкивался с задачей обработки больших объемов данных. Такая потребность могла возникнуть при реализации сложных математических алгоритмов, обработки сетевого трафика, создания различного рода игр и так далее. И тогда приходилось принимать очень важное, определяющее решение для дальнейшей разработки. Либо обрабатывать все данные в одном потоке, что, конечно же, занимает огромное количество времени и не реализует все возможности и ресурсы многоядерных машин, которые на настоящий момент, мягко говоря, не редкость, либо заниматься многопоточным программированием, которое в свою очередь существенно может ускорить выполнение программы.
Естественно, что более опытные и подготовленные специалисты выбирали второй путь развития событий. Их выбор является вполне понятным и логичным. Однако при попытке его реализации можно наткнуться на следующие проблемы.
Первой проблемой является то, что программист должен самостоятельно определять, создавать и запускать потоки, подготавливать данные для их выполнения, следить за целостностью общих данных и заниматься сборкой общего результата. Отсюда вытекает множество ошибок при синхронизации, трудности с разделением работы по времени с общими данными, да и в целом подобная задача не является тривиальной.
Вторая проблема такого подхода связана со сложностью отладки подобных приложений. Практика и статистика показывает, что при реализации больших проектов, более 40% времени разработки тратится на исправление ошибок, тестирование и отладку приложения. В случае многопоточной реализации на этот процесс уйдет в 2-3 раза больше времени.
Отсюда возникает желание создавать многопоточные "быстрые" приложение, однако, затрачивая на это меньше времени и сил. Было бы здорово, если бы процесс создания, контроля, синхронизации потоков проходил в автоматическом режиме без участия разработчика.
И такой механизм уже существует, однако, далеко не всем о нем известно. В настоящей статье я попытаюсь раскрыть суть и основы этого удобного и полезного инструмента для разработчиков многопоточных приложений.
И так, знакомьтесь – MapReduce. Эта модель программирования для обработки больших объемов данных. Ее создателем считается небезызвестная компания Google. В своей работе она активно применяет этот механизм, что позволяет говорить о его удобности, быстродействии и практичности.