auの日記

プログラミング初心者の日記。(auはハンドルネームです)

並列プログラムを可能にするOpenMPとは

auです。

並列プログラミングをするに当たって、OpenMPという共有メモリで並列化に対応することができるAPIがあるようなので調べてみました。

OpenMPとは

OpenMPとは、共有メモリ型のシステムで並列プログラミングを可能にするAPIです。

APIということは、includeしてあげれば使うことができそうですね。

OpenMPを使用することで、逐次プログラムを並列プログラムに変えることができます。こうすることで、使われていない資源を使うことができたりと、処理が早くなります。

マルチスレッド化などは、プログラムに結構な分量書かなければいけないのに対して、OpenMPは指示文を少し追記するだけでできるそうです。

C言語OpenMPを実装する場合

ヘッダに

#include <omp.h>

を追記し、スレッドを作成する命令を3行程度記述するだけで実装することができました。

はずでした。

Virtual BoxのUbuntu 18.0.4の環境で実装したのですが、なんでかスレッド数が1にしかなりません・・・。

原因を究明してまた記事にしたいと思います。