mpi

    0熱度

    2回答

    這是我計算素數的代碼,我只想在這些過程中使用集體通信。但是,當我使用'MPI_Scatter'和'MPI_Gather'而不是MPI_Recv和MPI_Isend更改我的代碼時,出現錯誤。我應該改變什麼? 這是我的原代碼: MPI_Request req; MPI_Status status; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WOR

    0熱度

    1回答

    在一個類方法的if語句的主體中分配兩個數組,這是一個依賴於輸入的數據,在我的情況下,它從未爲真。因此,就我而言,這兩個數組從未被分配。但是這個類的析構函數刪除了這兩個[unallocated]數組。 我從來沒有使用不同的MPI庫和C++編譯器的代碼(基於C++ MPI + OpenMP的)出現任何錯誤,除非我開始使用impi庫。 代碼是確定運行,直到它到達端,然後與退出代碼6或11 我固定此bug

    0熱度

    1回答

    請參考下面的收集代碼: from mpi4py import MPI comm = MPI.COMM.WORLD size = comm.Get_size() rank = comm.Get_rank() stat = MPI.Status() message = (rank)**2 print "Before Gather ",rank, message message =

    0熱度

    1回答

    您好目前我正在使用Infiniband測試IMB基準測試的性能,目前我正在測試並行傳輸測試 並且想知道結果的確反映了8的並行性能流程。 對結果的解釋太模糊了,我不明白。 因爲每個結果都提到了(在MPI_Barrier中等待的6個額外進程),我懷疑它每個只運行2個進程? 吞吐量列t_avg [usec]結果似乎得到了正確的結果,但我需要確保我正確理解。 #----------------------

    0熱度

    1回答

    目前我是新來使用IMB基準,並希望確保 是否檢查的過程(NP)的配置數量是平均分配節點和每個芯 目前IMB-基準提供了基於消息的持續時間爲 的固定尺寸。例如象下面這樣一個固定大小每秒的吞吐量。 $ mpirun -np 64 -machinefile hosts_infin ./IMB-MPI1 -map 32x2 Sendrecv #-----------------------------

    0熱度

    2回答

    您好,我是MPI編程新手。我試圖將兩個矩陣相乘(一個NxN矩陣(A)和一個Nx1(B)矩陣)以得到一個結果C矩陣(Nx1)。每個進程都應該計算矩陣C中的一行(元素),但只有進程0(我的主進程)可以正確計算,因爲它似乎沒有等待其他進程完成計算。我也不確定非主過程是否正確地發回結果(或者他們甚至需要?)。這裏是我的代碼: #include <stdio.h> #include <stdlib.h>

    0熱度

    1回答

    的陣列什麼是用來存儲MPI_MAXLOC在MPI_Reduce()的返回值函數的雙值

    0熱度

    1回答

    我編程上的騎士登陸,其具有68芯和4個超線程/核心節點。我正在研究混合MPI/OpenMP應用程序。 我的問題是,如果4個超線程意味着用作OpenMP的 線程或者我如何使用他們?當我運行使用 以下方案我的程序: export OMP_NUM_THREADS=1 mpirun -np 68 ./app 它的運行速度比當我使用的方案更快: export OMP_NUM_THREADS=4 mp

    2熱度

    1回答

    我有一個由wrap.py生成的CPP程序。 wrap.py用於爲MPI程序生成包裝。它將任何正常的MPI呼叫重定向到PMPI呼叫用於攔截目的,以便例如性能分析。請下載生成的代碼here。我使用otf2來跟蹤MPI程序。 要解釋代碼: // test4.cpp __attribute__((constructor)) void init(void) { if(!is_init)

    0熱度

    1回答

    我是MPI的新手。我的程序計算從1到100的總和,但拋出一個錯誤,我不明白爲什麼。 我正在學習MPI_Reduce和MPI_Bcast,所以我儘量使用它們。 這是我的程序。 // include something int main (int argc, char * argv[]) { int rank, size, root = 0; int i,j,k,S[100