Optimize Virtual Memory by Normalizing Columns in a 1024x1024 Array

  • Thread starter Thread starter rootX
  • Start date Start date
  • Tags Tags
    Memory Virtual
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 2K views
rootX
Messages
480
Reaction score
4
If there is a 1024x1024 array of 32 bits numbers and we need to normalize by columns.

Algorithm goes through each column, finds max and divide all numbers by the max.
It would be certainly wise to store the pages by column?

My rationale:
1M (2^20) main memory is allocated and each page is 4K bytes as provided.

Because if it is done by rows, 256 rows will be stored. So, for each column there will be 3 page faults when reading numbers and 3 page faults when writing back the normalized numbers.
 
Physics news on Phys.org
You'd need 4MB of memory to hold all the data. Unless other processes were consuming nearly all of you computers memory, then none of that 4MB of data would be paged out to the swap file.

Performance issues would be related to the cache size and algorithm implemented on your computer. Dram is normally optimized for sequential access.