C++ コンパイラ
Clang
Mac なら Xcode https://apps.apple.com/jp/app/xcode/id497799835?mt=12 を入れると自動でついてくる
GNU コンパイラの「フリ」をしている (コンパイラ名が “g++”)
ターミナルで
g++ --version
として
...
Apple clang version xx.x.x
...
と出たら Clang が入ってる
GNU コンパイラ
OS を問わず標準的なコンパイラ。コンパイラ名は “g++”。Mac なら Homebrew https://brew.sh/index_ja で入れるのが簡単
Intel コンパイラ
Intel CPU に特化してチューンした (らしい) コンパイラ。コンパイラ名は “icpc”。有償だと思ってたけど無料で使える? https://www.intel.com/content/www/us/en/developer/articles/news/free-intel-software-developer-tools.html
エディタ
Emacs 以外は認めない 書ければなんでもいい
ちなみに Emacs ならターミナル内で開ける方が便利なので、エアリアス
alias emacs="emacs -nw"
をシェルの設定ファイル (bash なら bashrc, zsh なら zshrc 等) に入れとくと便利
OpenMP
非常に簡単に並列化プログラムを組める。GNU コンパイラや Intel コンパイラは最初から対応しているが Clang はそのままでは使えないので Homebrew 等を使って “libomp” を入れておく必要がある
brew install libomp
コンパイルはそれぞれ以下のオプションをつけるだけ
g++ -Xpreprocessor -fopenmp -lomp
g++ -fopenmp
icpc -openmp
Numerical Recipes
数値計算アルゴリズムの様々な言語での実装を解説した一連の書籍群。大学図書館にあるはず。付属の CD に特殊関数を組んだヘッダファイルが入ってるので、include するだけで特殊関数が使えるようになる。(ヘッダファイルだけならネット上に落ちてるかも…?)
Boost C++ ライブラリ https://www.boost.org/
特殊関数を初め、様々な分野のライブラリが実装されていてとても便利 (らしい)
“このライブラリは、先鋭的な技術を好むプログラマーが積極的に使用していることで有名である”
サンプルコード
を
g++ -Xpreprocessor -fopenmp -lomp -o test test.cpp
コンパイル
./test
実行
OpenMP : Enabled (Max # of threads = 4)
という感じで出力されたら多分問題なし