четверг, 31 мая 2007 г.

Google+Параллелизм: экспансия продолжается

Нужен ли параллелизм?...2 дня назад на Thinking Parallel появилась занятная статья - "How Much of the Industry Will Go Parallel?" - "Насколько параллелизм востребован IT-индустрией сегодня ?", в которой Michael Suess высказывает свои предположения по этому поводу. Нужно сказать, что Michael Suess вообще достаточно интересная личность, и с точки зрения параллельного программирования тоже ;) (особенно мне ценен его цикл интервью, ru: здесь и здесь). Дак вот Михаил считает, что параллельное программирование будет интересно прежде всего двум группам разработчиков. К первой группе относятся те, кто вечно борется с нехваткой ресурсов и производительности - это все возможные разработчики игр, систем моделирования, систем обработки сигналов и информации. Ко второй же ещё более малочисленной на сегодняшний день группе относятся разработчики, которые захотят использовать многоядерный параллелизм для придания своим приложениям большей интерактивности и других(не известных на сегодняшний день) преимуществ и фишек. Среди прочих Михаил приводит такой пример - вы ведете конференцию по ICQ\Skype, а параллельно с этим сторонняя утилита распознает некоторые ключевые слова в вашем диалоге и подыскивает информацию, которая может потенциально вас заинтересовать... скажем вы часто говорите про параллельное программирование - вот вам свежая подборка с тематических новостных сайтов и блогов, обсуждаете девушек - вот вам... ну вообще додумаете сами).


GearsИ все бы, как говориться, ничего, но вот только сегодня получаю подтверждение, что параллелизмом интересуются не только ресурсо-фобы(первая группа), но и Google. Новое приложение этой компании можно смело отнести к каркасу, который призван поддерживать вторую группу "параллельных разработчиков". Новый продукт называется Google Gears и призван помочь разработчикам в создании нового(в какой-то степени) класса приложений - offline-online application. Эти приложения работают в рамках браузера, но при этом для их работы не обязательно требуется доступ в интернет (т.е. для выполнения некоторых функций им может быть нужен доступ в сеть, но вообще они могут работать и без него). Краткое описание этой новинки от Google находиться здесь. И так, этот библиотечный каркас включает в себя:

  • Локальный сервер - используется для кэширования и обслуживания ресурсов, которые нужны приложению для работы (HTML, JavaScript, рисунки, видео и т.д.). Приложение получит доступ к ним локально, если доступ к удаленному серверу отсутствует.
  • БД - для хранения всего этого дела и прочей информации приложения
  • и самое интересное Пул процессов(worker thread pool). Концепция пула процессов далеко не нова - это некоторое хранилище процессов, которые выделяются по требованию приложения. Дак вот Google встроил такой пул в свой каркас, как раз для того чтобы упростить разработку интерактивных (т.н. насыщенных параллелизмом) приложений. Полное описание worker thread pool API находится здесь. Вкратце скажу, что процессы, которые выделяются из пула, могут взаимодействовать только через посылку сообщений. Сообщения представляют собой строки, если нужно передать не строку, требуется предварительная "сериализация". Отдельно отмечу, что в пуле хранятся не потоки операционной системы, а т.н. легковесные процессы, что в сочетании с использованием сообщений для взаимодействия таких процессов делают всю систему похожей на Erlang-овские системы.


Такие дела, да чуть не забыл, все это великолепие за лицензировано как Open Source.

Плоский MS



MS разработал новый тип пользовательского интерфейса для PC - стол, на крышке которого размещен здоровенный тачскрин (сенсорный экран). Называется это чудо инженерной мысли - Surface (Поверхность\Плоскость) Наблюдаются следующие отличия от стандартных интерфейсов, основанных на тачскринах:

  1. Экран Surface способен распознавать несколько одновременных нажатий (можно работать обоими руками)
  2. Большой размер Surface и его горизонтальное расположение позволяют работать сразу нескольким пользователям одновременно
  3. Surface способен узнавать ранее запомненные предметы, которые положили на поверхность экрана и совершать при их возникновении предопределенные действия. Так, например, компания T-Mobile, уже заказавшая несколько Surface предполагает расположить их в сети своих магазинов. Покупатель сможет подойти к стойке с Surface и когда он положит на неё свой мобильник, Surface по коду мобильника распознает марку и модель телефона и отобразит на экране совместимые с этим телефоном "прошивки", игры, рингтоны и пр. Затем пользователь ухватившись за одно из изображений этих продуктов перетащит их на свой телефон и продукт будет "перелит" в телефон, скажем, по WiFi.


Источник - incideHPC

Безопасность Vista

Известный центр тестирования CRN Test Center провел ряд испытаний системы безопасности новой операционной системы MS Vista, по результатам которых было заявлено, что система безопасности Vista ничуть не лучше аналогичной в XP. Грубо говоря те известные дыры, которые были в XP, благополучно по наследству перешли в Vista.
Обзорная статья - здесь.
Слайды иллюстрирующие тестирование - здесь.

Источник - EETimes

среда, 30 мая 2007 г.

SSE из управляемого кода

Ещё с 90х годов процессоры Intel и AMD поддерживают в некоторой степени SIMD параллелизм в форме MMX и SSE. Несмотря на то, что большинство наших программ ориентированы на MIMD вычисления, исследования SIMD параллелизма ведутся ещё с начала 80 х. Вообще это направление выглядит весьма перспективным, хотя и не настолько разрекламированным как многоядерные процессоры. В частности идеи векторизации весьма популярны среди суперкомпьютерного сообщества и сообщества FORTRAN программистов. Интерес к этой теме подогревается также GPGPU сообществом (см., например, здесь и здесь), что в сочетании с многоядерной чехардой, дает интересную почву для размышлений.

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

Поскольку мы не можем прямо исползовать SEE инструкции в управляемом коде, нам придется вначале создать небольшую DLL. Назовем её “vecthelp.dll” и экспортнем из неё всего одну функцию:

#include 
const int c_vectorStride = 4;
extern "C" __declspec(dllexport)
void VectMult(float * src1, float * src2, float * dest, int length) {
for (int i = 0; i < length; i += c_vectorStride) {
// Vector load, multiply, store.
__m128 v1 = _mm_load_ps(src1 + i); // MOVAPS
__m128 v2 = _mm_load_ps(src2 + i); // MOVAPS
__m128 vresult = _mm_mul_ps(v1, v2); // MULPS
_mm_store_ps(dest + i, vresult); // MOVAPS
}
}

“VectMult” принимает два указателя на массивы float-ов – “src1” и “src2” – каждый из которых имеет размер “length” и затем сохраняет результат их перемножения в массив “dest”. Обратите внимание мы перемещаемся по массиву с шагом 4 (c_vectorStride = 4). На каждой итерации мы загружаем 4 смежных элемента массивов “src1” и “src2” в XMMx регистры. Именно это делают SSE-инструкции “_mm_load_ps” . Затем с помощью “_mm_mul_ps” мы перемножаем эти 4 элемента параллельно. После этого результат сохраняется в массиве “dest”. Предполагается, что длина массивов кратна 4.

Теперь чтобы использовать этот параллельный умножитель из управляемого кода мы вынуждены использовать P/Invoke. Да при этом ещё нельзя забывать о том, что SSE работает с 16 байтным выравниванием(alignment), поэтому нам придется немного поколдовать, чтобы заставить CLR выдать нам его. Я размещают массив в стэке, чтобы не делать pinning массива(запрет на автоматическое перемещение переменной в памяти, без пиннинга сборщик мусора при устранении фрагментации памяти может произвольно менять адрес переменной, разумеется он автоматически перенастраивает все ссылки на новое местоположение переменной, но при интеропе это не допустимо и нужно либо делать пиннинг, либо размещать переменную в стэке). При больших массивах правда может возникнуть переполнение стэка. Короче это просто пример:

using System;
unsafe class Program {
[System.Runtime.InteropServices.DllImport("vecthelp.dll")]
private extern static void VectMult(float * src1, float * src2, float * dest, int length);

public static void Main() {
const int vecsize = 1024 * 16; // 16KB of floats.
float* a = stackalloc float[vecsize + (16 / sizeof(float)) -1];
float* b = stackalloc float[vecsize + (16 / sizeof(float)) -1];
float* c = stackalloc float[vecsize + (16 / sizeof(float)) -1];
// To use SSE, we must ensure 16 byte alignment.
a = (float *)AlignUp(a, 16);
b = (float *)AlignUp(b, 16);
c = (float *)AlignUp(c, 16);
// Initialize 'a' and 'b':
for (int i = 0; i < vecsize; i++) {
a[i] = i;
b[i] = vecsize - i;
}
// Now perform the multiplication.
VectMult(a, b, c, vecsize);
... do something with c ...
}
private static void * AlignUp(void * p, ulong alignBytes) {
ulong addr = (ulong)p;
ulong newAddr = (addr + alignBytes - 1) & ~(alignBytes - 1);
return (void *)newAddr;
}
}

Хотелось бы конечно, чтобы при этом результирующая производительность возросла в 4 раза. К сожалению P/Invoke делает свое черное дело и прирост производительности будет заметен только на больших массивах. Интересно многим ли из вас нужно вычислять произведение 16MB массивов. Кто-то безусловно занимается этим, но не думаю, что таких людей много. Однако даже за вычетом издержек на P\Invoke в итоге мы получаем 2 кратный прирост производительности на небольших массивах, 3х кратное увеличение на массивах большого размера.
Очевидно, что в будущем поддержка векторных операций в процессорах будет только расти и следовательно эти цифры изменяться в большую сторону. Возможно, даже когда-нибудь мы сможем пользоваться SSE, не прибегая к интеропу. Представьте – на 32х ядерной машине, если на каждом ядре будет стоять 16-ти позиционное векторное АЛУ, то мы в итоге получим 32х16 (512) потенциал для параллельного исполнения кода…, конечно, если мы сможем разбить нашу задачу на 512 независимых подзадач. Популярность GPU отчасти обусловлена более «широким» АЛУ, которыми они снабжены. Может быть как-нибудь я расскажу как можно сложить два массива параллельно с использованием пиксельных шейдеров и DirectX.

(с)Джо Даффи. Перевод мой.

Источник - Блог Джо Даффи (Joe Duffy)

Вторая жизнь Интел

Некоторое время назад MS открыла остров под названием “Visual Studio island” в онлайн-игре Second Life. На острове было несколько занимательных головоломок и прочее... Корпорация Intel видимо решила не уступать софтверному гиганту и также открыла собственное представительство в Second Life. В частности вчера проходила виртуальная конференция - ISN Lunch on Second Life, о чем незамедлительно известили блоггеры из Intel Software Network. Скриншот этой конференции вы можете видеть слева, а видео доступно на этой страничке.

Источник - ISN

суббота, 26 мая 2007 г.

Лед тронулся…?

Производитель процессоров больше не может ждать, когда мы – программисты начнем разрабатывать параллельный софт, для того чтобы многоядерные процессоры стали по настаящему востребованными. Об этой тенденции говорил Эдвард Ли (университет Беркли) в своей статье «Проблемы с потоками»:

“Интересно, что сами производители процессоров ратуют за многопоточное программирование, стараясь всячески продвинуть его в программистские массы. Их Эдвард Лидействия обусловлены тем, что с их точки зрения многопоточное программирование позволит использовать параллелизм (многоядерность), который они собираются продавать.
Так, например, Intel проводит активную компанию по поддержке обучения студентов многопоточному программированию. Если эта компания будет иметь успех, то следующее поколение программистов будет ещё более рьяно использовать потоки, что приведет к ещё более удручающим последствиям.”

Замечу, что Intel уже достаточно давно обращает внимание на продвижение идей параллелизма (и инструментов их поддерживающих) в программистские массы. Однако, будучи участником одного из таких семинаров (СПб, окт.2006) я не заметил каких-либо действительно современных предложений от Intel по решению проблем параллельного ПО. Оговорюсь, что под «действительно современными предложениями» я имею в виду то, о чем кажется, говорят все вокруг - более выразительные средства управления параллелизмом. На семинаре же Intel говорил об использовании OpenMP, о программировании на уровне мониторов\блокировок и о поддержке многопоточного программирования в .NET. Поэтому эта новостная заметка на EETimes привлекла мое внимание:

Интервью с главой лаборатории Intel по разработке микропроцессоров в Хиллсборо (Оригон, США) – Шекхар Боркар (Shekhar Y. Borkar).
Шекхар Боркар
Сегодня с развитием многоядерных процессоров должность разработчика параллельного ПО становится самой востребованной в Intel’овских исследовательских лабораториях по разработке микропроцессоров. Команда, численностью 250 человек, постоянно занимается разработкой прототипов DSL-ей(domain-specific languages) для описания параллелизма, а также параллельных версий существующих языков и приложений.

«В прошлом программы все работали быстрее и быстрее с увеличением частоты процессора, однако сегодня все изменилось – у нас больше не получиться получить прирост производительности «за так», халява кончилась - говорит Шекхар Боркар - Разработка параллельного ПО и распространение идей параллелизма в индустрии - «вот основная цель моей исследовательской группы. Очевидно, что параллельность ПО будет «удваиваться» каждые два года (или что-то около этого) – согласно закону Мура». 200 из 250 разработчиков лаборатории Боркара занимаются проблемами параллельного программирования. «К примеру сейчас - говорит Боркар - мы занимаемся проблемой внедрения языковых конструкций, описывающих параллелизм по данным, в интерпретируемые языки, такие как Ruby».

Наиболее перспективной областью исследований, по мнению Боркара, являются DSL-и – небольшие специализированные языки, предназначенные для описания параллелизма в таких областях как компьютерная графика, сетевые приложения, разработка отладчиков и библиотек. К примеру, Intel сейчас занимается разработкой нового языка описания сетевых (TCP\IP) взаимодействий в «более параллельном» стиле.

Компания также ведет разработку прототипов приложений в таких областях как распознавание и рендеринг в реальном времени. Считается, что поиск параллельных решения этих прикладных задач наиболее прост (тривиален). «Все, что вы делаете при распознавании или рендеринге в играх, так это работаете с матрицами – но параллельная обработка матриц хорошо известна нам ещё со времен суперкомпьютеров» - говорит Боркар, проработавший несколько лет в суперкомпьютерном подразделении Intel, сегодня уже почившим в бозе.

В ходе нашей беседы Шекхар не раз говорил о том, что считает, что разработчики всех уровней (от архитектора ПО – до кодера) должны обратить своё внимание на проблемы параллелизма: «Вокруг наших программ колышутся обширные поля параллелизма, жаждущие начала хорошей жатвы. Мы сейчас во многом выступаем в качестве проповедников параллелизма для индустрии и университетов. Однако мы понимаем, что такие координальные изменения требуют времени – около года или двух».

Сегодня такие университеты как Беркли, Стэнфорд, MIT, Иллинойский университет хорошо понимают необходимость обучения своих студентов и бакалавров технологиям параллельной разработки. «Изменение индустрии ПО происходит уже сейчас» - считает Шекхар Боркар.

Источник – EETimes

пятница, 25 мая 2007 г.

Параллельное программирование. Что делать?

Параллельное программирование. Что делать?



Автор - Joseph Landman(с) | scalability.org
Перевод - Петров Александр(с)

Ранее мы уже обсуждали некоторые аспекты будущего параллельного программирования и современных тенденций в области. Грубо говоря, на сегодняшний день мы можем выделить два типа параллельных систем и инструментов их создания – системы с разделяемой (общей) памятью и системы с распределенной памятью. Наиболее известными инструментами создания таких систем являются OpenMP и MPI, соответственно. Впрочем есть и другие типы систем, и соответственно другие инструменты, но наиболее широко распространены именно эти.

Проблемы?

Используя OpenMP, вы по сути дела снабжаете свой код некоторыми пометками, которые позволяют компилятору «развернуть» эти пометки в недостающий код. Т.е., другими словами, OpenMP является макрорасширением языка (языком в языке) – компилятор выполняет автоматическое распараллеливания вашего алгоритма, руководствуясь вашими пометками (иногда это вызывает интересные проблемы - пример). Однако OpenMP предполагает, что вы программируете систему с разделяемой памятью – OpenMP не способна генерировать код, предназначенный для распределенного исполнения.

Используя MPI, вы полновластно владеете своим кодом. Вы – а не компилятор выполняете основную работу, используя библиотечные функции MPI. Компилятор не способен оптимизировать (в плане параллелизма) ваш mpi-код, поскольку это всего лишь вызовы функций. Ещё хуже, что вы по сути дела находитесь в свободном плавании и вольны выбирать тот способ решения задачи, какой вам заблагорассудиться, понятно, что этот способ вовсе не обязательно будет лучшим или вообще правильным.

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

Я вовсе не хочу сказать, что OpenMP – это плохо. Мне нравиться OpenMP, но мы не сможем использовать OpenMP в распределенных системах (а именно за ними будущее высокопроизводительных вычислений). Я не хочу сказать, что MPI – это плохо, просто MPI – это довольно-таки низкоуровневый инструмент, используя, MPI вам приходиться явно прописывать все то, что обычно генерирует за нас сам компилятор.

MPI – это что-то вроде ассемблера в параллельном программировании. Поэтому используя его, нужно быть готовым к тому, что совсем не просто написать рабочий код, неп росто его отлаживать, не просто его оптимизировать. Большинство программ MPI-программистов дают лишь 10-15% прирост производительности при увеличении числа ядер. Очень редко эта цифра достигает 50+%. Проблема не в программистах (а вы как думали?!) – проблема в том, что при распараллелировании крайне тяжело выделить действительно продолжительные по времени исполнения куски кода.

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

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

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

Программирование масштабных многопроцессорных систем будет только усложняться с ростом их масштаба. К тому же очевидно в скором времени появиться не-SMP системы (aSMP - асимметричные многопроцессорные системы), а также системы, использующие дополнительные сопроцессоры (называемые также акселераторами или APU (accelerator processing units)). Любая из этих нелокальных систем потребует четкого представления принципов распределенного (как в пространстве, так и во времени) доступа к данным. Надеюсь мы сможем преодолеть господствующие сегодня стереотипы и найти простые способы решения этих непростых проблем.

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

Это Фортран.

Joseph Landman(с).




Данная заметка показалась мне интересной, поскольку она более-менее отражает сегодняшние стремления параллельных программистов (нет не стремление программировать на Фортране, а необходимость создания более выразительных инструментов) в интересном свете распределенных систем.

Реальными примерами систем, о которых говорит автор, являются Googl-овская MapReduce и системы на основе идей GPGPU (General-Purpose computation on graphics processing units (GPUs)).
MapReduce - сильно распределенная система – это кластер из 1800 узлов (в каждом по 2 Intel Xeon 2GHz), между которыми распределяются данные и задания. При таком количестве узлов одной их основных проблем кластера является его отказоустойчивость – в том, смысле, что при выходе одного узла система должна перенаправить его данные и его задания другому узлу и т.д. Система называется MapReduce – поскольку модель этой системы основана на использовании двух широко распространенных в функциональном программировании функций: Map (отображение одного множества в другое путем применения функции преобразования к элементам исходного множества) и Reduce (получение агрегированной характеристики элементов множества (нпр. их суммы)).


GPGPU cистемы принадлежат к другому классу систем, которые автор, называет APU-системы. В таких системах (аппаратно-программных комплексах, по сути) центральному процессору аккомпанирует целый ряд внешних, обычно специализированных вычислителей. Это могут быть как ПЛИСы, так и микроконтроллеры или специализированные микропроцессоры (нпр. сигнальные(DSP) процессоры). Очевидно, что такие системы прямо-таки насыщены параллелизмом (вычислителей-то много) и они не являются однородными (в отличие, скажем, от сегодняшних многоядреных процессоров). Они не являются однородными поскольку в них могут использоваться различные каналы связи между элементами системы, что влечет отсутствие локальности, о которой говорит автор. В GPGPU системах, в качестве специализированного вычислителя выступает процессор видео карточки.

Google Hot Trends

Чуть больше года после запуска Google сервиса Google Trends, 22 мая компания представила вниманию общественности новый инструмент анализа общественного мнения, основных тенденций и трендов. Новый сервис называется Google Hot Trends и в некотором смысле дополняет Google Trends. Google Hot Trends анализирует поток поисковых запросов к Google Search, Google News и Google Blog Search и составляет отчет о наиболее частых\популярных запросах. Основным отличием Google Hot Trends от Google Zeitgeist будет оперативность Hot Trends. В своем блоге Google утверждает, что данные Google Hot Trends будут обновляться несколько раз в день, тогда как Google Zeitgeist («дух времени») предоставляет лишь еженедельные, ежемесячные и ежегодные отчеты. Представляется, что сочетание Google Zeitgeist и Google Hot Trends будет особо плодотворным.

Источник – Quick Online Tips

Intel Mobile Metro Notebook - Тонкий ноутбук

Посмотрите на монетку!

Недавно Intel анонсировал прототип интересного ноутбука. Толщина этого чуда составит всего 1.7 см., а вес - 1 килограмм. (свешайте мне 2 кило ноутбуков, пожалуйста :). С задней стороны экрана размещается ещё один небольшой экранчик. Приятная вещица, вообщем, полюбоваться на неё можно на этом сайте или на картинках ниже (Для увеличения - нажмите на картинку).

Intel Mobile Metro NotebookIntel Mobile Metro NotebookIntel Mobile Metro Notebook





Источник - Intel Software Blogs

четверг, 24 мая 2007 г.

Microsoft vs Free World | Microsoft будет хорошим

Боб Маглиа
В продолжение истории с патентами...
Вчера, на все той же конференции Interop 2007 Боб Маглиа (Bob Muglia) вице-президент MS, отвечающий за корпоративное направление компании, заявил, что "патентные претензии к Open Source сообществу" не стоит рассматривать как "объявление войны MS и Open Source". Напротив Маглиа заявил, что ключевой посылкой всех действий компании является направление на интеграцию продуктов MS и продуктов других производителей, в том числе, входящих в Open Source сообщество. Компания понимает, что продукты MS должны просто и удобно интегрироваться в корпоративной среде предприятия. Лицензионная политика компании является, прежде всего, ответом на запросы клиентов, которые, по словам вице-президента MS, хотят быть уверенными, что, используя тот или иной продукт, они не смогут стать жертвой чьих-то патентных претензий. Маглиа заявил, что подчас клиенты MS заявляют о своей неприязни к Open Source продуктам и производителям, именно из-за их нечеткой лицензионной политики.

Марк Ричард Шаттлворт, второй космический турист

Ранее заявление по этому поводу уже сделал Линус Торвальдс, а на этой неделе в своем блоге опубликовал сообщение Mark Shuttleworth - основатель Ubuntu (один из популярных дистрибутивов Linux). "MS не является угрозой для Linux", говорит Shuttleworth, "в скором времени Майкрософт сам будет бороться за смягчение патентной политики, поскольку компания с каждым годом выпускает все больше и больше продуктов и может стать хорошей добычей для других патентодержателей".

Между тем MS уже активно взаимодействует с Open Source сообществом. Так, например, у всех на слуху её сотрудничество с Novell (спонсор Mono Project). Кроме того сам MS выпустил уже четыре Open Source продукта (FlexWiki, Windows Template Library (WTL), Windows Installer XML (WiX), Windows CardSpace).

Источник - EETimes

среда, 23 мая 2007 г.

Real-World Haskell

The Lambda Potato

Bryan O’Sullivan, Don Stewart и John Goerzen совместно с издательским домом O’Reilly создают книгу о языке Haskell и его практическом применении. Задача этой книги, по словам её авторов - дать читателю чувство уверенности в обращении с этим функциональным языком. "Мы надеемся, что после прочтения нашей книги, вы сможете создавать реальные полнофункциональные приложения на Haskell и удобные в использовании библиотеки" - пишут авторы на сайте книги. В книге будут освещены следующие вопросы:

  • проектирование структур данных
  • как, где и когда использовать монады
  • использование параллелизма в Haskell, модели параллелизма в Haskell
  • как создавать собственные парсеры в Parsec.
  • как организовывать ввод\вывод, в том числе бинарный ввод\вывод в любых его формах и проявлениях
  • каким образом можно взаимодействовать из Haskell с функциями, написанными на C
  • программирование БД, Net'a и GUI
  • обработка исключительных ситуаций и ошибок
  • основные Haskell-библиотеки
  • использование системы типов для поиска и предотвращения ошибок
  • тулзы - QuickCheck, Cabal и Haddock
  • языковые конструкции Haskell на 5+: GADT(Generalised Algebraic Datatype) и MPTCs.


Примечательно, что авторам удалось договориться с O’Reilly о том, что они смогут постепенно выкладывать на сайте книги её главы.

вторник, 22 мая 2007 г.

Сеть – это компьютеры. Cisco и Web 2.0

Джон Чамберс (John Chambers, CEO Cisco)

"Использование в менеджменте, в процессе управления персоналом и в целом при управлении процессами компании таких технологий, как социальные сети, и прочих технологий, основанных на Web 2.0, дает среднегодовой прирост производительности труда работников от 3 до 5 %" - утверждает исполнительный директор корпорации Cisco Systems Джон Чамберс(John Chambers). Это заявление Чамберс сделал на открытии конференции Interop 2007 в Лас-Вегасе.

Чамберс заметил, что ещё в 2000 году на выставке Consumer Electronics Show, как раз перед тем как производительности труда в телекоммуникационной отрасли упала на 2%, он предрекал появление нового типа Web-приложений. В общем и целом, считает Чамберс, компании, перестроившие свой бизнес в соответствии с этими изменениями пережили кризис 2000 годов достаточно спокойно.

В прошлом году ключевым моментом в улучшении управленческой модели компании стало активное использование таких инструментов как телеконференции, видеосвязь и прочих «дистанционных технологий». Кроме телеконференций (высокого качества и в реальном времени) в этот инструментарий входят также IP телефония, так называемые электронные доски (whiteboards), интеграция мобильных пользователей в единую сеть компании. Но все же основным и главным средством стала видеосвязь в реальном времени.

В качестве примера Чамберс привел следующие факты. В 2005 году, когда компания ещё только начинала использовать Web 2.0 технологии, процесс покупки Scientific-Altanta занял 45 дней. В этом году Cisco удалось завершить приобретении компании WebEx всего за 8 дней.

Web2.0-взаимодействие мобильных пользователей в Cisco базируется на коммуникаторах (unified personal communicator, UPC). Если не затрагивать вопросы безопасности, можно говорить, что любой пользователь в Cisco может мгновенно получить доступ к любой информации, хранящейся в едином корпоративном хранилище данных. Для обеспечения более оперативного взаимодействия совместно с UPC в Cisco на уровне компании используются GPS и сотовая связь.

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

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

Источник - EETimes

Пусть всегда будет солнце!

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

На данный момент существуют некоторые технологические проблемы, связанные с ухудшением визуальных качеств "экранов-солнечных батарей", но по мнению Моторола, они скоро будет решены.
Источник - EETimes

Круглые в Москве на Яндексе.

Теперь на Яндекс.Картах можно посмотреть спутниковые снимки Москвы.

В процессе подготовки, кроме обычных домов и улиц, группой работников Яндекса, во главе с Машей Циркуль, менеджером аномальных кругов, была обнаружена группа подозрительно совершенных объектов. Объединяет их то, что они совершенно круглые.

Числа

Ровно 11 дней назад на Яндекс.Директ было размещено миллионное рекламное объявление, первое объявление было размещено 31 июля 2001 года. Итого за 2110 дней - 1 000 000 объявлений, сообщает Алексей Амилющенко, любитель больших чисел.

Но это ещё что! В этом году нас ожидает удивительное по своей уникальности событие - в этом году в июле будет 7 число (первая суббота). А это значит, что в этом году в нашем календаре будет дата 07.07.07. Именно в этот дней завершиться интернет конкурс - New 7 Wonders of the World -, который определит новые 7 чудес света. В списке претендентов на место в семерке - московский Кремль и Собор Василия Блаженного. Ажиотаж по поводу этой даты подогревается всеми и всюду, так, например, стоимость столика в некоторых ресторанах 6-ого числа отличается от стоимости этого же столика 07.07.07 более чем в 100 раз! К тому же суббота самый популярный свадебный день. Подробнее о субботней свадебной лихорадке читайте здесь.

Источники - Блог Яндекса, Росбалт.RU, Turist.Ru

понедельник, 21 мая 2007 г.

Разработан доступный SDK для сенсорных панелей

Компания Cirque Corp. создала небольшой тулкит(tool kit) для разработки устройств с сенсорным управлением, названный GlideSensor Development Kit.



Данные устройства поддерживают интерфейсы SPI и I2C. И по словам, Дугласа Мура, вицепризидента Cirque они могут быть запрограммированы на нажатие или перемещение пера или пальца человека. Весь комплект разработчика стоит 500$.

Источник - EETimes

И движется за палкой с черепком...



Sigfpe в своем блоге A Neighborhood of Infinity опубликовал интересную заметку о своих экспериментах с собственным роботом. Там же Вы найдете небольшое видео, кадры из которого я поместил слева и внизу. Этот небольшой самодельный робот состоит из трех частей:



  1. Микроконтроллера MAKE (сделан на основе микроконтроллеров ARM (более точно Atmel AT91SAM7X256 или сокращенно SAM7X))
    Программируется на С или ASM, способен работать под управлением FreeRTOS (Open Source ОС реального времени).
    Перефирию мк MAKE унаследовал от SAM7X - Ethernet, USB 2.0, RS232, SPI, TWI (or I2C), JTAG, CAN. Более детальное описание этих интерфейсов на русском - здесь.
  2. ИК датчиков от фирмы Sharp
  3. Станины Rigel Robot Base

Для программирования этого робота Sigfpe использовал Haskell, точнее Sigfpe написал DSL(Domain Specific Language), переводящий код Haskell в код на C с вызовами API FreeRTOS. Таким образом он программирует своего робота, не задумываясь о всех низкоуровневых копашениях, которые требуются при работе с FreeRTOS из C.

















Вот пример кода на Haskell, который заставляет робота двигаться за палкой как это происходит на видео(кстати Sigfpe пишет, что на конце палки укреплен черепок, оставшийся у него еще с Halloween'a, жаль этого не видно на видео):


main = writeMakeController "rigel" f where
f inp = Output {
servoSpeed0 = 545+leftSpeed,
servoSpeed1 = 550-rightSpeed,
servoSpeed2 = 550+leftSpeed,
servoSpeed3 = 540-rightSpeed
}
where
rightSpeed = larger (threshold 300 leftSensor)
(threshold 300 centreSensor)
leftSpeed = larger (threshold 300 rightSensor)
(threshold 300 centreSensor)
centreSensor = smooth $ adc0 inp
leftSensor = smooth $ adc5 inp
rightSensor = smooth $ adc4 inp
smooth x = (x + delay 0 x + delay 0 (delay 0 x) + delay 0 (delay 0 (delay 0 x)))/4
threshold m x = x />=/ m ? (256,0)
larger x y = x />=/y ? (x,y)


Код может быть не очень понятен, но мне нравится :).
Источник - A Neighborhood of Infinity

У корейцев чуть не стырили WiBro.

Что?! Вы не знаете, что такое WiBro? До сегодняшнего дня я тоже... Оказывается это основанный на WiFi стандарт, разработанный фирмой Samsung для сотовой связи. Более точно разработкой WiBro занималась фирма Posdata, один из сотрудников которой, по заявлению представителя корейских МВД, сегодня попытался переслать по email конфиденциальные данные относительно WiBro трем гражданам США. Все что известно об этих американцах, так это то, что они работают в компании, название которой начинается с буквы "I". :) За это корейцу были обещаны 190 млн. тугриков США. Интересно, что сами представители Posdata заявляют о том, что в случае разглашения этих секретных данных, фирма понесла бы убытки всего лишь на сумму 95 млн.$.

Источник - EETimes

суббота, 19 мая 2007 г.

Битвы гигантов

В битве процессорных гигантов в очередной раз наблюдается интересная ситуация – AMD бросает вызов Intel. На этот раз компании схлестнуться на берегах 4-х ядерных процессоров. Как Вы уже, наверное, знаете AMD сейчас ведет разработку своих 4-х ядерных флагманов: ими станут процессоры Phenom и Barcelona. Феномен, как переводится название первого процессора, будет нацелен на покорение десктопной части рынка, тогда как Барселона, будет продолжать семейство Opteron’ов, предназначеных для серверов.



Однако, обо всем по порядку. Во-первых, на сегодняшний день никто не ставить под сомнение лидерство Intel на рынке 4-х ядерных процессоров. Компания уже сегодня активно продает десктопные Core 2 Quad и Core 2 Extreme и аж 9 вариантов серверных процессоров Xeon. Процессоры всех этих семейств имеют по четыре ядра. Кроме того, Intel заявляет о начале производства во второй половине этого года двух ядерных Yorkfield и Harpertown, которые будут производиться по 45-нм. технологии.

В таких жестких условиях AMD остается лишь делать упор на качество своих продуктов. В частности излюбленным заявлением этой компании является то, что четырех ядерные процессоры AMD будут настоящими четырех ядерными процессорами, тогда как, те процессоры, которые сейчас продает Intel, на деле просто «компонуются» из двух двухядерных. Правда Intel справедливо замечает, что покупателю безразличны эти композиционные особенности процессоров, важна лишь конечная производительность. (Кстати, все это уже было, когда AMD выпускал свой Athlon 64 X2, названный “true”-двухядерным, в пику Intel’овскому Pentium D, в котором, точно также как и сейчас, были просто совмещены ядра)

Справедливости ради, нужно заметить, что к проектированию своих процессоров AMD всегда относится крайне ответственно. Так при разработке Phenom и Barcelona были полностью сменены наборы команд процессоров, модули перемножения чисел с плавающей точкой, введена возможность создания страниц памяти объемом до 1-Гигабайта и т.д. Значительные улучшения коснулись и периферии процессоров – была разработана новая, третья версия собственного интерфейса AMD – HyperTransfer, который позволяет поднять общую пропускную способность процессорной шины до 20.8 Гигабайт\сек.

Заметим, что в феврале AMD говорила о том, что её новые процессоры будут производиться по 65-нм. технологии, тогда, как было выше отмечено, Intel уже в конце этого кода будет продавать «45-нм. процессоры». Переход к более детализированной технологии позволяет снизить общее энергопотребление процессора. AMD, правда, поспешила заявить, что уже начала разработку 45-нм. прототипов на своем заводе в Дрездене.

Кроме того, компании уже сейчас ведут активную артподготовку для своих 8-ми ядерных гигантов. Так Phenom будет способен работать в составе материнских плат с двумя сокетами, а четыре Barcelon’ы будут отлично себя чувствовать в 4-х сокетной материнской плате.

Напоследок отметим, что ещё одним камнем преткновения AMD и Intel является поддержка технологий виртуализации на базе своих процессоров, но эту тему я надеюсь затронуть в следующий раз.

Источник – EETimes

Смотри что ты печатаешь!

Именно таким мог бы быть слоган нового продукта от Артемия Лебедева. Его студия завтра начинает продажы клавиатуры с дисплеями на кнопках. Кстати почему то, картинка этого гаджета гораздо лучшего качества выложена Артемием на его западном(.com) сайте, а не на .ru. Лебедев не верит в наших покупателей?
Лебедев А.
При этом клавиатура будет изменяться при том или ином действии пользователя - например, при нажатии Caps Lock, все буквы на кнопках станут большими, а при смене кодировки (нпр. с QWERTY на DVORAK) поменяются местами.

пятница, 18 мая 2007 г.

Больше чем Интернет.

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

"Следующая революция, эффект от которой будет сопоставим с эффектом от появления Интернета, будет экологической. Это будет революцая энергосберегающих и экологически чистых технологий" - говорит Билл Джой, один из основателей Sun Microsystems, принимавший также участие в создании языка Java.

По всей видимости Билл надеется на "экологическое давление" законодателей ЕС и США на промышленность и бизнес, ибо только это, по моему мнению, способно вывести рынок энергосберегающих технологий на мировой уровень.

А пока что, проблеме экологии посвящена одна из статей майского выпуска IEEE Spectrum и интересная статья на Элементах. (К сожалению выложить статью со Spectrum'а в открытый доступ я не могу, но советую вам подписаться на этот журнал. Подписка на IEEE Computer и IEEE Spectrum стоит всего лишь 1500р. в год для членов IEEE Computer. Стать членом IEEE вы можете здесь.)

Кроме Билла из Sun экологией занялся и Билл Клинтон, который организовал проект по переводу отопительных систем мегаполисов мира (в том числе Москвы) в более экологичное и бережливое русло. Достаточно думаю сказать, что кроме экс-президента США в этом проекте участвуют 5 крупнейших мировых банков. Все вместе они готовы потратить на проект около 1 млрд долларов США.
и Кто знает, возможно, следующим богатейшим человеком мира будет эколог...

MS знает почему Винды падают

В то время как Андромеда со скоростью 120 км\сек надвигается на нашу галактику, а над алчными англичанами и их деньгами ставят бесчеловечные опыты, компания Microsoft проводит ежегодную конференцию WinHEC(Windows Hardware Engineering Conference), на которой, среди прочего, заявляет, что современные ПК и ноутбуки должны обладать ошибко устойчивой памятью. В такой памяти применяется кодирование с исправлением ошибок.



Microsoft уже на протяжении 4 лет собирает лог-информацию о крахах и падениях своих ОС и платформ, и дело тут не в мазохистских наклонностях MS, нет, похоже в этом случае компания действительно заботиться о надежности и устойчивости своих решений. 18 месяцев назад доступ к этой информации (Online Crash Analysis) был открыт. (На самом деле все мы сталкивались с работой OCA - это те самые милые окошечки, предлагающие отправить отчет об ошибке Майкрософт.).

Проведенный анализ показал, что в десятку самых распространенных причин сбоев компьютера входят ошибки, связанные с нарушением целостности памяти. При этом, грубо говоря, происходит спонтанное инвертирование одного или нескольких битов памяти. Причинами такого поведения памяти может быть что угодно - радиация, "космические лучи" и т.д.
Сейчас память с помехоустойчивым кодированием применяется в основном в серверных платформах. Широкому распространению такой памяти, на котором настаивает MS, препятствует её достаточно высокая стоимость - OEM производители не хотят рисковать, повышая цены, ведь никто не гарантирует, что конкуренты обязательно будут использовать данный вид памяти.

Источник - EETimes

четверг, 17 мая 2007 г.

MS всерьез возьмется за потоки

MS собирается усовершенствовать свою линейку серверных ОС. Похоже в этот раз ребята из Майкрософт всерьез задумались о параллелизме. Не так давно Билл Гейтс уже обращал внимание на эту проблему и, теперь, мы можем наблюдать более конкретные заявления от более конкретных людей в MS. На данный момент MS заявляет о том, что компания действительно будет уделять гораздо больше внимания параллельному программированию и внедрению параллелизма в свои ОС, в том числе в MS Windows Server. Однако этот процесс будет достаточно продолжительным и займет не меньше 2 лет. В частности в MS Windows Server 2008 не планируется значительных изменений в плане поддержки многопоточности (т.е. по прежнему будет в этой ОС будет лимитировано число потоков - 64 потока на один процесс).

Производители процессоров заявляют, что потребитель не ощутит преимущества многоядерных платформ, если программисты не будут разрабатывать программы с высоким уровнем параллелизма. Этот факт крайне огорчает производителей процессоров. Об этой ситуации уже не раз и не два говорили и в академических кругах (см., например, мой перевод статьи Эдварда Ли) и в инженерных сообществах - см., например, цикл интервью Михаила Сьюсса с Идолами параллельного программирования. Из этого цикла я переводил интервью с Джо Армстронгом и с Джо Даффи.

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

Пока MS трясется над патентами, в Mono кипит работа



Вы уже наверное знаете, но вдруг! вдруг! кто-то ещё не знает)

DLR (Dynamic Language Runtime) работает под Mono... и это всего лишь через 16 дней после Майкрософтовского релиза DLR. Ура товарищи! :)

Как написать проверку орфографии («спеллчекер» в 21 строку)

(c) Питер Норвиг
Перевод: Петров Александр


Кто такой Питер Норвиг (Peter Norvig)

Питер Норвиг американец, возглавляет исследовательское отделение компании Google.

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




И так, приступим...


На прошлой неделе два моих друга (Дин и Билл) независимо друг от друга сказали мне, что они поражены работой Гугловского корректора орфографии. Как здорово и быстро он работает, говорили они. Напишите в строке поиска, например «праферка» и Гугл любезно поправит вас – « Возможно, вы имели в виду: проверка». (прим.перев. Стоит, конечно, отметить, что все ломается, если захотеть). Поисковики Microsoft’a и Yahoo работают тоже хорошо. Меня же удивило то, что изначально я думал, что Дин и Билл будучи специалистами в области математики обратили внимание на отличную работу проверки орфографии в Гугле потому, что осознавали те проблемы, которые возникают при статистической обработке текста и при решении таких задач, как проверка орфографии. Однако как оказалось оба моих друга математикой не занимались, и вообщем-то моё предположение оказалось не верным.

Я подумал, что многим будет интересно узнать, как реализуются орфографические корректоры.

(продолжение...)

среда, 16 мая 2007 г.

На тебе сошелся клином белый свет....

В настоящее время компания Access Optical Networks (AON) ведет разработку весьма интересных устройств хранения информации - она разрабатывает голографическую систему хранения информации на основе кристаллов. Причем запись информации в это устройство будет вестись прямиком через оптоволоконную сеть. Свет переносит информацию и свет её сохраняет. Скорость доступа к такому устройству составит около 1 Gbit\sec, ёмкость хранилища - 1.2 TBytes (terabytes). Причем интерфейс между хранилищем и сетью будет полностью "оптоволоконный", что позволит избежать потерь при преобразованиях "свет <-> электронный сигнал". А сама оптоволоконная сеть будет способна передавать информацию со скоростью 160 Gbit/sec. Планируется, что данная система появиться на полках магазинов в 2008 году.

Бегло рассмотрим принципы голографического хранения информации.
Грубо говоря, голографические носители являются более усовершенствованными CD, DVD, Blu-ray, HD-DVD и т.д. При записи данных на CD лазер осуществляет запись информации на его поверхности. В случае DVD запись ведется по слоям носителя. Голография же предусматривать запись информации по всему объему носителя. Два рисунка ниже пытаются пояснить на пальцах как оно работает:

Запись данных

Чтение данных

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

Вообще-то тут надобно обладать достаточно глубокими познаниями в области оптики и физики, но надеюсь общее представление о голографическом хранении у Вас сложилось.

Источник - EETimes, How The Stuff Works

вторник, 15 мая 2007 г.

Microsoft vs Free World | Мнение Линуса Торвальдса

В продолжение темы про MS vs OpenSourсe. Вчера Линус Торвальдс (Linus Torvalds) прокомментировал заявления "двоих из Microsoft". Линус Торвальдс. Ведущий разработчик Linux OS Kernel
Одним предложением мнение Линуса по поводу патентных претензий Microsoft к сообществу Open Source в общем и коду Linux в частности можно выразить как "Брехня.". Пока Майкрософт не предоставит реальных фактов нарушения Линуксом(Linux) патентов MS, все заявления компании следует воспринимать как не более чем пустой треп. На деле, по мнению Линуса, MS сам нарушает кучу патентов и возможно компании стоит повнимательней присмотреться к коду Windows пока этого не сделал кто-нибудь другой. Майрософт лишь заявил о наличии 235 нарушений патентов со стороны Linux и Open Source, однако список конкретных нарушений до сих пор не опубликован.

Источник - EEtimes

воскресенье, 13 мая 2007 г.

Microsoft vs Free World | Ok, let it roll...

Кто не знает кто такие Брэд Смит(Brad Smith) и Горацио Гутьеррез (Horacio Gutierrez) ?!

Конечно! Все знают - это свободолюбивые и честные люди, трудящееся на благо всего человечества и в особенности Microsoft ! Не так ли...

Недавно эти двое оффициально заявили, что сообщество Open Source нарушило около 235 патентов, выданных фирме Microsoft. И Microsoft хочет денег!

Именно этому посвящена статья в Fortune.

Любитель патентов: CEO Microsoft Стив Балмер.Патенто-ненавистник: Президент Free Software Foundation Ричард Столлман.

Источник - Cable News Network

суббота, 12 мая 2007 г.

От Крея до Рамсфельда

Сеймур Крей
В апрельском выпуске IEEE Computer приведена любопытная статья, обозревающая долгий и непростой путь развития суперкомпьютерной индустрии в США. Этот путь в основном можно описать одним словом - "Cray". Суперкомпьютеры, разрабатываемые корпорацией Крея были основной ударной силой в высокотехнологичной гонке между США и Японией (да-да, в это время был ещё СССР и холодная война, но эту гонку мы уже тогда проиграли). По сути дела именно в то время были разработаны векторные и матричные процессоры, распределенные системы вычислений (которые сейчас по-модному называются GRID) и т.д. В 1991 Альберт Гор разрабатывает указ "High-Performance Computing and Communication Act". Этот указ ознаменовал конец Золотого века суперкомпьютеров в США - холодная война закончилась, стресс от гонки вооружений тоже постепенно сходил на нет, происходило сокращение "военной части" бюджета США и Крей со своими компьютерами стал нужен лишь метеорологам, да технологам. США решили вложиться в интернет и масштабные университетские проекты.
Дональд Рамсфельд
Однако это вызвало озабоченность некоторой группы людей (они не учились в ВУЗах, а бегали с пистиками по полям), поэтому в 2001 г. Дональд Рамсфельд объявил о начале беспрецедентной программы - Future Combat Systems (FCS) - программы, которая должна была к 2010 году превратить США в самую.... короче которая должна была вернуть старые добрые времена холодной войны и больших военных бюджетов. И как нестранно Рамсфельд весьма и весьма преуспел по части последнего - в 2002-2005 годах на программу было потрачено 140-180 миллиардов $. Ядром этой программы было детище Дональда - беспилотные системы вооружения. Такой объем денежных вливаний вызвал бурный рост проектов в области ИИ (не замечаете аналогии с Крэем :). Была разработана специальная ОС - LynuxWorks - сверх надежная и не очень дорогая, каких-то 10-15 милионов $. Результатом всей этой заварушки должна была стать система, объединяющая в беспроводную сеть сотни беспилотных устройств, ведущих целенаправленное уничтожение врага и т.д.
Но Рамсфельд не учел одного - он не учел Буша и войны в Ираке. Это привело к тому, что 2 дня назад конгресс отказался финансировать проект FCS и сократил его финансирование на 867 миллионов $. Под сокращение попали роботы и беспилотные системы вооружений. Круг замкнулся. Теперь видимо США опять возьмется за суперкомпьютеры :)

Мото будет вонять


Моторолла запатентовала сотовый телефон, способный издавать определённые запахи. Пахнущая часть телефона конструкционно будет выполнена в виде отдельного устройства, соединенного с телефоном по беспроводному (видимо WiFi) каналу. Кому и зачем эта благоухающая вонючка может потребоваться пока можно только гадать, а точнее нюхать.





Источник - EETimes

Audio Spotlight


Не так давно в прессе, СМИ и блогах появилась информация о новой разработке в области акустики - Audio Spotlight (разработчик Holosonic Research Labs Inc). Данное устройство позволяет задавать достаточно узкий (в пространстве) "коридор" для распространения звука. Например, можно ограничить радиус слышимости звука одним метром - люди, находящиеся в этом радиусе будут слышать то, что вы будете транслировать, люди вне радиуса нет. Интересно, будут ли применять данное изобретение совместно с Google's PageRank on Street :)


Источник - РБК ТВ, DV-RECLAMA

пятница, 11 мая 2007 г.

На Деребасовсой хорошая погода...

на Брайтон Бич опять идут дожди.

В Лос-Анджелесе бушуют пожары:


а в Ставраполье град с мячик для пинг-понга:



жуть...
Источники - Вести.Ру, УралПолит, Lemonodor

четверг, 10 мая 2007 г.

Убить Си 2

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

Те самые системщики, которых программисты подчас недолюбливают за слишком, по их мнению, приземленный стиль работы, рвутся вперед к светлым далям высоких абстракций.
Вице президент компании Forte Design Systems Майк Мередис (Mike Meredith) говорит о том, что при разработке и программировании железа не целесообразно использовать С и С++. Мередис занимается разработкой потребительской электроники, беспроводных систем связи и систем безопасности. И при этом он не любит Си! По счастью Денис Ритчи ещё жив и ему не пришлось лишний переворачиваться... Чем же Си, который испокон веков был чуть ли не самым близким и родным машине языком, так не угодил разработчикам аппаратуры ?!

Ответ для меня прост - Гордон Мур(Moore) убил Си, сегодня в вотчине Си возможности аппаратуры превышают возможности ПО. При разработке аппаратуры нужны инструменты, играючи описывающие параллелизм, являющийся неотъемлемой частью сегодняшнего железа. На Си мы можем легко запрограммировать последовательный процесс, четко описав в его рамках взаимодействия через вызовы функций, но параллельное программирование на нем превратиться в...

Именно поэтому сегодня при разработке аппаратуры используются такие языки параллельного программирования как VHDL и Verilog, а на более высоком уровне, на уровне системы используется SystemC и SystemVerilog. Именно поэтому в Беркли существует проект Ptolemy и именно поэтому С приказал долго жить.

Источник - EETimes.

среда, 9 мая 2007 г.

VladD2 vs Microsoft's Gates

Некоторое время назад когда на RSDN обсуждали степень распространенности параллельного программирования и причины связанных с ним трудностей, Влад Чистяков (VladD2) в очередной раз обругал MS (imho, почем зря) и сказал буквально следующее:

У меня вообще складывается впечатление, что ситуация с многопоточностью сегодня вточности повторяет ситуацию с языками программирования лет 10 назад. Ребат из МС и Интел тупа незнали что кроме С есть еще что-то. По ходу дела выдумывали КОМ-ы и другую хренатень вместо того чтобы просто изучить имеющийся опыт.Сейчас МС во всю копает в области языков. Поддерживают разные проекты в этой области.Ну, а в области параллелизма все как и 20 лет назад. Ничего нового. Языки 95-ого года выхода имеют и то большую поддержку параллелизма. А залихватски Дафни несут откровенный бред.

Думаю, что многие с ним согласились бы, но только не Гейтс.

На прошедшей в марте конференции 2000 MVP ("Most Valued Professionals") глава корпорации заявил:

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

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


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

Look once... and pay. PageRank on the street.

Совсем недавно узнал, что оказывается Гугл сделал всех на рынке поисковых услуг за счет такого маркетингового хода как PageRank (вообще-то это алгоритм расчета ранга(веса) web-страницы, но сказать, что успех Гугла на рынке связан с алгоритмом, у меня язык не поднимается). И вот после того, ка PageRank помог Гуглу стать мировым лидером среди поисковиков, компания решила повторить этот трюк.

Понятно, что Гуглу и целогого net-a мало, поэтому он пошел в народ, так сказать, а именно на наши с вами улицы и в магазины. Идея, которую Гугл будет реализовывать совместно с компанией Xuuk, заключается в том, чтобы подсчитать сколько раз прохожий посмотрел на рекламный щит, и в зависимости от этого варьировать цену того или иного рекламного материала.

За техническую сторону дела отвечает небольшая ИК камера, способная определить смотрит ли на неё чей-нибудь глаз или нет. (похожим образом работает "защита от красных глаз" в цифровых фотоаппаратах). Вот собственно и сама камера -

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

Источник - EETimes

CFD и 16 форумов

Ввязался в авантюру - в группе из 3 человек реализовать систему моделирования для лабораторных по БЖД(безопасность жизнедеятельности). Оказалось, что очень бы хотелось моделировать потоки вещества и энергии (что является непосредственной задачей вычислительной гидродинамики, или по буржуйски CFD - computational fluid dynamics). Решил спросить совета на форумах, т.к. специализированного форума не нашел решил задать на нескольких, оказалось затягивает :)

Итого 16 форумов. Ответов правда немного, а путных ещё меньше.