openmp

    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

    4熱度

    3回答

    有些人可以推薦使用C++進行並行化的方法,這時要處理的數據非常龐大。我一直在閱讀關於openMP和英特爾的TBB以用C++進行並行化,但還沒有嘗試過。這些對於並行數據處理更好?任何其他圖書館/方法?

    6熱度

    1回答

    我剛剛開始使用C++的OpenMP。我在C++的串行代碼看起來是這樣的: #include <iostream> #include <string> #include <sstream> #include <vector> #include <fstream> #include <stdlib.h> int main(int argc, char* argv[]) { st

    0熱度

    1回答

    我在MSVC 9 SP1下使用OpenMP v2時遇到了一個有趣的問題。當從主執行線程中調用omp_set_num_threads,然後使用omp_get_num_threads檢查設置的金額時,所有工作都正常並檢出。 但是,在一個GUI應用程序中,我調用相同的東西,但它自己的線程(使用CreateThread創建),以防止UI變得無法響應,看起來omp_set_num_threads在從線程調用

    3熱度

    2回答

    我是新來打開MP和我從官方網站 #include <omp.h> #include <stdio.h> int main() { #pragma omp parallel printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads()); } 嘗試過的示例程序。我將在日

    2熱度

    1回答

    我正在嘗試用於大型數據處理的openMP,而且它相對較新。我的輸入數據集非常龐大,所以我將它分成多個子集,每個線程都處理數據的子集。該子集中的每個數據項都由該線程起作用。如果其中一個線程在任何數據項操作期間失敗,我想終止其他線程並返回失敗。使用共享變量是一個選項,但有沒有更好的方法來做同樣的事情?

    0熱度

    2回答

    我有一個url隊列,我傳遞給它的一個函數,它抓取並獲取url中的每個url應該是並行的並且crawl是一個類,並且start是我的函數它抓取的網址,如果我運行程序的每個網址,是通過執行一個一個不能並行 while(!q.empty()) { #pragma omp parallel for { for(int n=0; n<q.size(); ++n)

    3熱度

    2回答

    我正在使用C語言編寫OpenMP程序。我有共享數組「數據」正在被所有線程更新。我希望確保每個線程都已完成讀取部分並在執行下一條語句data [j] = temp之前將值存儲在temp中。 我試着在兩個語句之間放置#pragma omp barrier但編譯器拋出一個錯誤。請幫忙。 #pragma omp parallel for shared(data) for (j = 0; j < num

    0熱度

    1回答

    GuideView OpenMP性能分析器使用* .gvs文件格式嗎? 生成「guide.gvs」,f.e.由英特爾與 $ export LD_PRELOAD=<path_to_icc_or_redist>/lib/libiompprof5.so $ ./openmp_parallelized_prog $ ls -l guide.gvs