воскресенье, 27 февраля 2011 г.

Вассерман автоматизирован! Шокирующие подробности!

16 февраля 2011 года компьютер компании IBM впервые победил человеков в игре Jeopardy (аналог Своя игра).



Webplanet о событии: Люди проиграли машине в Jeopardy!

Компьютерра о событии (в основном, перевод Википедии): Суперкомпьютер IBM Watson: элементарно, Ватсон

Анатолий Левенчук о событии:
Подробности матча IBM Watson в Jeopardy!
Второй день матча IBM Watson
Третий день матча IBM Watson -- и он официально стал лучшим отвечайкой мира

Сайт проекта: IBM Watson

О том, как все устроено и работает:
IBM Watson Research Team Answers Your Questions
Apache Innovation Bolsters IBM's "Smartest Machine on Earth" in First-ever Man vs. Machine Competition on Jeopardy! Quiz Show

Инженеру всегда интересно узнать, как оно устроено :) Итак, что же там внутри скрыто за гламурной планетой?
  • 10 рэков с 90+ серверами IBM Power 750 (Linux);
  • суммарно 16 терабайт RAM;
  • суммарно 4 терабайт HDD;
  • 2,880 ядер ЦП (80 teraflops);
  • 200 млн страниц текста преобразованы в 500Гб структурированной информации, с которой работают 6 млн логических правил Prolog(?) при ответе на каждый вопрос;
  • время ответа менее 5 секунд;
  • без подключения к Интернет;
  • в основном на Java, значительные части на C++ и Prolog;
  • все интегрировано с помощью Apache UIMA -- open source проект платформы для анализа слабо структурированной информации вроде текстов (отдан в open source самой IBM в 2006 году).

Похоже, задачу решили методом brutforce: на одних и тех же данных параллельно проводится большое количество разных анализов и результаты объединяются в конечный ответ.

Проект стартовал в 2007 году (5 лет), команда из 15 человек в начале проекта и более 30 в конце, стандартное железо IBM, как утверждают, на миллион долларов.

От себя лично
...Несколько лет назад, когда я был молодой, глупый, голодный и злой (и изрядно напуганный бюрократической процедурой приема на работу в МГТУ, затянувшейся в моем случае на пол года), забрел как-то в Институт системного программирования РАН с похожей задумкой, только применительно к анализу исходного кода больших программных систем:
  • поднимаем исходный код системы в виде AST деревьев в память кластера;
  • параллельно анализируем его большим количеством агентов-анализаторов;
  • закономерности, найденные одними агентами могут быть эвристиками, направляющими и ускоряющими поиск других агентов;
  • в результате процесса анализатор понимает, из каких механизмов состоит анализируемая система и какую роль они играют в ее работе.

Таким образом можно было бы проанализировать большое количество open source проектов и собрать приличную базу знаний, содержащую конструкторские решения, ранее скрытые в коде. Причем, что интересно, в java-коммьюнити в каждой области есть несколько конкурирующих поектов с разными вариантами реализации примерно одного и того же функционала... есть, где развернуться.

А там уже и до автоматического синтеза реализации программы под руководством архитектора недалеко. Конечная цель: толковый архитектор в обнимку с супер-компьютером уровня Watson разоряет Microsoft, т.к. производительность труда такой человеко-машинной системы выше, чем у всей корпорации.

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

В общем, первое свиданье закончилось полным провалом. С тех пор так и живем... порознь :) Каких-то других российских организаций, более-менее серьезно занимающихся формальными методами в разработке ПО, я в природе не встречал. По-тихоньку копаем в эту сторону со студентами. Model-driven development, domain-specific languages, формальные методы, Semantic Web, агенты. На энтузиазме. За голый интерес.

А ведь при должной поддержке мог бы выйти наш ответ Чемберлену: IBM выиграла бы Jeopardy, а Россия разорила бы мировой рынок ПО :) Ведь формальные тексты программ анализировать попроще, да и знаний можно вытащить побольше.

Вообще, интересно, кто бы мне дал в России 1 млн долл. на железо и еще 6,4 млн долл. на зарплаты 30 высококлассным спецам в течение 5 лет? В принципе, хоть кто-то в России готов вложить 6 млн долл. в такой проект? С учетом того, что суперкомпьютеров-то по указу Президента накупили, а загрузить их нечем: нету в стране таких задач, не нужны никому ни моделирование, ни анализ информации. Наверное, когда-нибудь российские олигархи начнут интересоваться не только крутыми тачками и уеб-сайтами, но и технологиями разработки ПО... дожить бы.

Хотя... может, оно и к лучшему, что ничего не получилось! А то напали бы на нас оказавшиеся в мгновенье ока безработными орды китайских, индийских и американских программистов... да и нашим российским php+mysql, когда они собираются голодной толпой, лучше на пути не попадаться.

Ну и ладно!
Не очень то и хотелось!
У меня теперь свое маленькое счастье: небольшая группа толковых студентов.
И вообще, есть новая задумка: Организатор Всего или Матрица :)

понедельник, 21 февраля 2011 г.

На русском -- JADE Programming For Beginners

Несколько лет поколения студентов изучали агентную платформу Jade. И вот в недрах Интернета обнаружен неофициальный community перевод одного из руководств! А именно, JADE Programming For Beginners версии 3.6.

Возрадуемся же, братия! И да поможем друг другу с другими руководствами по JADE :) И да обновим же это руководство до версии 4.0.1! Ибо все в наших руках. И агенты, и Semantic Web.

вторник, 29 июня 2010 г.

Beyond the petaflop: DARPA wants quintillion-speed computers

Beyond the petaflop: DARPA wants quintillion-speed computers

Not known for taking the demure route, researchers at DARPA this week announced a program aimed at building computers that exceed current peta-scale computers to achieve the mind-altering speed of one quintillion (1,000,000,000,000,000,000) calculations per second.


Что же касается России... Недавно попал на "вечер знакомств" седьмой рамочной программы (FP7) по теме "Высокопроизводительные вычисления, технологии программирования, параллельные вычисления". Мероприятие оказалось весьма поучительным.

Во-первых, у министерства хватило денег всего на 3 проекта, по каждой из заявленных тем :)

Во-вторых, все было в стиле "объявление о грантах публикуется 25 июня, прием заявок до 25 июля, а к августу уже все распределят" (за конкретные сроки не ручаюсь, но все было предельно сжатым).

В третьих, из всей России примерно по 0,5 - 1 такому проекту и наскребалось.

В-четвертых, представителей бизнеса было как-то совсем мало. Я бы сказал, нано-мало :)

Все это позволяет сделать неутешительные выводы: высокопроизводительные вычисления реальным игрокам российского рынка не нужны. Моделирование изделия не даст им преимуществ перед конкурентами. Моделировать им просто нечего.

Реально с 90-х и до сих пор работают всего две бизнес-модели.
  • Спекулянты: покупай готовые продукты на Западе и перепродавай в России.

  • Интригаторы: берем западную технологию, и продаем услуги на ее основе -- руссифицируем/настраиваем/интегрируем/сопровождаем...


В результате, суперкомпьютеры нужны только фрикам-ученым, надеющимся непонятно на что. И президенту, видимо, для пиара инновационности страны. Судите сами:

Военным -- не нужны. DARPA у нас нету. Самая реальная, на мой взгляд, инновация в текущих условиях -- надувные танки.



Авиапрому и космосу -- нет. Уровень автоматизации производства в этих областях просто зашкаливает. Дешевле экспериментировать на людях (Марс-500), чем создавать технику.

Телекомам -- не нужны. Потому что нет в стране телекомов, занятых разработкой. Только ОПСОСы и провайдеры. Возможно, вы знаете про какой-то инновационный по мировым меркам продукт, который сделал Вымпелком, МТС или Мегафон? Поделитесь с общественностью, не держите в себе...

Биотехнологам и фармакологам -- не нужны. Потому что компании производят практически только дженерики.

И так дальше по списку...

P.S. В конкурсной заявке DARPA указано, то требуются принципиально новые вычислительные модели, способные на порядки повысить производительность процессоров. Старье их уже не интересует.

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

суббота, 26 июня 2010 г.

Почему мы используем Java?..

...в агентах?
...во всех остальных проектах?
Почему Java -- основа нашего стека технологий?

Все просто!



суббота, 19 июня 2010 г.

Видео: Будущее экономики открытых исходных кодов

Beyond Nerds Bearing Gifts: The future of the Open Source Economy.

Понятное, доходчивое объяснение начинается с вопроса "как объяснить своей теще, что я зарабатываю разработкой свободного ПО?"

Затем, все принимает неожиданный оборот :)

Киберпространство как среда в которой живут и развиваются (усилиями разработчиков) программы, сравнивается с биологической средой. Эволюция, естественный отбор, стратегии выживания...

"В киберпространстве конкурируют не корпорации. Конкурирует софт. За время разработчиков. Если софт не привлекает разработчиков, он становится заброшенным и вскоре удаляется с дисков."



А дальше -- потрясающие аналогии организмов из мира биологии для проприетарного и открытого софта :)

Весьма в духе агентного подхода. Насладите себя! Рекомендую!