DOBON.NET DOBON.NETプログラミング掲示板過去ログ

matlabでの長時間の計算について

環境/言語:[ubuntu11.04、matlab]
分類:[その他]

すみません、現在matlabで数値解析を行っております。
質問を以下にまとめたので、よろしければアドバイスをお願いします。


--------------------------------------------------------------
matlabで数十分かかると考えられる計算を行おうとしています。
その場合、計算後の大容量のデータは一般的にどのように保存すべきでしょうか?

これまで、パラメータを50個用意してそれぞれ計算を行い、
後に見比べるために、目的の変数の値をプロットし、画像(角度などを指定してjpegに)として保存していました。
(for文を使って一定量パラメータを変化させる毎に、saveasを使ってグラフを保存していた。)
今まではパラメータ1つあたり数十秒程度で済む計算だったのでこれでも良かったのですが、
今後はパラメータ1個あたりに対しかかる計算時間が数十分になります。。

そこで、今までと同じように保存していくやり方では、もしグラフの保存方法(角度など)を間違えてしまった場合に
かなりの損失になってしまうと思ったので質問しました。。

何か効果的なデータの保存の仕方はありませんでしょうか?
以後もパラメータをfor文を使って一定量変化させ、50個用意して計算していこうと思うのですが・・
一応現状で考えているのは、saveを使ってworkspace内の変数(全て)をそれぞれ保存していくというものです。
何かその他に効果的なデータの保存方法などありましたら是非教えてください。


--------------------------------------------------------------
上記のように、
計算時間のかかる計算をmatlabを使って行おうと考えているのですが、
計算機を走らせている間、動作が著しく重くなり、ほとんど他の作業が出来なくなります。
(これは避けられませんよね・・?)
私はmatlabを学校で使っているので、帰宅する際、計算機を走らせて帰ろうと考えています。
(節電家でなくてすみません。。)

問題は途中でメモリ不足などで計算がストップしてしまわないかということです・・
一応、パラメータを変える毎に初期化すべき変数はzerosを使って初期化しているのですが、
パラメータ毎の目的の変数(6つ)は、多いとそれぞれ10^6×200ほどの配列となる可能性があります。

せっかく手間暇かけて走らせたのに、途中でメモリ不足などと表示されたら辛いなぁと思い・・
現在使っている計算機はubuntu11.04で、メモリは992.8MiBなのですが、やはりこの計算機だと際どいでしょうか・・?


--------------------------------------------------------------
コードに関する質問なのですが・・
uが50000000*200の配列で、それぞれの要素に値が入っているとします。
これをそのまま1行目〜50000000行目まで、順にグラフにプロットすると、かなりの時間がかかるので、
1行目から、一定数(例えば100)毎の行の配列を
グラフにプロットさせたいのですが、やり方がわかりません・・

x = -10: 10: 200 ;
t = 0: 100: 50000000 ;
waterfall(x,t,u) ;
とするとエラーが出ます。
どなたか訂正出来る方、お願いします。。
waterfall以外でも全然構いません。


--------------------------------------------------------------



以上長々と質問すみませんでした。。
どなたかご指導頂けると助かります・・

あと、分類というのがよくわからなかったので、その他となっています・・
ごめんなさい。。
> 問題は途中でメモリ不足などで計算がストップしてしまわないかということです・・

  稼働環境は?
  私もおそらくメモリ不足になるものと思いますが・・・

  以前、プロット数が10億個になる計算をやったおり、
  最初MATLAB使ってましたが、残念ながらメモリ不足。
  因みに、MATLAB自体がPC上のメモリを食いつぶす所ま
  でいかずに、ダウン・・・でした。

  ダウンしない程度に個数を少なくしても、保存の段階で
  ハングアップ・・・

  結局、MATLABには, function M-file を C 言語に変換
  して、C言語側でやるように細工しましたが・・・
  10億個は保存もグラフプロットもできませんでしたので
  MATLAB使わずに高級言語で作り直してやりました。

  大学ですと、ワークステーション(UNIX)使ってま
  すので、その辺、平気で動いてしまうのでしょうけど、
  Windowsの場合、同等ではないので、MATLAB使うのは、
  あくまでアルゴリズムの確認にして、C言語で頑張るし
  かないのでは?

以上。参考まで
この投稿はマルチポストです。

●マルチポストされている場所
http://questionbox.jp.msn.com/qa7071943.html

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html

DOBON.NET | プログラミング道 | プログラミング掲示板