電子情報通信学会 - IEICE会誌 試し読みサイト
© Copyright IEICE. All rights reserved.
|
解説
マルチコアとSIMD命令を活用した並列プログラミング
Parallel Programming with Multi-core Processors and SIMD Instructions
abstract
近年のプロセッサではマルチコア化やSIMD命令の導入など,プログラムの持つ並列性を利用して性能向上を図るアプローチが広く用いられている.一方で,これらの仕組みを活用するための並列性の自動抽出はまだ簡単なプログラムや一部のドメインでしか利用できず,ある程度複雑なプログラムでは人手で並列化を行う必要がある.本稿では並列プログラミング未経験者を対象とし,自動並列化に頼らずにマルチスレッディング及びSIMD命令を用いた並列プログラミングの概要について,簡単なサンプルを交えて解説する.
キーワード:並列処理,SIMD命令,マルチスレッディング,OpenMP
現代では組込み向けプロセッサまでマルチコア化が進んだりSIMD(Single Instruction stream, Multiple Data stream)命令が実装されたりするなど,高性能なソフトウェアを記述するには並列化が必要不可欠となってきている.直近数年のIntel Xeonプロセッサ最上位モデルにおけるマルチコア化による性能向上とSIMD命令(用語)による性能向上,及びそれらを併用した場合に期待される性能向上率(図1)を見ると,最新のプロセッサでは並列化の有無で理論ピーク性能が1,000倍以上変化するなどいかに並列化が重要であるかが分かる.一方でプログラムの自動並列化はまだ万能と呼ぶには至っておらず,場合によっては人手で明示的に並列化を行う必要がある.
本稿では人手によるSIMD命令とマルチスレッディングを用いた並列化の概要と,実際に並列化を行う例を示す.
続きを読みたい方は、以下のリンクより電子情報通信学会の学会誌の購読もしくは学会に入会登録することで読めるようになります。 また、会員になると豊富な豪華特典が付いてきます。
電子情報通信学会 - IEICE会誌はモバイルでお読みいただけます。
電子情報通信学会 - IEICE会誌アプリをダウンロード