Редкий по сравнению с нормальным массивом Matlab

В Matlab, в том, какая точка имеет разреженный массив лучше, чем нормальный массив, если у меня все еще есть много вычислений, чтобы сделать на нем, и приблизительно 25% массива, ненули?

11
задан Elpezmuerto 20 July 2010 в 17:02
поделиться

2 ответа

Лично я бы редко беспокоился о sparse для массива, который только на 25% ненулевой. Если не верите, попробуйте сами.

A = sprand(2000,2000,0.25);
tic,B = A*A;toc
Elapsed time is 1.771668 seconds.

Af = full(A);
tic,B = Af*Af;toc
Elapsed time is 0.499045 seconds.

Дополнительная работа, связанная с этой разреженной матрицей, стоит слишком дорого, чтобы того стоить. Теперь попробуйте это с действительно разреженной матрицей.

A = sprand(2000,2000,0.005);
Af = full(A);

tic,B = A*A;toc
Elapsed time is 0.037763 seconds.

tic,B = Af*Af;toc
Elapsed time is 0.446680 seconds.

Конечно, ваша собственная проблема будет другой, но не такой уж и иной. Редкие матрицы - настоящее благо для человека, который использует действительно разреженные матрицы, но 25% ненулевых просто недостаточно «разреженных» для любого выигрыша в большинстве случаев.

21
ответ дан 3 December 2019 в 04:12
поделиться

Править - неправильно прочитал вопрос.

При 75% разреженности вы вполне можете увидеть значительное увеличение производительности с алгоритмами разреженных матриц. Я бы сказал, что попробовать стоит.

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

4
ответ дан 3 December 2019 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: