title: Large arrays in C
body: <p>I'm trying to implement the <a href="http://en.wikipedia.org/wiki/Ordered_subset_expectation_maximization" rel="nofollow">OSEM algorithm</a> (I'm trying because I have to, not just for fun) and I have a question:</p>
  
  <p>Since I'll be working with very large matrices, I want to know the maximum array size (C language) I can allocate with malloc. From what I've read it depends on your OS and Hardware: I'm working on an Intel Xeon E5530 2.40 Ghz, Red Had Enterprise 64 bits, Nvidia Quadro FX 3800.</p>
  
  <p>The matrices I'll be working with, have something like these dimensions: float/double 2000x1000x20.</p>
  
  <p>Given that those matrices are to be worked with CUDA C, I must allocate the matrices in 1D arrays like this:</p>
  
  <pre><code>float*matrix=(float*)malloc(sizeof(float)*2000*1000*20));
  </code></pre>
  
  <p>Thanks in advance ;)</p>