ИИ и параллелизация

Alexander Komarov (Intel) (5 пост(а)) 23.07.2007 23:40

Представьте себе черный ящик, получающий на вход сообщения, как-то их обрабатывающий (общаясь при этом с базой даных), и посылающий ответные сообщения. Можно догадаться, что я описал допотопный Application Server.  Сколько таких работает в боевых условиях? Не счесть. Многие из них  содержат мало документированную бизнес-логику, закодированную десятками программистов в течение многихлет. Команда, поддерживающая такого зверька, возносит Ктулху лишь одну молитву: только бы не пришлось вводить новое правило, которое может все обрушить.

Я вообще интересуюсь развитием ИИ, но редко (никогда в моем опыте) используются эти технологии в индустриальном программировании. И вот, один клиент разрабатывает интересную систему, позволяющую избавиться от кошмара поддержки древнего app server'a, написанного, скажем, на COBOL'е. 

Как это работает? Сначала "Очень Умный Аналитик" составляет Onthology. На вход системы, базу данных и ее выход ставится сниффер. Результаты, вместе с онтологией, скармливаются "Очень Умному ИИ".  Он пытается все понять, и, естественно, не может.  Задает огромное количество вопросов "Очень Умному Аналитику". Потом успокаивается, и производит код, способный имитировать первоначальную систему.

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

При чем здесь многоядерность? Часто код оказывается производительней оригинального. Не только потому, что оригинальный просто потяжелел и распух от многих лет жизни. А потому, что иногда удается автоматически распараллелить получившийся код.

Вообще, намечается очередное увлечение Domain Specific Languages (как в 70-80 все производители Больших Телефоных Свитчей писали свой Pascal, ( а выжил только Erlang) ). В этой системе он тоже есть (описание онтологии и общение с аналитиком в ее терминах).

В следующем посте: О различных системах распараллеливания существующих программ. (к сожалению, пока все они "заточены" на узкий класс приложений, в-основном HPC ( за исключением разве что Azul, но и оно имеет узкую нишу))

Категории: Многоядерность

Комментарии (0) Комментарии в RSS-потоке

Для данной записи нет комментариев.


А что думаете вы?

Имя (обязательное поле)

Электронная почта (обязательное поле; не будет отображено на данной странице)

Ваш URL-адрес (дополнительный)

Комментарии (обязательное поле)