用語解説 第19回テーマ: パラレルプロセッシング

2020/08/22

羽馬 洋之 〔三菱電機(株)〕,福井 聡 (新潟大学)

1. パラレルプロセッシング(1)

一般に,過渡現象を数値的に解くには,大規模な連立微分方程式を離散化し,連立1 次方程式に変換してコンピュータに演算させる。計算の高速化は,この連立1 次方程式を如何に高速に解くかが鍵になる。大規模代数演算を高速に処理するツールとして,従来はベクトルプロセッサ(代数演算を一括して行うことができるCPU)を用いたスーパーコンピュータが用いられてきた。近年では,膨大な開発費を要するスーパーコンピュータに代わり,高速・大容量のデータ通信技術の進歩と相まって,多数のCPU を並列して計算を行うパラレルプロセッシングが注目されている。パラレルプロセッシングとは,複数のCPU に処理を分散して割り当て,同時に計算を行うことで,システム全体の処理性能を向上させる技術である。電力分野では,電力系統のリアルタイムシミュレータなどに用いられている。

2. 並列計算機(1)

並列計算機は,ソルバ(入力データを受け取り,指定されたアルゴリズムに従って計算を行い,計算データを出力する機能を持ったソフト)に組み込まれる並列処理方式の違いにより,①共有メモリ型ソルバが実行可能な計算機,②分散メモリ型ソルバが実行可能な計算機,の2 種類に分類可能である。

上記①は,一台のコンピュータにCPU を複数用意する「マルチプロセッサ」や,CPU 内部に複数の演算装置を実装する「マルチコアCPU」など,主にコンピュータ内部で並列的に処理を行うものである。1 つの演算コアには,命令制御部・演算部・キャッシュメモリ部があり,1 つのCPU としての機能を有する。共通にアクセスできるメモリ上に置かれた解析対象に対し,複数のコアが並列処理を行う(図1)。CPU の性能以上に,CPU とメモリ間のデータ転送速度が高速化のボトルネックとなる場合がしばしばある。最新のマルチコアCPU では,メモリをコアごとに接続することで,その問題の改善が図られている。


図1 共有メモリ多並列計算機のイメージ

上記②は,複数の計算ノードを高速ネットワークを介して接続し,並列処理を行うものである(図2,クラスタ計算機と呼ばれる)。解析対象を複数の領域に分割し,領域ごとにCPU に割り当てて並列処理を行う。各領域を接続するためにCPU 間でデータ交換を行う必要がある。そのために,高速なデータ通信ネットワークにより各計算ノードを接続する。最近では,通信速度が数Gbps(規格による)のサーバ/クラスタ用高速通信アーキテクチャであるインフィニバンドの利用ノウハウの蓄積や低価格化が進み,利用環境が整ってきている。


図2 クラスタ並列計算機のイメージ

3. 電力系統のリアルタイムシミュレータ

電力系統の高度化・複雑化により,高度な系統運用制御が必要になってきている。電力系統解析の瞬時値計算では,進行波の遅延を利用して,系統ノードの領域分割を行って
並列化し,リアルタイムシミュレーションを実現している(2)。実効値計算では,回路網方程式を並列化計算することが難しく,従来のリアルタイムシミュレータでは,発電機を表わす状態方程式系を母線単位で並列化することで高速化を行っている。最近の研究では,マルチコアCPU のクラスタ計算機を電力系統シミュレーションに適用する研究も進んできている。マルチコアCPU のクラスタ計算機を用いると,比較的簡単に計算ノードを増加させることができるが,計算ノードの増加に比べ,ネットワーク速度は一定であるため,解析規模が大きくなると,演算処理と通信速度のバランスが崩れ,並列化の効果が頭打ちになってしまう。これを解決するために階層的並列化という手法も提案されている(3)

文献

(1) 樫山和男・西村直志・牛島 省:日本計算工学編:「並列計算法入門」,丸善 (2003)

(2) 山本隆也・榎本 博・黒田憲一・河野良之・田岡久雄:「PC クラスタによるリアルタイム電力系統シミュレータ」,電学論B,Vol.124, No.5, pp.733-740 (2004)

(3) 田岡久雄・藤田雄一:「マルチコアPC クラスタにおける電力系統シミュレーションの階層的並列化」,電学論B,Vol.130, No.12, pp.1076-1082 (2010)

【電気学会論文誌B,132巻,5号,2012に掲載】