[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Critical matrix sparsity
From: |
siko1056 |
Subject: |
Re: Critical matrix sparsity |
Date: |
Thu, 8 Jun 2017 23:49:37 -0700 (PDT) |
NJank wrote
>
> siko1056 wrote
>> If your matrix is really sparse, then the number of columns n should be
>> smaller
>> than the number of rows m (transpose if not). Otherwise you waste space
>> for
>> storing zero columns.
> Maybe a naive side question, but wouldn't it make sense to have the
> transposition automatic and transparent as part of the storage class? A
> "transposed?" flag and the check would be the only overhead.
I don't think it is a naive question, I also thought about it. In my opinion
the programmer should control the sparse matrix orientation, especially in
regard of my second assertion:
siko1056 wrote
> 2. Do I often extract parts of the matrix or insert elements?
> Randomly extracting or adding parts of a sparse matrix might be a real
> performance killer!
If I construct a sparse matrix and manipulate it occasionally, and despite
this inefficiency, Octave transposes back and forth (because the number of
columns is temporarily below a threshold value) I have a serious not
controllable performance breakdown. So Octave should remain predictive. To
mention this nuance came up to my mind, as I work with matrices like this
one, where it saves about 2/3 space to choose the "right" orientation:
>> typeinfo (A)
ans = sparse matrix
>> size (A)
ans = 2,569,260 7,230
>> nnz(A)
ans = 855,800
>> nnz(A) / prod (size (A)) % less than 1% filled
ans = 4.6071e-05
>> whos A
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
A 2,569,260x7,230 13,834,168 double
Total is 18,575,749,800 elements using 13,834,168 bytes
>> A = A'; size (A)
ans = 7230 2569260
>> whos A
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
A 7,230x2,569,260 34,246,888 double
Total is 18,575,749,800 elements using 34,246,888 bytes
>> spy(A) % as attachment
<http://octave.1599824.n4.nabble.com/file/n4683608/A.png>
Best,
Kai
--
View this message in context:
http://octave.1599824.n4.nabble.com/Critical-matrix-sparsity-tp4683603p4683608.html
Sent from the Octave - General mailing list archive at Nabble.com.