программа умножения разреженных матриц openmp

Я ищу любую стандартную программу C, которая использует API-интерфейсы OpenMP для разреженных матрично-векторных или матрично-матричных умножений. Может кто подскажет, есть ли такие программы.


person krs    schedule 17.08.2011    source источник


Ответы (2)


Если вы не ищете библиотеку с открытым исходным кодом, вы можете попробовать взглянуть на подпрограммы Intel MKL Sparse-BLAS уровня 2 и уровня 3:

http://software.intel.com/sites/products/documentation/hpc/mkl/updates/10.3.5/mklman/index.htm

Эти библиотеки должны быть многопоточными с использованием OpenMP, как указано на следующей странице:

http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-using-intel-mkl-with-threaded-applications/

person Massimiliano    schedule 20.08.2011
comment
Я хотел бы знать, есть ли у кого-нибудь солидный опыт работы с разреженными подпрограммами Intel. - person Lucas; 29.08.2011

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

Взгляните на эту замечательную книгу (Введение в параллельные вычисления): http://www.scribd.com/doc/60118054/72/The-matrix%E2%80%93vector-multiplication-with-OpenMP.

person Thomas Berger    schedule 17.08.2011
comment
ОП запрашивает библиотеки для разреженных данных (разреженные матрицы, разреженные векторы). Кажется, ваша ссылка касается только традиционных (то есть плотных) матриц, или я что-то упустил? - person Iterator; 19.08.2011
comment
Нет, в книге также есть очень большая часть о разреженной матрице. Также упоминаются две библиотеки: LAPACK и то, как она с ней работает. Поскольку LAPACK является библиотекой по умолчанию для математики с OpenMP, я не понимаю необходимости в дополнительных библиотеках. Извините, если мой пост был непонятен. - person Thomas Berger; 19.08.2011
comment
Я думаю, что просьба о библиотеке — абсолютно оправданный вопрос. Часто очень полезно и важно иметь под рукой тщательно протестированные библиотеки, на которые можно положиться. Самостоятельное программирование полностью противоречит мантре повторного использования рабочего кода. - person Lucas; 29.08.2011
comment
@ Лукас, верно, но есть библиотека по умолчанию! LAPACK — это лучшая практика для OpenMP, и она упоминается в книге. - person Thomas Berger; 29.08.2011
comment
@Thomas, если бы я хотел использовать Lapack, я бы также использовал де-факто стороннюю библиотеку. Кроме того, Lapack не включает алгоритмы для разреженных матриц netlib.org/lapack. Вопрос также неявно касался подпрограмм blas, а не подпрограмм lapack. - person Lucas; 29.08.2011