openmp

    1熱度

    1回答

    我有一個具體的例子,但我也對一個更一般的答案感興趣。給出下面的代碼,和一個均勻地平衡二叉樹: void mainTraverse(tree *node) { omp_set_nested(1); omp_set_max_active_levels(4); recurseTraverse(node); } void recurseTraverse(tree *no

    0熱度

    2回答

    如何使用OpenMP解決以下問題: 編輯: Panni是正確的,我的並行方法行不通,那麼什麼是一個很好的方式做到這一點? 情況: 函數調用順序: 計算值(); move(); 功能calc()經由#pragma omp parallel for並行化的環路,並改變含有結構一個陣列x和y值。 功能move()僅經由#pragma omp for對循環進行並行,並訪問在calc()改變的值。 問: 我

    0熱度

    1回答

    在我的Fortran90代碼中,我有一個帶有幾個嵌套循環的外部循環。爲了加速我的代碼,我試圖在外部循環中使用OpenMP,但是我有一個非常奇怪的問題:當我使用多於1個線程時,程序運行速度比使用帶有1個線程的OMP慢,而該線程反過來比使用原始的串行程序(根據掛鐘時間,我嘗試了1,2,3或4個線程)。然而,在所有情況下,我都得到了正確的結果。 我在我的代碼進行了多次試驗,最後我發現,這個問題是在一個子

    0熱度

    1回答

    這是用我的第一次OpenMP和我覺得我有在下面的執行核心誤區: #include <omp.h> #include <stdio.h> int main(int argc, char *argv[]) { int i, n; float a[100], b[100], result; /* Some initializations */ n = 100; result = 0.

    2熱度

    3回答

    我想獲得一些代碼,使用OpenMP在GPU上運行,但我沒有成功。在我的代碼中,我使用for循環執行矩陣乘法:一次使用OpenMP pragma標記,一次沒有。 (這樣我就可以比較執行時間了。)在第一個循環之後,我調用omp_get_num_devices()(這是我的主要測試,看看我是否實際連接到GPU)。無論我嘗試什麼,omp_get_num_devices()始終返回0 我正在使用的計算機有兩

    1熱度

    1回答

    我基本上有三個關於OpenMp的問題。 Q1。 OpenMp是否提供互斥共享變量?考慮下面的三個嵌套循環的簡單矩陣乘法代碼,使用C++中的OpenMp並行化。這裏A,B和C是動態空間分配雙**類型的變量。線程數被適當分配一個值。 #pragma omp parallel { int tid = omp_get_thread_num(); int fraction = (n/threadCou

    1熱度

    2回答

    如果我有一個OpenMP並行化的C++程序,其中不同的線程不斷地使用一些小的共享數組,只爲讀取數據,在這種情況下會發生錯誤共享嗎?換句話說,錯誤共享只涉及內存寫入操作,或者也可能發生在內存讀取操作中。

    0熱度

    1回答

    我想使用OpenMP來並行化一個函數,該函數在C++的main函數中被調用。 我的代碼運行速度比順序模式慢得多:for-loop需要大約6.1s(掛鐘)而沒有OpenMP(只是註釋掉#pragma ...命令),使用OpenMP需要11.8s。 我的機器有8個CPU和8183Mb的物理存儲,並配備了64位Windows 7操作系統。我在調試模式下使用Visual Studio編譯器來處理64位系統

    0熱度

    1回答

    我在包裝一些Fortran子程序以用於python3腳本時遇到了一個問題。自從我試圖在子例程中使用OpenMP後,此問題纔出現。 例如,如果我使用f2py -c -m --fcompiler=gfortran --compiler=mingw32 --f90flags='-fopenmp' test test.f90 -lgomp編譯模塊'test.pyd',其中'test.f90'是包含並行循環

    0熱度

    1回答

    我想在我的代碼的某個點調用cblas_drot,它不在並行區域中。然後我很困惑,這個調用的執行時間在單線程模式和24線程中基本相同。我在函數調用之前通過mkl_set_num_threads()設置線程數。任何人都知道發生了什麼?非常感謝。 該CPU是2 * Xeon E5 2620v3和OS是Unbuntu 16.04.2。