[問題] 請問如何將OpenMP的程式改為pthread ?
原本的程式是這樣(OpenMP版本):
#pragma omp parallel
{
int id = omp_get_thread_num();
if(numThread -1 == id ) height = Height - (Height/numThread)*(numThread-1) ;
else height = (Height/numThread);
int shift = nSrcWidth*(nSrcHeight/numThread)*(id);
SomeImageProcessingFunction(Src + shift ,Width,
height*PIXELSIZE, Dst);
}/*#pragma omp parallel */
簡單講就是:若這為雙核CPU,一張圖拿來,強制
A核做上半部,B核做下半部,這在電腦沒有做其他事時是極何理的。
與同事討論後,同事說可以用pthread,讓OS自己去分配執行任務的
核是誰。
也就是說,假若A核在忙,B核很閒,則影像處理的兩部份都會被OS
交給B核做。
爬了爬文還有網上找不到資料,發現還真不好入手。。
對pthread完全不熟,那請問我要怎修改原本的程式為pthread呢?
謝謝大大幫忙。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.158.204
→
06/17 19:45, , 1F
06/17 19:45, 1F
→
06/17 19:46, , 2F
06/17 19:46, 2F
→
06/17 19:46, , 3F
06/17 19:46, 3F
推
06/17 19:57, , 4F
06/17 19:57, 4F
→
06/17 19:57, , 5F
06/17 19:57, 5F
→
06/17 20:00, , 6F
06/17 20:00, 6F
→
06/17 20:01, , 7F
06/17 20:01, 7F
→
06/17 20:55, , 8F
06/17 20:55, 8F
→
06/17 20:57, , 9F
06/17 20:57, 9F
→
06/17 21:49, , 10F
06/17 21:49, 10F
→
06/17 22:18, , 11F
06/17 22:18, 11F
→
06/17 22:20, , 12F
06/17 22:20, 12F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章