Компания Mercury Computer Systems объявила (http://www.mc.com/mediacenter/pressrelease.aspx?id=13522) о доступности OpenSAL (http://www.opensal.net), открытой версии своей библиотеки научных алгоритмов (SAL) для ускорения вычисления векторных математических функций. SAL является очень быстрой библиотекой, использующей минимум процессорных инструкций и компьютерных ресурсов. OpenSAL прекрасно подходит для организации обработки сигналов с низкой задержкой. Эталонный вариант библиотеки для языка Си насчитывает более 400 математических функций. Код распространяется (http://sourceforge.net/projects/opensal/) в рамках лицензии GPLv3.
URL: http://www.mc.com/mediacenter/pressrelease.aspx?id=13522
Новость: http://www.opennet.me/opennews/art.shtml?num=28217
"использующей минимум процессорных инструкций"???
SSE, MMX и т.п. идут лесом?
Значит за один такт выполняются не все иструкции процессора? Да это прорыв в технологии, ещё и на программном уровне.
> Значит за один такт выполняются не все иструкции процессора?Приколитесь, а? :) За 1 такт молотят 1 команду только простейшие RISC с памятью успевающей за процессором (что подразумевает невысокие частоты и производительность но зато отлично предсказуемое время реакции на событие). И то как правило с оговорками. CISC вообще крушит сложную команду на кучку более простых микроопераций и выполняет их. Ессно тактов на команду вполне может быть более одного. Да, всякие там конвееры и одновременное выполнение с этим борятся, повышая выполняемое в среднем количество команд за такт, кеши пытаются не дать тормознуть операцию из-за ожидания готовности оперативки. Однако сказать что некая взятая команда будет гарантированно смолочена за 1 такт вы никогда не сможете. Это можно предсказать только для простых RISC процессоров без кеша и продвинутого конвеера и с быстрой локальной памятью. Для монструозных штук типа х86 прикидки "сколько команд за сколько тактов будет смолочено" далеки от тривиальных и зависят от кучи факторов. Это не отменяет возможности попытаться оптимизировать число тактов затрачиваемых на некую операцию.
> Да это прорыв в технологии, ещё и на программном уровне.
Что-то не догоняю что вам не нравится.
Жду в программках для BOINC.
> в рамках лицензии GPLv3Ну хоть кто-то головой думает, без полумер типа старой GPL или LGPL.
В новсти надо добавить, что эта библиотека ориентирована на embedded device:> Open-Source Scientific Algorithm Library (SAL) for High-Performance Embedded
> Computing
> For many years, optimized versions of Mercury Computer System's Scientific
> Algorithm Library (SAL) and API have been the de facto standard
> library implementation for PowerPC®-enabled radar applications.Имеет место поддержка GPU из FAQ:
> As technology has advanced on single‐ and many‐core x86 and GPU platforms
А что, круто, а кто подскажет где на неё документация? ;-) "код - лучшая документация", вариант, но, сами понимаете :)PS хотя крайне их пойму, если документацию они будут предоставлять за деньги: и код открыт и волки сыты :)
> А что, круто, а кто подскажет где на неё документация?С исходниками что-то идет. Внимательно не смотрел, но ф-ции описаны и структуры тоже (вроде).
Хм, а что? Для написания диплома/диссертации вполне подойдет. Свои исходники потом тоже можно выложить под GPLv3, не самая большая проблема...
Неа, скачал, поглядел, только две директории include и src в которых только *.h и *.c соответственно. Я от математики несколько далек, просто сейчас есть одна задача, думал бегло поглядеть на предмет: а не поможет ли она. Ну и запрос им отправил, жду ответа :)
> Неа, скачал, поглядел, только две директории include и src в которых только
> *.h и *.c соответственно.М-м-м-м... Может у нас разные версии архива? Я выкачивал OpenSAL_1.0.0.tar (именно tar!).
opensal-1.0.0$ ls
include license.txt Makefile OpenSALWebhelp README.txt srcopensal-1.0.0/OpenSALWebhelp/Content$ ls -1
AppA - Support and Contact
AppB - SAL Data Type ID Matrix.htm
AppC - Performance
AppD - Legacy Functions
AppE - Optimization
AppF - Sample Code
CH01 - Introduction
CH02 - Transform Functions
CH03 - Matrix Decomposition
CH04 - MultiCore SAL
CH05 - Resampling
CH06 - Functions - Data Conversion
CH07 - Functions - Single Vector
CH08 - Functions - Vector_to_Scalar
CH09 - Functions - Vector_to_Vector
CH10 - Functions - Matrix Math
CH11 - Functions - FFTs
CH12 - Functions - CCF_Image_Processing
CH13 - Functions - System Control
....Т.е., как бы даже по главам разбито...
>> Неа, скачал, поглядел, только две директории include и src в которых только
>> *.h и *.c соответственно.
> М-м-м-м... Может у нас разные версии архива? Я выкачивал OpenSAL_1.0.0.tar (именно tar!).
> Т.е., как бы даже по главам разбито...Ты знаешь, я как-то криво умудрился распаковать... действительно или открывал архив пока он не докачался, tar же... чёрт, нужно отдохнуть. Спасибо за тычёк носом :) Всё есть
Кстати, судя по этому: http://www.mc.com/products/software/multicore_mathpack.aspxона в том числе как оболочка для всяких технологий, в т.ч. для CUDA, отсюда понятно про GPU