Fortranプログラムなどを組む中でWindowsで作業している場合
Variable XXX too large for NTCOFF. Bigger than 2GB. Use heap instead
静的配列をしようしていると2GBの壁にぶつかる。
これは64bitOSのWindowsにしても変わらず単一の配列が2GBを超える計算ができなくなる。
そこで64bitOSのWindowsを扱う場合にのみ使える方法だが、動的配列で定義をすることで8GBまでの単一配列が扱えるようになる。
具体的にはFortranの場合
dimention A(256)
などの配列を
real,allocatable,dimension(:) :: a
と動的配列で定義した後
allocate(a(256))
としてメモリを確保する。
二次元配列の場合は
real,allocatable,dimension(:,:) :: a
allocate(a(256,512))
こうゆうことを考えるとLinuxマシンの方がいいような気がしてくる。
そもそも64BitのWindowsを開発するときになぜ修正しなかったのだろう。せっかくの64bitが。。。
参考
PGI Workstation/Server for Windows(R) 製品情報
Memory Limits for Applications on Windows* - Intel® Software Network/
Forums - Intel® Software Network

コメントする