まず、最小限の時間で計算タスクを完了するために、MATLAB パフォーマンスを最適化する必要がありますが、アプリケーションのパフォーマンスは、システムリソースが十分にあるかどうかに依存します。他の多くのプロセスとともに MATLAB を実行すると、パフォーマンスは低下します。
MathWorks では、特定のメーカーを推奨することはしていませんが、MATLAB を実行させるのに必要なシステム要求のページが、下記URLにあります(2番目のドキュメントは、メモリやプロセッサ等について MATLAB への影響が記載されています)。
・System Requirements for MATLAB
・Choosing a Computer to Run MATLAB and Simulink Products:
以下に記載されている回答は、パフォーマンス向上に対する絶対的なソリューションではなく、影響を与えるものについてのみ記載しています。特定の構成で MATLAB の BENCH コマンドを実行しない限り、事前に MATLAB のパフォーマンス指標を予測することはできません。
BENCH コマンドを使用することで、万全な評価ができる、ということではありませんが、このコマンドを使用すると、いくつかのマシンとのパフォーマンス比較を行うことができます。BENCH コマンドにリストされているシステムは、MathWorks にて評価を実施したものの例です。 MATLAB ご購入前に、評価を行いたい場合には、MATLAB の評価版をダウンロードし、その構成で BENCH コマンドを実行することをお勧めします。
評価版のご利用については、下記をご覧ください。
・評価版の MathWorks 製品は利用できますか? 詳細は、下記をご覧ください。
・マルチスレッド計算に対応している関数はどれですか? 1-1. CPUのクロックスピード / CPUファミリー
パフォーマンスは以下のように計算されます。\nPerformance = Clock Rate / (# of CPU instructions * cycles per CPU instruction)
分母の値は、プロセッサの命令セット・アドレス指定方式・ハードウェア実装の機能です。
プロセッサファミリのクロックレートが早ければ、パフォーマンスは向上します。ただし、おそらくクロックレートの変更によるパフォーマンスの増加率は、メインメモリやバス速度など、重要な役割を担う箇所の変更に比べれば、少なくなります。このため、例えば、600MHz の Pentium プロセッサから、1.1GHz の Pentium プロセッサへ変更した場合、そのレートの比に相当するまでのパフォーマンスの向上を示すことにはならないでしょう。一般的に、別のプロセッサファミリとのクロック数を比較することはできません。たとえば、多くの RISC プロセッサは1つのクロックサイクル中に多くの命令を実行することができます。これは、クロックレートが小さくても1クロックの間にいくつかの命令を処理できることを意味しますので、これらのプロセッサは潜在的に多くの処理を行います。
1-2. MATLAB 以外の必要なハードウェア MATLAB は、リアルタイムシミュレーション内でのデータ収集カードからのデータ読み込みや、グラフィックカードによるデータの即時表示のような、最も遅いハードウェアの処理よりも早く処理することができます。その場合、MATLAB グラフィックスから最大の性能を得るには出来るだけ速いグラフィックカードと、出来るだけ多くの OpenGL 処理が可能なハードウェアを検討してください。
1-3. 十分なメインメモリ( RAM ) メモリは、アプリケーションによって大きく変わる要素ですが、必要な量を超えてメモリを大幅に増やしたとしてもパフォーマンスはさほど変わりません。同じシステムにて MATLAB とは別のアプリケーションが動作している場合は、より多くのメモリが必要になります。上記 URL で紹介した動作環境ページには、推奨する最小メモリサイズが記述されています。また、RAM にアクセスできる速度も、MATLAB のパフォーマンスを決定する重要な要素です。
以下の URL には、MATLABがどのようにメモリを利用するかについての記載があります。
・ MATLAB ドキュメンテーション:パフォーマンスとメモリ 2-1. プロセッサ数
Parallel Computing Toolbox の利用や、BLAS 演算の一部はマルチスレッド対応しておりますが、それ以外のマルチスレッド化されていない演算についてのパフォーマンスの向上は期待できません。しかし、同じマシンで多くのアプリケーションを動作させている場合は、システムのスループットが向上します。
2-2. システムバスの帯域幅 ここは評価が難しいですが、ページングにメインメモリの大規模なデータ入出力、またはデータベース操作によるファイル入出力操作が発生する場合は重要になります。
2-3. キャッシュメモリの量 キャッシュメモリは早いですが高価なため、通常は限度があります。それよりも遅い RAM は、キャッシュが全て利用されたときにアクティブになります。これは、ベンチマークされた結果もなく、評価することも困難です。特別な事情がない限り、システムは多くの一般的なアプリケーションを実行するのに十分なキャッシュメモリを持っています。