このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
並列計算では、多数の計算を同時に実行できます。多くの場合、大規模な問題は小規模な問題に分割でき、小規模な問題は同時に解決されます。
並列計算の使用を検討する主な理由は次のとおりです。
タスクを分散して同時実行することで時間を節約
データを分散してビッグ データの問題を解決
デスクトップ コンピューターのリソースを利用してクラスターおよびクラウド コンピューティングにスケール アップ
并行计算工具箱™ では、以下ができます。
帕弗
や帕菲尔
などの対話型並列計算ツールを使用してコードを高速化
分布的
、高的
、数据存储
、地图还原
などの対話型ビッグ データ処理ツールを使用して計算をスケール アップ
gpuArray
を使用してコンピューターの GPUで計算を高速化
一批
を使用して計算をコンピューター クラスターまたはクラウド コンピューティング機能にオフロード
次に示す並列計算の概念を覚えておくと便利です。
ノード: 1.つ以上の CPU/GPUを含むスタンドアロン コンピューター。ノードはネットワーク化されてクラスターまたはスーパーコンピューターを形成します
スレッド: スケジューラで個別に管理できる最小の一連の命令。GPU、マルチプロセッサまたはマルチコア システムでは、複数のスレッドを同時に実行できます (マルチスレッド)
バッチ: 関数スクリプトの実行をオフロードしてバックグランドで実行
スケーラビリティ: リソースの追加による並列実行速度の上昇
MATLAB®および 并行计算工具箱が提供するツールには以下のものがあります。
“MATLABワーカー": グラフィカル デスクトップなしでバックグラウンドで実行される MATLAB計算エンジン。関数を 并行计算工具箱で使用すると、タスクが自動的に分割され、そのタスクがこれらのワーカーに割り当てられて、計算が並列実行されます。ローカル ワーカーを実行すると、マルチコア デスクトップ コンピューターのすべてのコアを活用できます。また、MATLAB并行服务器™を使用してスケール アップし、マシンのクラスターでワーカーを実行することもできます。操作する MATLABセッションは“MATLABクライアント"と呼ばれています。このクライアントは並列言語関数を使用してワーカーに指示します。
並列プール:帕尔普
または自動並列サポートがある関数を使用して作成された MATLABワーカーの並列プール。既定では、並列言語関数は必要に応じて自動的に並列プールを作成します。詳細については、並列プールでのコードの実行を参照してください。
既定のローカル プロファイルでは、シングルの計算スレッドを使用する物理 中央处理器コアごとの既定のワーカー数は 1.つです。これは、各物理コアが複数の仮想コアをもつことができる一方で、仮想コアが共有浮動小数点単位 (FPU)などの一部のリソースを共有していることが原因です。MATLABでの計算の大部分は倍精度浮動小数点なので、この単位が使用されます。物理コアごとのワーカー数を 1.つに制限すると、各ワーカーは浮動小数点単位に排他的にアクセスすることになるため、通常は計算コードのパフォーマンスが最適化されます。コードの計算量が多くない場合、たとえば入出力 (I/O)が多い場合は、物理コアごとに最大 2.つのワーカーを使用することを検討してください。少なすぎるリソースで多すぎるワーカーを実行すると、マシンのパフォーマンスと安定性に影響が生じる可能性があります。
高速化: コードを複数の MATLABワーカーまたは GPUで、たとえば帕弗
、帕菲尔
、gpuArray
を使用して実行し、コードを高速化します。
データのスケール アップ: 複数の MATLABワーカーにまたがるビッグ データを、高的配列と分散配列を使用して分割します。詳細については、ビッグ データの処理を参照してください。
非同期処理:帕菲尔
を使用して、完了を待たずに計算タスクをバックグラウンドで実行します。
クラスターおよびクラウドへのスケール アップ計算タスクがローカル コンピューターにとって大きすぎるまたは遅すぎる場合は、MATLAB并行服务器を使用して、計算をオンサイトのクラスターまたはクラウドにオフロードできます。詳細については、クラスターとクラウドを参照してください。