Mac OS X で実行する Fortran 90 プログラム (gfortran を使用してコンパイル) を作成しています。13 個のデータ配列があり、それぞれ約 0.6 GB のデータで構成されています。一度にメモリ内の 13 個のアレイすべてを使用するため、基本的に 8 GB をすべて使用しようとしていますが、他のシステムの要求を考慮すると、これは不可能であることがわかっています。したがって、配列がスワッピングの対象になることはわかっています。私が知らないのは、これがオペレーティングシステムによってどのように管理されているかです。特に、
OS は、他のデータ構造のためのスペースを確保する必要がある場合、データ構造全体 (配列など) をスワップアウトしますか? それとも、ページごとにスワップアウトしますか? つまり、配列のどの部分が最後にアクセスされたかに基づいて、部分的な配列をスワップアウトしますか?
その答えによって、配列をどのように編成するかが決まるかもしれません。部分的な配列を交換できる場合は、すべてを 1 つの巨大な配列に格納し (必要な 13 のサブ配列から選択するためのインデックスを使用)、OS がすべてを効率的に管理することを信頼できます。それ以外の場合は、使用可能な物理メモリ内にそれぞれが快適に収まるように、個別の個別の配列を保持する可能性があります。