openmp

    2熱度

    1回答

    爲什麼在某些應用程序中啓用OpenMp時,當我試圖在Visual Studio上運行時,返回此錯誤消息「致命用戶錯誤1002:並非所有線程都執行了所有工作共享結構」 ?這種情況發生時甚至沒有添加任何並行結構,只發生在這個應用程序中,這意味着當我嘗試在啓用OpenMp的情況下執行其他應用程序時,這種情況不會發生。

    1熱度

    1回答

    關於OpenMP多線程代碼的問題: 是否所有全局變量由線程共享?如何確定全局變量專用於主線程? 由於 PS:它是一個C代碼。

    1熱度

    1回答

    我需要一些建議和幫助的現有的C項目在solaris8下,SPARC平臺「的OpenMP」(這是一個龐大的工程)的重新編譯。關鍵是我不熟悉編譯和並行編程問題。 隨着一點點的谷歌搜索我看到太陽工作室11和12 OpenMP的基礎設施了。 憑什麼我開始編譯使用OpenMP C文件。在另一方面 可以這樣通過下載與支持OpenMP GCC編譯器(在束) 和重命名完成,並且與以前的CC的位置 鏈接,幷包括Op

    7熱度

    3回答

    我剛開始學習如何使用OpenMP。我想弄清楚爲什麼下面的代碼不能與Visual Studio 2008並行運行。它編譯並運行正常。但是它在我的四核機器上只使用了一個核心。這是我嘗試移植到mex函數的代碼的一部分。任何指針讚賞。 #pragma omp parallel for default(shared) private(dz, t, v, ts_count) reduction(+: sum_

    5熱度

    2回答

    它是否適用於並行化包含函數調用的循環, 或者是在內部進行基本操作的循環方便得多。 例如它是否適合放置如下的並行化指令? main(){ .. #omp paralel .. for (i=0;i<100;i++){ a[i] = foo(&datatype , ...); ... } .. } int foo(datatype *a,...){ //doing complex

    0熱度

    3回答

    我只是不知道如何以下OpenMP程序轉換成MPI程序 #include <omp.h> #define CHUNKSIZE 100 #define N 1000 int main (int argc, char *argv[]) { int i, chunk; float a[N], b[N], c[N]; /* Some initializations */ for (

    1熱度

    1回答

    我想在類成員函數中並行化一個循環。但是代碼中有兩個錯誤: class myclass { public: int _k; void f(int nb_examples, int nb_try) { int i; int ks[nb_try]; // assignment to elements in ks omp_set_num_thr

    3熱度

    1回答

    我有一個使用OpenMP來並行化for-loop的程序。在循環內部,線程將寫入共享變量,所以我需要同步它們。但是,我有時可能會遇到段錯誤或雙重釋放或損壞錯誤。有人知道會發生什麼?感謝致敬!下面是代碼: void KNNClassifier::classify_various_k(int dim, double *feature, int label, int *ks, double * error

    6熱度

    2回答

    我對OpenMP相當陌生,我試圖啓動一個單獨的線程來處理2D數組中的每個項目。 所以基本上,這樣的: for (i = 0; i < dimension; i++) { for (int j = 0; j < dimension; j++) { a[i][j] = b[i][j] + c[i][j]; 我在做什麼是這樣的: #pragma omp parallel for

    0熱度

    1回答

    我使用OpenMP並行化幾個分離的for-loops。在gdb中調試時,我發現當運行到達第一個並行區域時會創建多個線程。多個線程在運行整個程序結束時退出。這與我對OpenMP的拆分連接模型的看法是相反的,在這種模型中,線程應該連接在一起成爲主線程,然後在每個並行區域的末尾而不是整個程序的結束處終止。 我錯了嗎? 謝謝!