May 5th, 2007

with Cat The Cat

IBM-то, того.

Похоже, накрывается.

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

PS
И еще один интересный комментарий, показывающий поведение инвесторов (хотя и американцев).
with Cat The Cat

К вопросу поддержки Эрланга.

Erlang не поддерживается фирмой Эрикссон, чтобы вы знали.

А то в очередной раз натолкнулся. ;)

После пилотного использования в AXD301 он был запрещен к использованию в Эриксоне. Эриксон хотел быть потребителем программных продуктов, а не их производителем. После чего все эрлангисты уволились и организовали специальную фирму. А Эрланг продолжает использоваться в Эриксоне, поскольку "охота, она пуще неволи." ;)

Инженеры используют, а менеджеры смотрят сквозь пальцы, поскольку работа делается. ;)

Это просто прояснение ситуации, никак не очередной наезд. Ну, не очень большой внеочередной наезд. ;)
with Cat The Cat

Нашел одного иностранного ЖЖиста через Google Alerts.

pozorvlak

Нынешний его пост прекрасен:
...The strong IP laws are not just a short-sighted, short-term extortion racket, they're a strategic move aimed at safeguarding long-term economic power. They're still doomed and short-sighted, mind, but they're doomed and short-sighted on a higher and more strategic level.
Отлично, по-моему. ;)
with Cat The Cat

ironpeter хотел Хаскеля, но есть вещь попроще.

Есть такая штука - GPGPU.

Одним из вариантов этого GPGPU является язык BrookGPU - вариант языка Brook с расчетом его использования вместе с видеоускорителями.

Идея языка проста и называется она stream-kernel. Мы простыми функциями которые называются kernel обрабатываем данные, уложенные в stream. В случае с GPU kernel должен быть транслируем в шейдеры и данные находятся в текстурах.

Как выглядит kernel:
kernel void sumalpha(float arga<>,float argb<>,float alpha,out float result<>) {
   result = arga*alpha+argb*(1-alpha);
};
arga, argb и result - stream, потоки. В нашем ядре sumalpha мы складываем их поэлементно с "прозрачностью" alpha. alpha - это параметр ядра.

Вызов тоже прост:
    ...
    float a<100>, b<100>;
    ... иннициализация a и b ...
    float res<100>;
    float alpha = ...;
    sumalpha(a,b,alpha,res);
В принципе, ко входным потокам мы можем адресоваться произвольно instream[i,j], но на выходе результат пишется в текущую точку выходного потока (выходных потоков). Ее можно определить с помощью функции indexof(stream).

Что для всего этого есть: сортировка на GPU со сложностью O(Nlog²N) (bitonic sort), трассировка лучей. Это все есть в примерах.

Определенный минус всего этого дела - заточенность под хардвару, конкретно, под GPU. Даже целые числа конвертируются из (в) float.

Сама штука представляет собой компилятор с оного BrookGPU в C++ и систему поддержки времени исполнения.

Мне идея нравится. Она проста и достаточно элегантна.

Для того же Cell ее можно слегка улучшить - Cell имеет лучший интерфейс к памяти процессора, чем GPU, поэтому ту же трассировку лучей получится сделать значительно быстрее, не надо будет перекодировать деревья в текстуры, достаточно добавить обмен с памятью процесса. Соответственно, вместо загадочного aKDTreeStream[i].x можно использовать нормальный aKDTreePtr->splitCoord.

Вот. ;)

Если что, мы в прошлом году это дело обсасывали достаточно подробно.