openmp

    0熱度

    1回答

    我想在OpenMP線程上按列平均分割一個Eigen動態大小的數組。 thread 0 | thread 1 | thread 2 [[0, 1, 2], [[0], | [[1], | [[2], [3, 4, 5], becomes: [3], | [4], | [5], [6, 7, 8]] [6]] | [7]] | [8]] 我可以使用block方法來

    1熱度

    1回答

    嗨我正在嘗試在不同的線程中做一個循環。現在在do循環中我調用一個函數,它再次調用一些子例程並添加到總和中。現在,如果我並行封閉do循環,它會給出隨機結果,但是我發現如果將該函數置於CRITICAL環境中,它會給出正確的結果。但是這會花費更多的CPU時間,並不會提高速度。我用一個小測試程序進行了測試,並檢查我的邏輯是否正確。然而,在一個大的程序中(我不能在這裏發表)只有當我將函數調用放在CRITIC

    0熱度

    1回答

    我是一個新的OpenMp Programer,現在我遇到了乘以兩個矩陣的問題。這是我的並行代碼,但速度並不像我想象的那麼快。 例如我給它一個3000 * 3000矩陣和3000 * 3000和我的域爲2(隨機數爲0或1)和並行慢於順序 clock_t tStart = clock(); cout<<(char)169<<" parallel "<<(char)170<<endl;

    1熱度

    1回答

    我需要運行一個需要從標準io中讀取的並行程序。我怎麼能通過一個文件在它slurm sbatch?我嘗試了-input命令,但沒有奏效。這裏是我的sbatch腳本 #!/bin/sh #SBATCH -p main #SBATCH --nodes=1 #SBATCH --ntasks=1 #SBATCH --time 0-23:59:59 #SBA

    0熱度

    1回答

    我有一個BML的序列版本,我試圖用OpenMP編寫一個並行版本。基本上我的代碼與main一起工作,在一個循環中調用水平和垂直移動的兩個函數。像這樣: for (s = 0; s < nmovss; s++) { horizontal_movs(grid, N); copy_sides(grid, N); cur = 1-cur; vertical_m

    1熱度

    1回答

    我有一個for循環,使用OpenMP並行化,但也有多種計算錯誤,可能是由於我缺乏使用OpenMP多線程的概念的理解: for (int i = -X/2; i < X/2; ++i) { base.y = anchor + i*rho_step; temp = some_function(base); if(temp > response) {

    0熱度

    1回答

    我有使用兩個裝配的矩陣for循環的基礎上,從不同的庫基質,使用以下算法(此基於犰狳): inline void loop_over_matrix_serial(const size_t &size, arma::mat &matrix) { for (size_t i = 0; i < size; ++i) for (size_t j = 0; j < size; ++j)

    1熱度

    1回答

    將此嵌套循環與攜帶依賴並行化的最佳方法是什麼? Konwing它在一個函數中,我從main調用n次。 [編輯] funct(unsigned char*** grid, int n) { # pragma omp parallel for num_threads(thread_count) default(none) \ shared(grid, n, cur) private(i,

    2熱度

    2回答

    我在以下的$HOME/tpl/intel安裝intel編譯器。當我編譯一個簡單的hello_omp.cpp使用OpenMP啓用 #include <omp.h> #include <iostream> int main() { #pragma omp parallel { std::cout << "Hello World" << std::endl;

    0熱度

    1回答

    我最近開始使用OpenMP進行多線程(MT)我的圖像處理項目。 我沒有任何問題,除了一個(不是計算量很大,但更多的浮點操作與其他int中的int相比)。 所以第一件事情,讓我們說,單線程(ST)結果是等於圖像X,那MT結果是Y. 當使用小窗口平均,X == Y,但是當窗口變大(5x5)時,X!= Y. 因此,我引入了一些「打印」來查看特定像素的值,使用打印熱潮! X == Y再次。這是我想了解的。