MATLAB ユーザーコミュニティー

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

研究室で自由に使える並列環境を求めて ~ MATLAB Parallel Server導入事例 ~ 青山学院大学 理工学部 経営システム工学科 栗原研究室

今日はアプリケーションエンジニア(略して AE )の岡野さんによる投稿です。


こんにちは。アプリケーションエンジニアの岡野です。普段は MATLAB での Web アプリ開発や、クラウド展開、並列化などのサポートをしております。Blog へは初登場となりますが、皆様よろしくお願いします。

本記事は、MathWorks の製品をご利用いただいているユーザーの皆様にお話を聞くインタビュー企画です。今回は、ご自身の研究室に MATLAB Parallel Server を新規導入された、青山学院大学の栗原教授にお話を伺いました。大学で MATLAB Parallel Server というと、スパコンでのMATLAB の並列処理といった大規模な共用環境の話も聞かれたりしますが、MATLAB Parallel Server は研究室単位でも導入してご活用いただける製品です。こちらの記事では、研究室にある計算資源を上手く活用して、ご自身で一から環境構築を実施された素敵な事例のご紹介になります。

 

ここに注目!

  • 研究室のマシンだけを活用し、MATLAB の並列環境を一から独力で構築
  • 既存の MATLAB プログラムを最小限の変更で並列化し、最大 24 倍の高速化を達成
  • 高速化の結果、従来取りかかれなかった条件も試行することができるなど、研究の幅が広がった
  • Campus-Wide Licenseにより MATLAB Parallel Server のワーカー数の上限を気にすることなく導入可能

MATLAB Parallel Server とは?

MathWorks は並列処理のための製品として、Parallel Computing Toolbox (以降、PCT)と MATLAB Parallel Server という二つの製品を提供しています。1台のマシン上で複数の CPU コアを活用した並列化を実現するのが PCT、それをさらに拡張して複数マシン上で並列化を実現するのがMATLAB Parallel Server という製品になります。

MATLAB Parallel Server を使うと、複数マシンの計算資源をまとめて1つのクラスター環境として構成でき、①大規模な並列環境を構築することができる、②クライアント PC からクラスター環境に重い処理をオフロードすることができる、というメリットがあります。その際に重要になるのがワーカー数という概念。ワーカーとは、実際に並列計算が行なわれる内部の MATLAB プロセス(*)のことで、利用できる CPU 物理コア数に応じてワーカー数を決めます。このワーカー数を増やすことで同時並列数の上限を拡張することができます。

*) Parallel Computing Toolbox ではプロセスベースの他にスレッドベースの並列化オプションも用意されており、その場合は1スレッド=1ワーカーとなります (参考リンク)

 

青山学院大学 理工学部 栗原陽介教授へインタビュー

それでは先生にお話を聞いてまいりましょう。インタビュアーは、カスタマーサクセスエンジニアの林と、アプリケーションエンジニアの岡野が担当しました。

Q1: 栗原先生、本日はどうぞよろしくお願いします。まずは、自己紹介と研究室のご紹介をお願いできますでしょうか?

栗原陽介と申します。研究室は、青山学院大学 理工学部 経営システム工学科の栗原研究室になります。我々の研究室ではシステム工学を基礎に置きながら、様々な社会ニーズに応える幅広い分野へ応用できるシステム開発

を目指しています。現在はとくに、(1) 健康福祉分野 (2) 知識教育分野 (3) 人間のスキル評価分野 (4) 環境評価分野 への応用研究に従事しています。例えば、心拍や呼吸などの生体情報を、体にセンサを設置せずに計測するセンシング技術を開発し、これらの情報から睡眠時無呼吸を検出するなど、健康の維持や増進に役立てる研究を行っています。

栗原研究室Webページより抜粋(https://www.agnes.aoyama.ac.jp/ise/kurihara/

 

Q2: MATLAB Parallel Server導入のきっかけを教えてください

MATLAB は以前から信号処理用に使用しており、MATLAB Parallel Server を使って処理の高速化を行いたいと考えていました.MathWorks 社に MATLAB Parallel Server の導入について問い合わせたところ、大学として Campus-Wide License という包括ライセンスを導入しており、現在の環境で MATLAB Parallel Server を利用できることを知りました。Campus-Wide License の場合、MATLAB Parallel Server はワーカー数の上限を気にすることなく自由に利用できるということでしたので、研究室のマシンを活用して、MATLAB の並列環境の構築を試してみようと思ったのがきっかけでした。

Q3: 導入後はどのような用途で使われることが多いでしょうか?

現在は、修士論文を控えた学生も含めて、研究室内で 10 数名程度で共有して使っています。各々の PC にも MATLAB は入っていますが、時間がかかる計算に、MATLAB Parallel Server 環境を利用しています。もともとあった MATLAB プログラムの高速化が主な目的ですが、様々な条件の組み合わせに対して解を探索するような処理で、並列化が有効だと感じています。

Q4: 導入後の効果やメリットなどあれば教えてください。

例えば、遺伝的アルゴリズムを使った個体の評価を、並列化無しで行おうとすると、2~3日かかっていたこともありました。これを、構築した環境で、約 80 のワーカーを使って並列処理すると、数時間で終わらせることができました。短縮できた時間を使って、より多くの条件も試すことが出来るようになったおかげで、学生の研究の質が向上し、FIT2023 第 22 回情報科学技術フォーラムでの FIT 奨励賞の受賞につながったと思います。

また高価なマシンが必須ではなく、ゲーミング PC や, PC のリプレイスにともない研究室に眠っていた 1 世代前の PC レベルのマシンでも環境構築ができるため、電源容量の増設等が必要なかった点も環境構築が容易であった理由だと思います。今後はマシンを追加してワーカー数を拡張すれば、更なる高速化も期待できます。今は数百ワーカーの並列環境構築を目指して拡張を進めているところです。

Q5: 導入にあたって苦労した点はあったでしょうか?

環境構築は外部に委託はせず自身で実施しましたが,想像していたほど大変ではありませんでした。懸念していた研究室特有のネットワーク環境にともなうエラーに関しても、マニュアル通りに進まない部分を MathWorks の方に手厚くサポートいただけたのでスムーズに構築することができました。環境構築の初期段階でこのようなサポートをしていただいたおかげで、今ではマシンの増設によりワーカーを拡張するといった作業が容易に行える環境を構築することができました。

Q6: MathWorks へ期待することはありますか?

並列化の MATLAB プログラムの書き方に慣れていない学生も多く、今は私が書いたサンプルコードを渡して教えています。学生が自分たちで MATLAB Parallel Server を活用するためには、まず通常の for 文を parfor 文に書き直して1台のマシンで並列実行する、次に複数マシンで構築された MATLAB Parallel Server 環境に向けてプログラムを微修正し parfor 文を実行する、といったように段階的に理解をすすめる必要があります。しかし、MATLAB 初学者だったりすると、まず MATLAB 自体のプログラムに慣れていないこともあり、どの部分が MATLAB Parallel Server 特有のプログラムなのかを理解するのが難しいと思います。このあたり、初学者向けにも、分かりやすいドキュメントやサンプルが充実していくと、より MATLAB Parallel Server を利用しやすくなると思います。

Q7: 最後に、今回 MATLAB Parallel Server 環境を導入しての感想と、将来どのように研究や教育に活用していけるか、お考えを聞かせてください。

MATLAB Parallel Server 環境を導入した結果、データ分析作業が大幅に加速されました。以前は2、3日かかる計算も、複数のワーカーで並列処理させることで効率的に計算することが可能となり数時間で行うことができるようになりました。環境構築にかけた時間を差し引いても、その恩恵を十分受けることができたと感じています。今後は、解の探索だけでなく、大規模シミュレーションの高速化等にも MATLAB Parallel Server 環境を活用していこうかと思います。また、教育においても、これまで授業時間内では終わらないような大規模なデータセットを扱う実習等を実施することも検討したいと考えています。

 

まとめ

栗原先生、この度はインタビューへのご協力、ありがとうございました!お話しを伺うたびに、MATLAB Parallel Server 用のマシンが増えてワーカー数が拡張されていくのを目の当たりにし、いつも楽しみにしておりました。今後も、MATLAB のさらなる活用、研究や教育を加速させていくお手伝いをできればと思います。

今回の記事で、MATLA Parallel Server や並列化にご興味を持った方は、ぜひ MathWorks までお問い合わせください。

|
  • print

댓글

댓글을 남기려면 링크 를 클릭하여 MathWorks 계정에 로그인하거나 계정을 새로 만드십시오.