mpi

    0熱度

    1回答

    我想問兩個問題: MPI中傳播者的最大數量是多少? MPI中的最大進程數是多少?

    -1熱度

    1回答

    在大學時,我被要求一個實驗室進行並行編程:並行化矩陣乘法。我寫了一個類似於這個例子的算法,但是這個實現提供了一個斷點。請告訴我,我能修好些什麼? #define _CRT_SECURE_NO_WARNINGS #include <cstdlib> #include <iostream> #include <math.h> #include "mpi.h" #include <stdio.

    1熱度

    1回答

    與MPI_Send/MPI_Recv不同的是,其他涉及集體通信的函數(例如MPI_Bcast/MPI_Gather)沒有「標記」參數。是什麼原因?

    1熱度

    1回答

    如何讀取mpi的外部輸入文件?我需要從外部文件(zadanie4_vstup.txt)中讀取一個整數,以計算簡單因式分解。我嘗試用int變量(n)的地址替換MPI_Init()中的第二個參數,但它看起來是無意義的。 謝謝。 #include <stdio.h> #include <mpi.h> int main(int argc, char ** argv) { FILE *fr

    0熱度

    1回答

    我對MPI點對點阻塞模式有點困惑。 現在我有以下代碼。 y = id; j = id - 1; if(j<0) j = p -1; k = id + 1; if(k>p-1) k = 0; MPI_Recv(&x, 1, MPI_INT, k, 0, MPI_COMM_WORLD, &status); MPI_Send(&y, 1, MPI_INT, j, 0, MPI_COMM_

    0熱度

    1回答

    在我的C++應用程序中,我應該每次都在進程間共享信息。使用MPI_Send和MPI_Recv可以很好地工作,但在我的工作中,發送/接收消息時不需要由進程形成的「同步障礙」。即使使用MPI_Isend類型等,程序中也會出現「同步障礙」。 找到的解決方案是將信息放在文件上(無需消息共享數據),以便進程可以在不等待另一個人到達特定的代碼點的情況下獲取/放置數據。它也可以工作,但它會使程序失去時間表現,這

    -2熱度

    1回答

    我想詢問有關回答以下問題 對於通過使每個進程發送一個 值執行通信此MPI程序段,正,以環形模式轉到其旁邊的過程。也就是說,如果有N個進程,則進程0 將發送值爲1,進程1將發送到2,依此類推。最後一個進程將其值 發送到0.這些消息將全部並行發生。 if (my_rank%2 == 0) { MPI_SEND(msg,size,MPI_INT,(my_rank+1)%comm_sz,0,comm);

    0熱度

    1回答

    是否可以從程序中知道正在執行多少個進程prog_1和prog_2? mpirun -np 3 prog_1 : -np 5 prog_2 我的意思是,我怎麼能知道里面正在由3個流程執行prog_1?

    0熱度

    2回答

    我在mpi4py執行該程序的麻煩。我的目標是將特定數據發送到特定節點(這就是爲什麼我不使用分散)。之後,處理每個節點中的數據,最後收集所有結果。 很顯然,我的程序不明白如何收集數據,從不同的節點(也許是因爲收集的設計與分散的工作)。我試着用comm.send()發送日期,並用comm.gather()進行收集。當我執行程序時,它會永遠運行,而我看不到任何結果。 你能幫我找出如何從不同的節點收集的數

    0熱度

    1回答

    我試圖通過MPI與不同大小的std::vector<MyClass>進行通信。 MyClass包含可能未初始化或大小不同的矢量的成員。爲此,我寫了一個serialize()和deserialize()函數,讀寫這樣的std::vector<MyClass>到std::string,然後我通過MPI進行通信。 class MyClass { ... int some_int_me