Help us understand the problem. What is going on with this article?

Apple ClangでOpenMPを使う

More than 1 year has passed since last update.

この記事では、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が使われているのか気にしたりする必要がなくなって、開発環境の構築がだいぶ楽になった。

ktgw0316
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away