解説 マルチコアとSIMD命令を活用した並列プログラミング

電子情報通信学会 - IEICE会誌 試し読みサイト
Vol.103 No.3 (2020/3) 目次へ

前の記事へ次の記事へ


解説

マルチコアとSIMD命令を活用した並列プログラミング

Parallel Programming with Multi-core Processors and SIMD Instructions

平櫛貴章

平櫛貴章 (株)フィックスターズソリューション事業部

Takaaki HIRAGUSHI, Nonmember (Solution Division, Fixstars Corporation, Tokyo, 141-0032 Japan).

電子情報通信学会誌 Vol.103 No.3 pp.329-333 2020年3月

©電子情報通信学会2020

abstract

 近年のプロセッサではマルチコア化やSIMD命令の導入など,プログラムの持つ並列性を利用して性能向上を図るアプローチが広く用いられている.一方で,これらの仕組みを活用するための並列性の自動抽出はまだ簡単なプログラムや一部のドメインでしか利用できず,ある程度複雑なプログラムでは人手で並列化を行う必要がある.本稿では並列プログラミング未経験者を対象とし,自動並列化に頼らずにマルチスレッディング及びSIMD命令を用いた並列プログラミングの概要について,簡単なサンプルを交えて解説する.

キーワード:並列処理,SIMD命令,マルチスレッディング,OpenMP

1.は じ め に

 現代では組込み向けプロセッサまでマルチコア化が進んだりSIMD(Single Instruction stream, Multiple Data stream)命令が実装されたりするなど,高性能なソフトウェアを記述するには並列化が必要不可欠となってきている.直近数年のIntel Xeonプロセッサ最上位モデルにおけるマルチコア化による性能向上とSIMD命令(用語)による性能向上,及びそれらを併用した場合に期待される性能向上率(図1)を見ると,最新のプロセッサでは並列化の有無で理論ピーク性能が1,000倍以上変化するなどいかに並列化が重要であるかが分かる.一方でプログラムの自動並列化はまだ万能と呼ぶには至っておらず,場合によっては人手で明示的に並列化を行う必要がある.

図1 Intel Xeonプロセッサにおけるマルチコア化とSIMDレジスタ<sup>(用語)</sup>幅増大による性能向上率の変化<sup>(1)</sup>

 本稿では人手によるSIMD命令とマルチスレッディングを用いた並列化の概要と,実際に並列化を行う例を示す.

2.SIMD命令による並列プログラミング

2.1 SIMD命令の概要


続きを読みたい方は、以下のリンクより電子情報通信学会の学会誌の購読もしくは学会に入会登録することで読めるようになります。 また、会員になると豊富な豪華特典が付いてきます。


続きを読む(PDF)   バックナンバーを購入する    入会登録

  

電子情報通信学会 - IEICE会誌はモバイルでお読みいただけます。

電子情報通信学会誌 会誌アプリのお知らせ

電子情報通信学会 - IEICE会誌アプリをダウンロード

  Google Play で手に入れよう

本サイトでは会誌記事の一部を試し読み用として提供しています。