openmp

    3熱度

    1回答

    我試圖編寫一些能夠快速計算隨機數的東西,並且可以應用於多個線程。我當前的代碼是: /* Approximating PI using a Monte-Carlo method. */ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <omp.h> #define N

    19熱度

    5回答

    OpenMP本身支持減少表示數組的變量嗎? 這會工作像下面這樣... float* a = (float*) calloc(4*sizeof(float)); omp_set_num_threads(13); #pragma omp parallel reduction(+:a) for(i=0;i<4;i++){ a[i] += 1; // Thread-local copy o

    2熱度

    3回答

    我試圖將一個簡單的數值分析代碼(梯形規則數值積分)轉換成將在啓用CUDA的GPU上運行的代碼。這裏有很多文獻,但它似乎遠比這裏要求的複雜得多!我目前的代碼是: #include <stdio.h> #include <math.h> #include <stdlib.h> #define N 1000 double function(double); int main(void)

    4熱度

    1回答

    在的openmp的原子指令支持東西一樣 x += expr x *= expr 其中expr爲不引用X標量類型的表達式。我得到的,但我不知道爲什麼你不能這樣做: #pragma omp atomic x = y; 這在某種程度上更繁重的CPU指令明智?在我看來,合法和非法聲明加載x和其他一些標量值的值,更改x的寄存器值並將其寫回。如果任何人都可以向我解釋這些指示是如何(我假設)從根本上

    2熱度

    1回答

    當我在版本x64中構建它時(所有其他配置都正常運行),下面的程序崩潰。 我做錯了還是OpenMP問題? 高度讚賞有良好接地的解決方法。 重現使用下面的代碼生成項目(控制檯應用程序)。 使用版本x64配置中的/ openmp和/ GL和(/ O1或/ O2或/ Ox)選項進行構建。 這是OpenMP支持和C++優化必須打開。由此產生的程序應該(不應該)崩潰。 #include <omp.h> #i

    3熱度

    1回答

    什麼是OpenMP的高級描述? Wikipedia article指出:「OpenMP(開放式多處理)是一種應用程序編程接口(API),支持多種體系結構(包括Unix和Microsoft Windows平臺)在C,C++和Fortran中進行多平臺共享內存多處理編程。它由影響運行時行爲的一組編譯器指令,庫例程和環境變量組成。「什麼? 它與其他併發方法(如線程,線程池和工作竊取)相比如何?

    27熱度

    3回答

    我有一個C擴展,我想使用OpenMP。當我輸入我的模塊,但是,我得到一個導入錯誤: ImportError: /home/.../_entropysplit.so: undefined symbol: GOMP_parallel_end 我編譯-fopenmp和-lgomp模塊。這是因爲我的Python安裝不是用-fopenmp標誌編譯的嗎?我需要從源代碼構建Python嗎?或者還有其他一些

    2熱度

    2回答

    我在我的代碼上做了一些時間試驗,邏輯上看起來很容易與OpenMP並行,因爲每個試驗都獨立於其他試驗。既然這樣,我的代碼看起來是這樣的: for(int size = 30; size < 50; ++size) { #pragma omp parallel for for(int trial = 0; trial < 8; ++trial) { time_t sta

    0熱度

    1回答

    #include <omp.h> #include <stdio.h> int main(int argc, char* argv[]) { omp_set_num_threads(4); printf("numThreads = %d\n", omp_get_num_threads()); } 此代碼打印: numThreads = 1 這在Visual Studio 201

    1熱度

    3回答

    在下面的代碼中,我試圖比較數組的所有元素與嵌套for循環中的所有其他元素。 (這是爲了運行一個簡單的n體仿真,我只用四個體來測試4個線程的4個線程)。沒有OpenMP修改的代碼的相同順序版本在25M迭代中運行約15秒。昨晚這段代碼在大約30秒內運行。現在它運行大約1分鐘!我認爲問題可能在於線程必須寫入通過指針傳遞給函數的數組。 該數組在其他地方動態分配,由我定義的結構組成。這只是一個預感。我已經驗