Boost.pythonを使えばC++でコンパイルしたものをPythonから呼び出せる。
OpenMPでコンパイルしたものでも読み出せるのか?ということなのでちょっとやってみた。
実行するとちゃんと速く動いていた。
以下忘れないようにメモ。
OpenMPでコンパイルしたものでも読み出せるのか?ということなのでちょっとやってみた。
実行するとちゃんと速く動いていた。
以下忘れないようにメモ。
#include <iostream> #include <omp.h> #include <time.h> #include <boost/python.hpp> using namespace std; double hoge(int N) { long x = 0; double time; cout << "function start" << endl; #ifdef _OPENMP double start = omp_get_wtime(); #pragma omp parallel for for(int i = 0; i < N; i++) { x += i; } time = omp_get_wtime() - start; #else clock_t start, end; start = clock(); for(int i = 0; i < N; i++) { x += i; } end = clock(); time = (double(end-start)/CLOCKS_PER_SEC) #endif cout << "function done" << endl; return time; } BOOST_PYTHON_MODULE(basic) { using namespace boost::python; def("hoge", &hoge); }
0 件のコメント:
コメントを投稿