プログラム並列処理はいくつか方法がある。有名所を挙げれば Boost、Java、pthread、OpenMP、MPI、NSOperation、Windows Thread などなど…. その中で、OpenMP と pthread が使えるようになったので比較してみた。今回は円周率πを両手法で効率良く計算することを目指す。使用する並列化の理論の元となる数式は で、積分範囲をスレッド毎に分割することで高速化を実現する。まずは OpenMP を用いたコード #include #include #include #define F(X) 4.0L/(1.0L+(X)*(X)) #define THREAD 2 #define ITERATION 100000000 int main(int argc, char *argv[]) { long double x0, x1, h, sum =