Re: Книга The Science of Programming Matrix Computations

28 views
Skip to first unread message
Message has been deleted
Message has been deleted

Yurii

unread,
Apr 20, 2008, 2:43:57 PM4/20/08
to matrixprogramming_ru
>
> Очень интересной является глава 5 <<High Performance Algorithms>>. Вопрос
> достижения максимальной производительности уже затрагивался в нашей
> группе. Глава 5 книги дает хороший ответ на этот вопрос.
>
Я занимаюсь схожими проблемами (см. мою страницу: http://www.thesa-store.com/products/
).
Хочу отметить, что для достижения максимальной производительности
необходимо тесное "сотрудничество " с железом. Например, на процессоре
q6700 это будет один алгоритм, а на процессоре q9450 - это уже совсем
другой алгоритм (для IA32).

Evgenii Rudnyi

unread,
Apr 23, 2008, 4:56:19 PM4/23/08
to matrixprog...@googlegroups.com

>> Очень интересной является глава 5 <<High Performance Algorithms>>. Вопрос
>> достижения максимальной производительности уже затрагивался в нашей
>> группе. Глава 5 книги дает хороший ответ на этот вопрос.
>>
> Я занимаюсь схожими проблемами (см. мою страницу: http://www.thesa-store.com/products/
> ).

Действительно интересно. А для просто решения системы линейных уравнений
можно убыстрить процесс?

> Хочу отметить, что для достижения максимальной производительности
> необходимо тесное "сотрудничество " с железом. Например, на процессоре
> q6700 это будет один алгоритм, а на процессоре q9450 - это уже совсем
> другой алгоритм (для IA32).

В этом и была идея спецификации BLAS, чтобы выделить код, зависимый от
железа. Или у вас надо менять сам исходный алгоритм диагонализации?

Yurii

unread,
Apr 24, 2008, 4:11:18 AM4/24/08
to matrixprogramming_ru
>
> А для просто решения системы линейных уравнений
> можно убыстрить процесс?
>
Необходимо использовать блочные методы решения.
При этом значительный прирост скорости дает грамотный алгоритм
перемножения м-ц.
В Intel MKL этот алгоритм реализован.
>
> В этом и была идея спецификации BLAS, чтобы выделить код, зависимый от
> железа.
>
Для BLAS LEVEL 3 весь алгоритм меняется. При этом его необходимо
реализовывть на ассемблере (SSE3). На языке высокого уровня хороший
алгоритм реализовать невозможно. При этом алгоритмы для IA32 и EM64T
различны.

Evgenii Rudnyi

unread,
Apr 24, 2008, 1:27:29 PM4/24/08
to matrixprog...@googlegroups.com
Yurii schrieb:

>> А для просто решения системы линейных уравнений
>> можно убыстрить процесс?
>>
> Необходимо использовать блочные методы решения.
> При этом значительный прирост скорости дает грамотный алгоритм
> перемножения м-ц.
> В Intel MKL этот алгоритм реализован.

Это я понимаю. Вопрос был связан с тем, что, если я правильно понял, вы
нашли метод ускорения нахождения собственных значений по сравнению с
LAPACK + оптимизированный BLAS. Соответственно вопрос был можно ли
ускорить решение системы линейных уравнений по сравнению с LAPACK +
оптимизированный BLAS.

>> В этом и была идея спецификации BLAS, чтобы выделить код, зависимый от
>> железа.
>>
> Для BLAS LEVEL 3 весь алгоритм меняется. При этом его необходимо
> реализовывть на ассемблере (SSE3). На языке высокого уровня хороший
> алгоритм реализовать невозможно. При этом алгоритмы для IA32 и EM64T
> различны.

А вы не видели сравнений оптимизированных BLAS с последней версией
ATLAS? ATLAS, насколько я знаю, ассемблер не использует.

Yurii

unread,
Apr 24, 2008, 6:08:54 PM4/24/08
to matrixprogramming_ru
>
> можно ли ускорить решение системы линейных уравнений по сравнению с
>LAPACK + оптимизированный BLAS.
>
Да
>
> А вы не видели сравнений оптимизированных BLAS с последней версией
> ATLAS? ATLAS, насколько я знаю, ассемблер не использует.
>
http://www.intel.com/cd/software/products/asmo-na/eng/266858.htm

Evgenii Rudnyi

unread,
Apr 25, 2008, 3:37:05 PM4/25/08
to matrixprog...@googlegroups.com
Yurii schrieb:

>> можно ли ускорить решение системы линейных уравнений по сравнению с
>> LAPACK + оптимизированный BLAS.
>>
> Да

А на сколько? Если ли у вас какие-нибудь ссылки в этом отношении?

>> А вы не видели сравнений оптимизированных BLAS с последней версией
>> ATLAS? ATLAS, насколько я знаю, ассемблер не использует.
>>
> http://www.intel.com/cd/software/products/asmo-na/eng/266858.htm

Если посмотреть на работу при использовании одного процессора, то
разницы практически и нет. С этой точки зрения преимущества ассемблера
особенно не видно.

А то, что multithread у Интел лучше, в этом нет ничего удивительного.
Это требует специальных усилий.

Yurii

unread,
Apr 26, 2008, 5:05:25 AM4/26/08
to matrixprogramming_ru
>
> А на сколько? Если ли у вас какие-нибудь ссылки в этом отношении?
>
Я этой задачей не интересовался, т.к. в своей работе применяю более
надежный сингулярный анализ. Для него, в зависимости от типа задачи,
разрыв достигает 30-40%.
>
> Если посмотреть на работу при использовании одного процессора, то
> разницы практически и нет. С этой точки зрения преимущества ассемблера
> особенно не видно.
>
Itanium имеет большой кэш, который скрывает недостатки алгоритма.
Для Xeon разрыв уже заметен.
>
> А то, что multithread у Интел лучше, в этом нет ничего удивительного.
> Это требует специальных усилий.
>
Спец. усилий не требуется. Все довольно элементарно. Просто для
multithread недостатки алгоритма выпукло проявляются.
Reply all
Reply to author
Forward
0 new messages