В Matlab, в какой точке имеется разреженный массив лучше обычного массива, если у меня все еще есть много вычислений, и около 25% массива не являются нулями?Sparse vs Normal Array Matlab
ответ
Лично я редко бывал с разреженным массивом, который составляет всего 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% non-zeros просто недостаточно «разрежены» для любой выгоды в большинстве случаев.
Редактировать - неправильно прочитать quesiton.
С разрешающей способностью 75% вы можете очень хорошо видеть значительное увеличение производительности с помощью разреженных матричных алгоритмов. Я бы сказал, что это определенно стоит попробовать.
В двух местах, где вы будете экономить память (уменьшая использование памяти в четыре раза) и операции (каждый раз, когда вы умножаете матричный вектор, например, вы значительно уменьшаете количество операций обязательный). Фактор смягчения в вашем случае, вполне может быть размер вашей матрицы. Переходя к разреженной матричной операции, вы обычно теряете хорошие характеристики кэширования, которые вы видите с плотными матрицами. Таким образом, обычно существует порог, когда переход от плотного к разреженному приводит к повышению эффективности.
- 1. std :: vector vs normal array
- 2. Переделка индекса перенапряжения Matlab Sparse Array
- 3. Matlab uint8 sparse
- 4. Convert Array list to Sparse Array
- 5. 3D Array vs Sparse Matrix для разреженных данных
- 6. Unwrap Sparse Array in Swift
- 7. Concurrency vs Normal Collection?
- 8. Ruby threading vs normal
- 9. Матрицы Sparse 3D в Matlab
- 10. MATLAB Large sparse inner product
- 11. MATLAB vs Python numpy array/matrix multiplication
- 12. Matlab 'entropy()' on Normal RVs
- 13. Drools Exists vs. "normal" pattern
- 14. WCF DataContract vs normal class
- 15. Cassandra PreparedStatement vs normal insert
- 16. Ember addon Vs normal package
- 17. FactoryClass vs Normal Java Class
- 18. ICU Unicode Normal vs Fullwidth
- 19. Ajax просит vs normal mvc
- 20. Sparse Group lasso by CVX MATLAB package
- 21. random normal as Integer in array
- 22. SQLITE: INTERSECT/UNION Выберите Result & Normal Array
- 23. loading matlab sparse matrix (matlab v 7.3) в python
- 24. Apache Hive Vs Normal Map Уменьшить
- 25. Android Layouts - layout-normal vs layout
- 26. Различные результаты LINQ vs 'normal' C# code
- 27. PHP stdClass vs "normal named" classes
- 28. git-flow vs. normal git commands
- 29. Группы регулярных выражений Java. * Vs normal regex
- 30. IBM Worklight adapter vs normal AJAX request