2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: алгоритм шёнхаге-штрассена
Сообщение12.11.2009, 19:30 
Заблокирован


12/11/09

92
Xaositect в сообщении #261299 писал(а):
Dongara в сообщении #261237 писал(а):
Посмотрел. Работу далекого 1976 года я знаю. Но и она и предложенный здесь подход работают хорошо в ассимптотике. Для реальных матриц (в смысле их размера), с которыми имеет дело нынешнее человечество, это не выход (в смысле выигрыша в скорости). Я нашел одну ссылку на русскоязычном форуме Интела по решению этой проблемы, но товарищ делиться секретом не хочет.

Я думаю, несколько итераций алгоритма Штрассена, а затем использование обычного умножения, даст некоторый прирост скорости.
А какой сейчас размер матриц на практике? мне на втором курсе(три года назад) говорили про десятки тысяч, но, возможно, это была устаревшая информация.

Разумный компромисс определяется скоростью памяти, эффективностью распараллеливания и требуемой точностью, чему я и следую в реализации своих алгоритмов. У меня 8 гигов памяти и 4-ядерный процессор. Матрицы у меня небольшие - порядка 16000*16000, так что все умещается в памяти.

 Профиль  
                  
 
 Re: алгоритм шёнхаге-штрассена
Сообщение12.11.2009, 20:12 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Я сам теоретик, поэтому на своем опыте не могу ничего сказать. Один мой знакомый реализовывал на какой-то архитектуре, где один главный процессор и 8 вспомогательных, умножение таким образом: одна итерация по методу Штрассена, 7 умножений раскидываются по вспомогательным процессорам и там умножается обычным методом.

 Профиль  
                  
 
 Re: алгоритм шёнхаге-штрассена
Сообщение12.11.2009, 22:19 
Заблокирован


12/11/09

92
Xaositect в сообщении #261376 писал(а):
Я сам теоретик, поэтому на своем опыте не могу ничего сказать. Один мой знакомый реализовывал на какой-то архитектуре, где один главный процессор и 8 вспомогательных, умножение таким образом: одна итерация по методу Штрассена, 7 умножений раскидываются по вспомогательным процессорам и там умножается обычным методом.

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

 Профиль  
                  
 
 Re: алгоритм шёнхаге-штрассена
Сообщение14.11.2009, 12:54 
Аватара пользователя


27/01/09
814
Уфа
А чем не нравится умножение столбиком? Распространяется на любую разрядность процессора, есть возможность распараллеливания. Есть 3 варианта: 1. Сложение частичных сумм. 2. Сложение перестановок. 3. Модификация дерева умножения. С помощью FFT по-моему погрешность метода возникнет.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group