並列計算・並列実行による
高速化ソリューション
MathWorks Japan アプリケーションエンジニアリング部 アプリケーションエンジニア 吉田剛士アジェンダ
MATLAB® R2012b ハイライト
PCT / MDCS 新機能ハイライト
Simulink® プロダクトの並列化
MATLAB R2012bのハイライト①
新しいデスクトップ – 使用頻度の高い機能を整理 – 見つけやすく データのインポート – テキストファイルの対話的入力 – 数値、テキスト、日付処理強化MATLAB R2012bのハイライト②
アプリケーション
– 各Toolbox が提供する様々なGUIアプリを一覧(ギャラリー)
– ユーザ作成GUIアプリのパッケージ化、配布、インストールの簡単化
アジェンダ
MATLAB R2012b ハイライト
PCT / MDCS 新機能ハイライト
Simulink プロダクトの並列化
まとめ Desktop Computer
Parallel Computing Toolbox™
Computer Cluster
Parallel Computing Toolbox
™&
MATLAB Distributed Computing Server
™コンピュータ クラスタ
MATLAB Distributed Computing Server
スケジューラ
デスクトップ
R2012x の新機能
R2012a
– 「Parallel Configuration」 から 「Cluster Profile」 へ変更
– GPU サポート関数の拡大
beta / bsxfun / det / inv /
fftn / ifftn / …
R2012b
– GPU サポート関数の拡大
mpower / convn / var / cov / …
並列化対応製品一覧
Bioinformatics Toolbox™
Communication System
Toolbox™
Embedded Coder®
Global Optimization Toolbox Image Processing Toolbox™ Model-Based Calibration
Toolbox™
Neural Network Toolbox™
Optimization Toolbox™ Robust Control Toolbox™ Signal Processing Toolbox™ Simulink Coder™
Simulink Control Design™ Simulink Design
Optimization™
Statistics Toolbox™
Neural Network Toolbox
GPU computing support for training and simulations
学習プロセスの並列化 (CPU)の例 学習プロセスの並列化 (GPU)の例 >> % 並列計算用プロセスの起動 >> matlabpool open >> >> % 学習の並列化
>> net2 = train(net1, x, t, 'useParallel', 'yes');
Demo: 加速度データからの動作予測
) , , , (x1 x2 xn f y Input (24変数) - 左手: 12変数 x,y,z 方向の各加速度に対する • 平均 • 分散 • 最大値 • 最小値 - 右手: 12変数 x,y,z 方向の各加速度に対する • 平均 Output - 読書 - キータイプ - マウス操作 - 文字筆記 - 静止 5 秒MATLABにおける機械学習
) , , , (x1 x2 xn f y Input Output Neural Network Support Vector MachineStatistics Toolbox :
Computation of decision trees on multiple bootstrap replicates uses multi-processors TreeBagger class – バギング (Bootstrap Aggregating) 法 や ランダム・フォレスト法 を扱うためのクラス ツリーの並列生成 >> % 並列計算用プロセスの起動 >> matlabpool open >> % 並列オプションの設定
学習時間の比較
Demo: アンケートからの性格分類
30 40 秒 ) , , , (x1 x2 xn f y Input - 40の設問からなる アンケート Output - 8つのグループ A C E G H B D Fアジェンダ
MATLAB R2012b ハイライト
PCT / MDCS 新機能ハイライト
Simulink プロダクトの並列化
Simulink Coder
Parallel building for large model reference hierarchies
パラレルビルドのベンチマーク
環境
– CPU: Intel Xeon W3690 @ 3.47GHz (6-cores)
– Memory: 24GB
– OS: Win7 SP1
– Compiler: Microsoft Visual Studio 64-bit Edition
– MATLAB: R2012a ベンチマーク – 総ブロック数 323,976 を 有するモデルで計測 50 100 150 200 250 300 350 400 450
SLDV: Simulink Design Verifier
™ テストケース自動生成 プロパティ検証 設計エラー検出 解析 検証 仕様 要求 仕様 入力と出力との間に矛盾が無いことを形式的手法に証明例: テストケース生成の並列実行
Parallel For-Loop による検証の並列化 >> ModelList = {‘sldvdemo_cruise_control’; … 'sldvdemo_design_error_detection'}; >> opts = sldvoptions; >> opts.Mode = ‘TestGeneration’; % テストケース生成を選択 >> % 並列計算用プロセスの起動 >> matlabpool open 2 >> >> parfor n = 1:length(ModelList) load_system(ModelList{n}); sldvrun(bdroot, opts); % 検証の実行 endSLVV: Simulink Verification and Validation
™ モデルカバレッジ測定 仕様とモデル間のトレーサビリティ設定 モデルアドバイザ (モデルのスタイル チェック) モデルカバレッジ レポート • Decision • Condition • MC/DC 制御モデル TT,TF,FT 仕様書からモデルへ モデルから仕様書へ Word Excel DOORS MKS Integrity 任意 Word Excel DOORS MKS Integrity 任意 • GUIからのモデル チェックの実行 • 指摘に従い修正例: モデルアドバイザの並列実行
>> matlabpool open % 並列計算用プロセスの起動
>>
>> SysList = {'sldemo_auto_climatecontrol/Heater Control', ...
'sldemo_auto_climatecontrol/AC Control'}; >>
>> [fail, warn] = run_configuration(SysList);
function [fail, warn] = run_configuration(SysList) fileName = 'slvnvdemo_mdladv_config.mat'; fail = 0; warn = 0; SysResultObjArray = ModelAdvisor.run(SysList, …
アジェンダ
MATLAB R2012b ハイライト
PCT / MDCS 新機能ハイライト
Simulink プロダクトの並列化
まとめ
新しいリリースとともに Parallel Computing Toolbox
および MATLAB Distributed Computing Server との 連携製品が拡大
Simulink 関連製品、特にコード生成や検証系の製品との
親和性が高い
Desktop Computer
Parallel Computing Toolbox
Computer Cluster
MATLAB Production Server
™MATLAB Toolboxes MATLAB Compiler
Computer Cluster MATLAB Production Server
License Manager Shared Web Browser End User