我是使用eclipse for c++ developer,一開始一直會出現1各undefined GOMP_parallel_end 的錯誤後來我發現只要到專案的property裡去設定就解決了.以下是圖檔,因為每個版本的eclipse不盡相同,請各位根據圖找到對應的欄位去改
要改的兩個項目是GCC c++ compiler 還有MingGW c++ linker
網頁
BloggerAds 廣告
標籤
- Java (96)
- Android (27)
- 演算法 (21)
- c++ (19)
- JavaScript (7)
- OpenMp (6)
- Design Pattern (4)
- 日文歌曲 (4)
- 資料結構 (4)
- Foundation Knowledge Of Programming (3)
- QUT (2)
- CodingHomeWork (1)
- Database (1)
- 英文歌詞 (1)
搜尋此網誌
2011年7月20日 星期三
OpenMP-HelloWorld
open mp是可以把程式平行化執行的c/c++ library.open mp很常被用在遊戲的動畫處理方面.另一方面因為現在的電腦都是雙核心的cpu,如果應用程式沒有寫成平行化的方式,無法完全發揮雙核心cpu的威力,不免俗的我的第一個open mp 程式當然是c++版本的hello world.網路上很多例子都是用c的方式來呈現,因為我不熟悉c,所以小改成c++的方式來實作.若compile顯示ignore #pragma的警告訊息, 那麼要在complie command line加上"-fopenmp"參數
#pragma omp parallel:是openmp的directives(指示字?),會產生threads來執行,此段程式碼.
omp_get_thread_num():此函式用來回傳thread編號
omp_get_num_threads():用來回傳thread總數
如果只需要一個thread執行程式的話可以用#pragma omp single
#include <omp.h>
#include <iostream>
using namespace std;
int main() {
#pragma omp parallel
cout<<"Hello from thread "<<omp_get_thread_num()<<", nthreads"
<< omp_get_num_threads()<<endl;
return 0;
}
#pragma omp parallel:是openmp的directives(指示字?),會產生threads來執行,此段程式碼.
omp_get_thread_num():此函式用來回傳thread編號
omp_get_num_threads():用來回傳thread總數
如果只需要一個thread執行程式的話可以用#pragma omp single
#include <omp.h>
#include <iostream>
using namespace std;
int main() {
#pragma omp single
cout<<"Hello from thread "<<omp_get_thread_num()<<", nthreads"
<< omp_get_num_threads()<<endl;
return 0;
}
訂閱:
文章 (Atom)
我的網誌清單
標籤
日文歌曲
(4)
股市
(7)
股票
(9)
英文歌詞
(1)
時事
(1)
硬體(hardware)
(1)
資料結構
(4)
演算法
(21)
數學(Math)
(4)
ACM
(3)
ajax
(7)
algorithms
(1)
Android
(27)
Blog Notes(部落格記事)
(6)
C
(9)
c++
(19)
CodingHomeWork
(1)
Database
(1)
Design Pattern
(4)
Foundation Knowledge Of Programming
(3)
GWT
(1)
How
(2)
J2EE
(1)
Java
(96)
Java語言
(4)
JavaScript
(7)
Leetcode
(4)
LOL
(1)
OpenMp
(6)
QUT
(2)
Uva
(2)
Yahoo知識問答
(11)