2010-08-19 35 views
3

什麼是OpenMP的高級描述?什麼是OpenMP?

Wikipedia article指出:「OpenMP(開放式多處理)是一種應用程序編程接口(API),支持多種體系結構(包括Unix和Microsoft Windows平臺)在C,C++和Fortran中進行多平臺共享內存多處理編程。它由影響運行時行爲的一組編譯器指令,庫例程和環境變量組成。「什麼?

它與其他併發方法(如線程,線程池和工作竊取)相比如何?

回答

2

這是一組擴展,使C/C++能夠並行運行代碼的某些部分,而無需顯式管理(創建,銷燬,分配)線程。

它基本上是通過允許您聲明性地並行運行代碼的某些部分來從管理線程的複雜性中抽象出你自己。代碼示例總是有所幫助:

# pragma omp parallel \ 
    shared (n, x, y) \ 
    private (i) \ 
    reduction (+ : xdoty) 

# pragma omp for 

    for (i = 0; i < n; i++) 
    { 
    xdoty = xdoty + x[i] * y[i]; 
    } 
+0

在最後的編譯指示中沒有「並行」缺失嗎? – tur1ng 2010-08-19 16:33:19

+0

不要這樣想。但不確定。 – 2010-08-19 16:37:56