搜尋此網誌

2011年7月20日 星期三

OpenMp 環境配置 for eclipse

我是使用eclipse for c++ developer,一開始一直會出現1各undefined GOMP_parallel_end 的錯誤後來我發現只要到專案的property裡去設定就解決了.以下是圖檔,因為每個版本的eclipse不盡相同,請各位根據圖找到對應的欄位去改
要改的兩個項目是GCC c++ compiler 還有MingGW c++ linker



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"參數


#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;
}

2011-07-20-大盤加權指數看法

前一陣子很不好做,多空雙巴,做短單真的不適合.
目前上檔反壓在8820點左右,下檔支撐在8000~8200這個區間.
最好的走法還是慢慢整理,然後慢慢向高點邁進.