54
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Apple ClangでOpenMPを使う

Posted at

この記事では、Appleが提供しているClang(XcodeやCommand Line Toolsに含まれるもの)でOpenMPを使ったコードをコンパイル可能にする方法を述べる。

前提

macでOpenMPを使えるようにする方法を調べると、homebrewでgccかllvmかclang-ompをインストールしましょう、という情報がほとんどだ。理由としては、Apple ClangではOpenMPが使えないので別のコンパイラが必要だから、とされている。

しかし、実はそんなことはなかった。少なくとも、コンパイラを丸ごとインストールする必要はない。

方法

※ 以下、Henry Schreiner氏による詳しい記事 https://iscinumpy.gitlab.io/post/omp-on-high-sierra/ からの抜粋です。

libompを入手する

brew install libomp

OpenMPのランタイム ライブラリがないとどうしようもないので、これは必要。

オプションを付けてコンパイルする

普通に -fopenmp だけ付けてもコンパイルが通らないので

clang -Xpreprocessor -fopenmp -lomp myfile.cxx

とする。肝心なのはOpenMPプラグマを処理させるための -Xpreprocessor オプション。リンク時には -lomp も必要になる。

まとめ

libompだけインストールすればいいので簡潔。

今までのようにhomebrewでllvmをインストールしたり、どっちのclangが使われているのか気にしたりする必要がなくなって、開発環境の構築がだいぶ楽になった。

54
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?