To handle large arrays like that, I use a tiling mechanism to only read a portion of the data at any one time, process it, and write the result back to disc. Storing the data in BIP interleave will make your temporal analyses run slightly quicker than if stored in BSQ interleave.
If you have access to ENVI then use their tiling routines.
New ENVI:
http://www.exelisvis.com/...atetileiterator.html
Classic ENVI:
http://www.exelisvis.com/.../ENVI_INIT_TILE.html
http://www.exelisvis.com/...s/ENVI_GET_TILE.html
Hope that helps
Josh