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カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoCOPアンプPICCPA強磁性常微分方程式モンテカルロ解析odeトランジスタ状態密度インターフェーススイッチング回路ecaljPDS5022DOS定電流半導体シェルスクリプト乱数レベルシフトHP6632Aブレッドボード分散関係温度解析R6452Aトランジスタ技術I2C可変抵抗反強磁性セミナー数値積分確率論偏微分方程式バンド構造非線形方程式ソルババンドギャップ絶縁熱設計シュミットトリガLEDA/Dコンバータ三端子レギュレータLM358ISO-I2CGW近似カオスフォトカプラマフィンティン半径TL431数値微分PC817Cアナログスイッチ直流動作点解析発振回路USBサーボカレントミラー74HC4053パラメトリック解析LDAbzqltyチョッパアンプ量子力学FFT2ちゃんねるアセンブラBSch開発環境電子負荷ブラべ格子イジング模型補間基本並進ベクトル標準ロジック単振り子キュリー温度繰り返しMaxima状態方程式失敗談相対論スピン軌道相互作用FETランダムウォーク熱伝導六方最密充填構造コバルトewidthTLP621GGAQSGW不規則合金位相図抵抗SMPcygwinラプラス方程式スレーターポーリング曲線gfortranスイッチト・キャパシタ詰め回路TLP552三角波格子比熱TLP521条件分岐LM555MCUNE555QNAPマントルテスタ過渡解析FXA-7020ZRダイヤモンドデータロガーガイガー管自動計測Writer509UPSシュレディンガー方程式ブラウン運動awk差し込みグラフ熱力学平均場近似仮想結晶近似VCAfsolve井戸型ポテンシャルVESTA起電力スーパーセルOpenMP第一原理計算ubuntu固有値問題L10構造OPA2277interp12SC1815fccウィグナーザイツ胞面心立方構造フィルタジバニャン方程式ヒストグラム確率論マテリアルデザインspecx.f等高線正規分布PGAフェルミ面非線型方程式ソルバ初期値固定スピンモーメントスワップ領域ルチル構造リジッドバンド模型edeltquantumESPRESSO岩塩構造BaOSIC二相共存ZnOウルツ鉱構造フォノンデバイ模型c/aノコギリ波全エネルギーFSMTeXgnuplotmultiplotハーフメタルCapSense半金属合金結晶磁気異方性Ubuntu文字列入出力TS-110TS-112疎行列Excel直流解析ヒストグラム円周率不規則局所モーメントトラックボールPC等価回路モデルパラメータ・モデルキーボードRealforce三次元マンデルブロ集合フラクタル化学反応重積分縮退日本語最小二乗法関数フィッティングGimpMAS830LHiLAPW熱拡散方程式両対数グラフナイキスト線図負帰還安定性陰解法Crank-Nicolson法P-10クーロン散乱境界条件連立一次方程式片対数グラフEAGLEPIC16F785LMC662トランスシンボルCK1026線種凡例MBEAACircuitグラフの分割軸ラベルifort

最新コメント
リンク

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