2010年2月1日月曜日

MATLABの動きを快適にする方法

(注 下に挙げている方法を試される場合は、自己責任でお願いします。)


「Boot.iniの3Gスイッチを使う」
昔の記事(「メモリー」2007年12月14日)にも書いたのですが、
MATLABでLFPやEMGなど長めのアナログデータを解析していると、メモリ不足のエラーが生じることがあります。
??? エラー ==> xxx
メモリが足りません.HELP MEMORYとタイプしてオプションを確認してください
言われた通りHELP MEMORYとタイプしてみると、仮想メモリを増やすように言われるのですが、仮想メモリを増やしてみても大抵の場合何も改善しない。なんでかというと、Windows X
Pではアプリケーションで使えるメモリは2Gに制限されていて、いくら仮想メモリを増やしたとしてもOSがアプリケーション用にそれらを使ってくれないってところに原因があるようです。

Windowsは、この2G制限をはずす方法を用意してくれています。
(参考URL)「Windows XP および Windows Server 2003 の Boot.ini ファイルで使用可能なスイッチ オプション」(
http://support.microsoft.com/kb/833721/ja

1. [マイ コンピュータ] アイコンを右クリックし、[プロパティ] をクリック
2. [詳細設定] ->[起動と回復] -> [設定] をクリック
3. [起動システム] の [編集] をクリック
4. [operating systems]セクションの最後に「 /3GB」を追加する
5. 上書き保存して、再起動をかける。

これでMATLABを含めたアプリケーションが使えるメモリが大幅に増加して、メモリのエラーが起こりづらくなります。
私の場合、このスイッチを入れて以降、メモリのエラーにほとんど遭遇しなくなりました。




「マルチコア対応に設定する」(R2007a以降、マルチコアPCのみ)
MATLABのデフォルト設定ではマルチスレッド計算は無効になっているため、CPUをマルチコアに変えるだけだとシングルスレッドとして扱われて演算は早くならない。
マルチコアの利点(処理の高速化)を生かすには以下の設定が必要。
(参考URl)「1090 MATLABは、マルチプロセッサ/マルチコア対応のマシン上で動作しますか?」(
http://www.cybernet.co.jp/matlab/support/techkwdb/search_view.php?id=1090)


1. [ファイル] -> [設定]-> [一般] -> [マルチスレッディング] を選択。
2. [マルチスレッド計算を有効にする]をチェック。
3. [計算スレッドの最大数] を指定(「自動」のほうでOK)。

これで、マルチスレッド計算が有効になっているため、演算処理が速くなる、はず。
(実は、速くなった実感があまりないんですけど、速くなっているんでしょう。。。)

0 件のコメント:

コメントを投稿