• 締切済み

matlabのメモリ制限  と interp3 'spline'

マトラブには使用するメモリに制限が掛けられていて 物理メモリを大量に積んでいても有効に使われない。 という話を聞いたのですが、本当でしょうか。 もしそうであれば、制限を外し方法を教えて頂きたいです。 ちなみに 3次元の補間関数interp3をmetodを'spline'にして実行するとout of memoryで止まりまる為、メモリ制限があれば外そうと考えています。 ただ methodを'cubic'にすると動くのですが、 ヘルプによれば、cubicの方がメモリ使用量が多そうなので エラーメッセージに関係なく、別の原因で止まっていることも考えられます。 別の原因について、何か思い当たる事がありました そちらの方もお願いします。

  • afofa
  • お礼率80% (8/10)

みんなの回答

  • kirinoma
  • ベストアンサー率53% (288/542)
回答No.1

ここと http://newsreader.mathworks.com/WebX?50@61.ZtGsa7JNisH.3@.eecf352 ここ http://www.mathworks.com/support/tech-notes/1100/1106.shtml あたりが参考になります。 制限がかけられているというか、32bitアーキテクチャの仕様なので、物理メモリを増やして、仮想メモリもたくさん設定しても上限以上は意味がありません。なので、現行WindowsPCだと実質1.2G位しか使えないようです(起動時オプションの-nojvmで少し稼ぐとか小技がありますが)。 私もニューラルネットワークで大規模な問題を解いているときにこの問題に直面し、、、64bitUNIXに鞍替えして回避しました^^;あまり参考にならなくて済みません。

関連するQ&A

  • 2次元の補間

    matlabというソフトで、2次元補間法でcubic,spline,・・・etc.と何種類かあるのですが、具体的にどういう風に違うのか知りたいです。(数式についてなど)どなたかご存知の方、参考URLでも参考図書でも結構ですので、宜しくお願いします。

  • ページメモリとはなんですか?

    メモリ掃除ソフトを立ち上げると 物理メモリ 191/510.5MBとでてきます。これは搭載しているメモリーと使用メモリーいうことがわかるのですが、 ページメモリ 185.9/865.5MBという表示がでてきます。このページメモリとは何でしょうか? それと、物理メモリが実際の搭載メモリ(512MB)より1.5MB少ないのはなぜでしょうか?

  • メモリの最適化とは?

    ものすごく初歩的な質問で申し訳ありません。 「メモリを最適化する」というのは具体的にどういうことなんでしょうか? フリーズすることが多かったので、 Memory Defragmenterというソフト(フリーウェア)を入れてみたのですが、 ヘルプを読んでもイマイチ理解できないんです…。 物理メモリを最適化する量やシステムリソースが何%以下になったら警告するか、 など自分で設定できるようなのですが、どれくらいの値に設定すればよいのかもわからなくて…。 何をどうするためのソフトなのかも理解せずに入れてしまったのが 悪いんですけど、もしお時間あればどなたか回答お願いします。m(_ _)m

  • 3次元曲面補間方法を探しています.

    3次元データの補間方法のアルゴリズムを探しています. 不均等にサンプリングした3次元データ(x,y,z)を基に曲面補間を行いたいと思っています. 最初に,zを一定の基で基準データ(x,y)を取得し,データを基に係数を算出します. システムは係数を用いて実際の取得データ(x,y)からzを補間したします. 現在のシステムは多項式で補間しています しかし,もっとメモリを食わず,精度のよい補間補法がないか探しています. 一応候補として考えたものはスプライン曲面と細分割による処理です. これらでは,問題点としてサンプリングした範囲を超えた(x,y)データでは補間ができないというものがあります.また,計算時間がかかるという問題点もあります. これらに限らず,よい方法はありませんでしょうか.

  • メモリの容量 物理 と 利用可能

    WinXP, Office2003を使用しております。 ヘルプとサポート センターを見ますと、 合計物理メモリ512 利用可能な物理メモリ200 と あります。 これはどのような意味なのですか? これで十分メモリはあるのでしょうか? 最近、動作が遅いので心配しております。 よろしくお願いします。

  • 仮想メモリと物理メモリの関係について

    現在使用中のWindowsServer2003をHyper-vに移行するためメモリ使用状況を確認しているのですが、ここで分からない事があります。 これまで私は仮想メモリ(コミットチャージ)について物理メモリ使用量+スワップファイルの合計値という認識だったのですが、タスクマネージャーを見ると 物理メモリ(KB) 合計 2096304 利用可能 923356 システムキャッシュ 1220312 (物理メモリ使用量) 2096304-923356=1172948 コミットチャージ(KB) 合計 611780 制限値 4038516 最大値 656576 とあり、計算すると物理メモリの使用量が仮想メモリ(コミットチャージ)を上回っています。 そこでお聞きしたいのですが、仮想メモリ=物理メモリ使用量+スワップファイルという私の認識は間違っていたのでしょうか。 また認識が正しい場合、何故物理メモリ量が仮想メモリ量を上回っているのかお教え下さい。

  • 仮想メモリと物理メモリの関係について

    仮想メモリについて悩んでおります。 現在使用中のWindowsServer2003をHyper-vに移行するためメモリ使用状況を確認しているのですが、ここで分からない事があります。 これまで私は仮想メモリ(コミットチャージ)について物理メモリ使用量+スワップファイルの合計値という認識だったのですが、タスクマネージャーを見ると 物理メモリ(KB) 合計 2096304 利用可能 923356 システムキャッシュ 1220312 (物理メモリ空き容量) 2096304-923356=1172948 コミットチャージ(KB) 合計 611780 制限値 4038516 最大値 656576 とあり、計算すると物理メモリの使用量が仮想メモリ(コミットチャージ)を上回っています。 そこでお聞きしたいのですが、仮想メモリ=物理メモリ使用量+スワップファイルという私の認識は間違っていたのでしょうか。 また認識が正しい場合、何故物理メモリ量が仮想メモリ量を上回ることが起こるのかお教え下さい。

  • 特定のプロセスが使用している物理メモリ量

    特定のプロセスが使用している物理メモリを確認する方法を教えてください。 プロセスが使用している物理メモリ領域は「Working Set」と呼びますが、「Working Set」には「Private Bytes」と「Shared Bytes」が含まれます。 「Shared Bytes」は、他のプロセスと共有される物理メモリのため、特定のプロセス専用で使用される物理メモリではありません。 「Private Bytes」は、そのプロセスが物理メモリで利用中のものとページアウトされたものになり、ページアウトされたものは物理メモリにはありません。 「Working Set」は「Private Bytes」+「Shared Bytes」の総和といっても、ページアウトされたものをは物理メモリにないため、ページアウトされたものは引かれています。 「Working Set」の値から「Shared Bytes」の使用量を調べて、「Shared Bytes」の中で特定のプロセス専用のものでないものを引くことができれば、特定のプロセスが使用している純粋な物理メモリを知ることができるのではと考えております。 パフォーマンスモニターなどのツールでどの「カウンタ」のどの「インスタンス」を取得して、どのような計算をすれば、求めることができるかご教示頂けませんでしょうか。

  • 補間曲線を関数で求める

    いくつかの離散的なデータに対する補間曲線を求めたいです。 また、その補間曲線を関数を用いて求めることを行いたいのですが、 分かるかたが居ましたら、具体的な方法について教えて頂けないでしょうか? 使用するデータは二次元のデータになり、総数としましては約10点程です。 具体的なデータは以下のようになります。 x y 22.5 672 27.5 491 32.5 331 37.5 269 ・ ・ ・ この様に続いているデータに対して 次数が2以上の曲線を関数で求めたいのです。 (例:3x^2+4x+3)。 スプライン曲線や重回帰法などを見ておりますが、 よく理解できません。 どうぞよろしくお願いします。

  • JUnitのテストメソッドごとのメモリの確保とかの話

    JUnit関連の少しコアな話になります。 JUnitではデフォルトでは、実行する際初期処理としてまずテストクラス内のテストメソッドの数だけテストクラスをインスタンス化し、その後各テストメソッドを実行していく、という仕様になっているようです。そしてかつ、各インスタンスはテストクラス内のすべてのテストメソッドが終了するまでインスタンスの破棄は行わないようです。 上記の仕様であるはずだと言う根拠は、テストクラスにコンストラクタを作成し、そこにsysoutを記述することにより確認をしました。 上記の仕様であることが主原因で、Out of Memoryが発生してしまいます。 他にそうなってしまう原因はいくつかあって ・Springを利用していて初期化にメモリを結構使う ・テスト対象のクラスが複雑でテストメソッドの数が多くなる ・パソコンの物理メモリに限界がある ・DJUnitでカバレッジを調査することもあり、またテスティングペアの名前は統一したいので、テスト対象クラスとテストクラスを1対1に対応させたい。 などが挙げられます。VMの実行メモリを大きくしたり、テストクラスを分割してしまうなどの対処療法を行ってきましたが、何とか主原因をつぶす方法は無いものかと質問をした次第です。 (その他、使用しなくなったオブジェクトにnullをセットしたり明示的にgcの実行を指示する等の苦肉の策を行いましたが、ほとんど影響しませんでした) 前置きが長くなりましたが質問は、JUnitでテストを行う際、テストクラス内のテストメソッドの数だけインスタンス化しているものを、あるテストメソッドを実行する直前にインスタンス化し、そのテストメソッドが終了したらそのインスタンスを破棄するような設定はないのか、あればその方法を教えてほしい、ということになします。 だいぶ分かりにくい説明かもしれませんが…。 以上よろしくお願いします。

    • ベストアンサー
    • Java