AkaiKKRとUbuntu 12.04 のスワップ領域

AkaiKKR(machikaneyama)をつかっていると、メモリ不足で実行ファイルの作成ができないことがあります。実際の第一原理計算で使うメモリは、実行ファイル作成時と比べてはるかに少ない場合が多いので、スワップ領域を大きくすることで、(実行ファイル作成にかかる時間を我慢すれば)原子数の多い計算もある程度可能になります。

今回は、swapファイルを追加するを参考に Ubuntu 12.04 のスワップ領域を追加してみました。


メモリ不足でAkaiKKRのmakeが失敗する場合


AkaiKKR(machikaneyama)は、実行ファイルを作成するときにメモリを最も使うようです。
そこで、スーパーセルのなかに多くの原子を含む計算を行うような場合、第一原理計算そのものには、そんなにメモリを必要としないはずなのに、実行ファイルを make する際にメモリ不足となって、計算ができないという事態に陥ることがあります。
実行ファイルを作成するときだけ、ハードディスク上のスワップ領域を使うことによって、この問題に対処することができるかもしれません。
今回は Ubuntu 12.04 でスワップ領域を増やし、実行ファイルを作成できるようにする方法について書きます。

specx.fのパラメータとメモリ


AkaiKKRは計算する系の大きさに応じて、実行ファイルをコンパイルしなおさなければならない場合があります。この際 source/specx.f の natmmx や mszemx の値を大きく変更します。(参考: AkaiKKRでスーパーセル その1, AkaiKKRの角運動量(方位量子数)のメモ)

この際にパラメータを大きくしすぎると、実行ファイルを作成できない、または、見かけ上、一瞬で実行ファイルが作成されるものの、実際には実行することができないということになります。これは、スワップ領域を含むメモリが足りていないということが原因です。

素直な解決策は、メモリを買ってきて増設することなのですが、別の解決策としてスワップ領域のサイズを大きくするという方法が考えられます。

スワップ領域の実体は、ハードディスクなので第一原理計算の際にスワップ領域にアクセスが頻繁に起こるようだと、ハードディスクへのアクセス速度がボトルネックとなって計算速度が非常に遅くなってしまいます。

しかし、実際に実メモリすべてと、実メモリの数倍のスワップ領域を利用してコンパイルした実行ファイルであっても、実際の第一原理計算では、実メモリを使いきらないことが多いです。
したがって、実行ファイルの作成のときだけ時間がかかることを我慢すれば、スワップ領域を大きく取ることによって、大きな計算セルを持つ系の計算ができる可能性があることが分かります。

Ubuntu 12.04 でのスワップ領域の追加


Ubuntu 12.04 をデフォルトの設定でインストールすると、スワップ領域のサイズは実メモリと同じぐらいの大きさになるようです。これは Ubuntu をハイバーネートするときにメモリにあったデータをスワップ領域に保存するためと思います。当然ながら Ubuntu をインストールした後からメモリを増設することもあるので、スワップ領域を後から追加する方法もネット上に多く紹介されています。
今回は Linux Salad のswapファイルを追加するのエントリにて紹介されている手順に従いました。

わたしの環境(のうちのひとつ)では、実メモリ 8 GB で、インストール時のスワップ領域が 8 GB となっていました。更に 16 GB のスワップファイルを作成して 24 GB のスワップ領域とします。

sudo dd if=/dev/zero of=/swap bs=1G count=16
sudo mkswap /swap
sudo swapon /swap
sudo emacs -nw /etc/fstab


として /etc/fstab を管理者権限で emacs で開いて下記の行をファイルの最後に追記します。

/swap    swap    swap    defaults    0    0


スワップ領域の大きさは、システムモニタなどで確認することができます。

2*2*2 fcc スーパーセル


計算セルに32原子を含む系の計算のため、イカのパラメータで実行ファイルを作成してみました。

     & (natmmx=32, ncmpmx=32, msizmx=288, mxlmx=3, nk1x=500, nk3x=701,


コンパイルには、実メモリとスワップ領域を合わせて 20 GB 程度必要でした。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: AkaiKKR machikaneyama ubuntu スワップ領域 

FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性PICCPAOPアンプecalj常微分方程式モンテカルロ解析状態密度odeトランジスタインターフェースDOS定電流スイッチング回路PDS5022半導体シェルスクリプト分散関係レベルシフト乱数HP6632Aトランジスタ技術ブレッドボード可変抵抗温度解析I2CR6452A反強磁性バンドギャップ確率論数値積分セミナー偏微分方程式絶縁バンド構造熱設計非線形方程式ソルバシュミットトリガISO-I2CLEDマフィンティン半径GW近似三端子レギュレータLM358A/DコンバータカオスフォトカプラUSBPC817C直流動作点解析サーボ74HC4053アナログスイッチTL431発振回路カレントミラー数値微分単振り子量子力学開発環境補間2ちゃんねるチョッパアンプbzqltyFFT電子負荷アセンブラBSchLDA標準ロジックパラメトリック解析ブラべ格子基本並進ベクトルイジング模型VESTAVCAMaximaSMPewidthGGA仮想結晶近似FET位相図キュリー温度QSGWTLP621ランダムウォーク不規則合金gfortranコバルト相対論失敗談抵抗状態方程式スレーターポーリング曲線ラプラス方程式スピン軌道相互作用スイッチト・キャパシタ六方最密充填構造熱伝導繰り返しcygwinTLP552条件分岐TLP521NE555LM555マントル詰め回路MCUテスタFXA-7020ZR三角波過渡解析ガイガー管自動計測Writer509UPSQNAPダイヤモンドデータロガー格子比熱熱力学平均場近似OpenMPブラウン運動スーパーセルUbuntuフェルミ面差し込みグラフubuntuハーフメタルfsolve最適化第一原理計算固有値問題シュレディンガー方程式最小値awk起電力井戸型ポテンシャルCIFxcrysden最大値結晶磁気異方性PGATeX非線型方程式ソルバ2SC1815等高線OPA2277面心立方構造初期値FSM正規分布interp1ウィグナーザイツ胞フィルタfccL10構造合金BaOウルツ鉱構造CapSense岩塩構造ルチル構造ZnO二相共存磁気モーメント不純物問題電荷密度重積分SICスワップ領域リジッドバンド模型multiplotジバニャン方程式gnuplotc/a全エネルギー半金属デバイ模型edeltquantumESPRESSOノコギリ波フォノン固定スピンモーメントspecx.f等価回路モデル円周率パラメータ・モデルヒストグラム不規則局所モーメントTS-112TS-110直流解析PCExcelシンボルGimp日本語最小二乗法フラクタルマンデルブロ集合縮退クーロン散乱三次元ゼーベック係数キーボード入出力関数フィッティング文字列疎行列Realforceトラックボール線種EAGLE連立一次方程式MBECrank-Nicolson法AACircuit負帰還安定性ナイキスト線図マテリアルデザインP-10化学反応ifort境界条件陰解法熱拡散方程式MAS830LCK1026グラフの分割軸ラベル凡例片対数グラフトランスHiLAPW両対数グラフLMC662PIC16F785ヒストグラム確率論

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ