主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

並列計算とは

並列計算では、多数の計算を同時に実行できます。多くの場合、大規模な問題は小規模な問題に分割でき、小規模な問題は同時に解決されます。

並列計算の使用を検討する主な理由は次のとおりです。

  • タスクを分散して同時実行することで時間を節約

  • データを分散してビッグ データの問題を解決

  • デスクトップ コンピューターのリソースを利用してクラスターおよびクラウド コンピューティングにスケール アップ

并行计算工具箱™ では、以下ができます。

  • 帕弗帕菲尔などの対話型並列計算ツールを使用してコードを高速化

  • 分布的高的数据存储地图还原などの対話型ビッグ データ処理ツールを使用して計算をスケール アップ

  • 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并行服务器を使用して、計算をオンサイトのクラスターまたはクラウドにオフロードできます。詳細については、クラスターとクラウドを参照してください。

関連するトピック