コースの詳細
この2日コースでは、MATLAB® コードを高速化するための様々なテクニックについて学びます。 配列の事前定義やベクトル化などの手法を使用して、計算上のボトルネックを削除できるだけでなく、MATLAB Coder™ を使用して、MATLAB コードを MEX ファイルにコンパイルすることができます。 さらに、Parallel Computing Toolbox™を使用して for ループを並列化することで、コンピュータ上の複数のコアを活用できるようになります。また、MATLAB Parallel Server™ を 使用して複数のコンピュータに分散処理させることもできます。コース全体を通じてこれら各種テクニックの相互関係について理解を深めていきます。 本コースは長時間のシミュレーションにお困りのユーザーが対象となります。
- パフォーマンスの改善
- MEX-files の生成
- 並列処理
- 並列 for ループ
- 実行のオフロード
- クラスターの扱い
- GPU 計算
1日目
パフォーマンスの改善
目的: コードのパフォーマンスを評価し、実行時間を短縮するための戦略の立て方について学びます。
- MATLAB コード アナライザー
- MATLAB プロファイラー
- 配列の事前定義
- ベクトル化
- 計算時間の計測
MEX-Files の生成
目的: パフォーマンス改善のために、MATLAB コードからコンパイル済みコードファイルを生成します。
- MATLAB Coder の概要とワークフロー
- MEX-files の生成と検証
- 未サポート関数の呼び出し
- MEX-file 生成用の各種設定の変更
並列処理
目的: 複数のコアを活用するためにコードの実行を並列化します。
- 追加で MATLAB プロセスを開く
- 並列 for ループの実行
- 計算時間の計測
- 複数のファイルを並列処理
2日目
並列 for ループ
目的: 並列 for ループの詳細について理解を深め、for ループ を parfor ループ に置き換えるテクニックを適用します。
- 並列 for ループの要件
- for ループの並列化
- 中間結果の取得
実行のオフロード
目的: 他のタスク用に MATLAB を使用できるようにするために、別の MATLAB プロセスに計算をオフロードする方法について学びます。 なお、このステップはクラスタ
- バッチでの処理
- バッチ ジョブの作成
- 結果の取得
- ジョブ モニターの使用
クラスターの扱い
目的: 複数のコンピュータを利用することにより、計算を高速化し、より広範囲なシミュレーションを実現する方法について学びます。
- ローカル クラスターとリモート クラスター
- ダイナミック ライセンス
- クラスターの検出と接続
- ファイルのアクセスに関する注意事項
GPU 計算
目的: コードの実行時間を短縮するための別のオプションとして、コンピュータのグラフィックスカード(GPU)上で MATLAB コードを実行します。
- GPU のアーキテクチャおよび処理の概要
- ハードウェアとソフトウェアの要件
- MATLAB の GPU 関数の呼び出し
レベル: 中級
必要条件:
- MATLAB 基礎 コースを受講され実践されている方、もしくは同等の知識を有する方。また、関数や関数ハンドルの記述と活用、オブジェクト操作の経験のある方
期間: 2 日間
言語: English, Français, 日本語, 한국어