Why is the maximum number of elements in an array or matrix in 64-Bit MATLAB limited to 2^48-1 and not 2^63-1 ?
5 views (last 30 days)
Show older comments
MathWorks Support Team
on 27 Jun 2009
Edited: MathWorks Support Team
on 14 Jun 2021
The largest valid index into an array for the 32-bit MATLAB is 2^31-1.
Similarly, I expect the largest valid index for the 64-bit MATLAB is 2^63-1.
I want to know what is the significant of the number 2^48-1 in limiting the array/matrix elements.
Accepted Answer
MathWorks Support Team
on 14 Jun 2021
Edited: MathWorks Support Team
on 14 Jun 2021
The current 64-bit processors from AMD and Intel do not actually support 64-bit addressing. They only have 40 physical address pins and can support 48-bits virtual addressing. (For more information, please see https://en.wikipedia.org/wiki/X86-64#Architectural_features.)
Please note that the theoretical limit of 2^48-1 elements cannot currently be reached due to other limitations such as available system memory (This would require about ~300TB for 8-bit data) and the process space limit of the operating system, which on 64-bit Windows is just 8TB (or 2^43). For more information please refer
1 Comment
Walter Roberson
on 8 Feb 2021
The largest publicly known unified-memory systems in the world are (as of early 2021), Linux systems from HP that can access 160 Terabytes; these need the full 48 bits of address space.
More Answers (0)
See Also
Categories
Find more on Numerical Integration and Differential Equations in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!