|
From: | Rik |
Subject: | Re: Rethinking octave_idx_type |
Date: | Fri, 25 Nov 2016 20:35:41 -0800 |
On 11/25/2016 10:28 AM,
address@hidden wrote:
Are there any performance implications? Most people will still not need regular access to matrices with more than 2^31 elements. By potentially doubling the pointer size, you could increase the critical processor L1, L2 cache requirements. If there are still systems where Octave is run that have 32-bit busses then there is another big hit because each pointer will require two fetches. In general, the march of progress is towards 64-bit systems and bigger caches so this will sort itself out, but have we crossed over the point where 50% of Octave systems are 64-bit? Since one can compile with --enable-64 today it is possible to check some of these assertions about the resident set size of the binary. And separately the performance might be checked with "tic; __run_test_suite__; toc" Other than performance, I think it does make sense to become more compatible with the STL. I don't think we have to switch to an unsigned type though. 2^63 = 9 x 10^18 elements and if each element is an IEEE double that would be 70 exabytes. I don't know of any personal PCs that would need the extra bit of addressing from an unsigned type because they actually have 140 exabytes of memory. --Rik |
[Prev in Thread] | Current Thread | [Next in Thread] |