[英]My MPI fortran code gives different results for large integers
我是 MPI 編程的新手(剛接觸 3 天)。 我現在正在處理MPI_ALLREDUCE和MPI_REDUCE 。 下面的代碼取一個值n ,每個進程的任務是將變量mypartialsum加 1 n/num_procs次,其中num_procs是進程數。 歸約后, mypartialsum的值匯總到su ...
[英]My MPI fortran code gives different results for large integers
我是 MPI 編程的新手(剛接觸 3 天)。 我現在正在處理MPI_ALLREDUCE和MPI_REDUCE 。 下面的代碼取一個值n ,每個進程的任務是將變量mypartialsum加 1 n/num_procs次,其中num_procs是進程數。 歸約后, mypartialsum的值匯總到su ...
[英]Why should I use MPI_REDUCE instead of MPI_ALLREDUCE?
我是 MPI 編程的新手(兩天前),這是我第一次發布有關堆棧溢出的問題。 我現在正在處理MPI_ALLREDUCE和MPI_REDUCE 。 我知道兩者之間的區別在於前者將減少變量的最終值傳遞給所有進程,而在后一種情況下僅傳遞給目標進程。 在許多情況下甚至很難,您不需要將變量的更新值傳遞給子進程我 ...
[英]Flexible Array Member for 2D-Array
我目前正在從事一個涉及 repast_hpc 和 mpi 的大項目。 我想實現一個二維共享(跨進程)數組,因為 repast_hpc 本身似乎沒有附帶。 為此,我需要一個 class 的數組成員。但是我不知道編譯時數組的大小。 我需要能夠在恆定時間內訪問和更改值。 下面給出的代碼是我當前的heade ...
[英]Request maximum number of threads & cores on node via Slurm job scheduler
我有一個異構集群,包含 14 核或 16 核 CPU(28 或 32 線程)。 我使用 Slurm 管理作業提交。 一些要求: 使用哪個 CPU 進行計算並不重要。 我不想指定作業應該 go 到哪個 CPU。 作業應消耗 CPU 上的所有可用內核(14 或 16)。 我希望 mpirun 處理線程。 ...
[英]Pre- and Post- Processing with mpi4py?
我想編寫一個如下所示的腳本: 我試過了: 但是所有核心都在運行腳本的所有部分 ...
[英]MPI_Init equivalent to MPI_Init_thread with MPI_THREAD_SINGLE?
MPI_Init是否等同於具有desired = MPI_THREAD_SINGLE的MPI_Init_thread ? 附言。 這里有很多關於MPI_Init與MPI_Init_thread的問題(例如this ),但他們沒有提到這一點。 ...
[英]MPI does not run with requested number of threads
我正在嘗試運行以下示例 MPI 代碼,該代碼啟動 20 個線程並讓這些線程忙碌一段時間。 但是,當我使用nmon或top之類的工具檢查 CPU 利用率時,我發現只使用了一個線程。 我使用mpicxx編譯此代碼: mpicxx -std=c++11 -pthread example.cpp -o ex ...
[英]Difference between collective and non-collective mpi communications
MPI 中的集體通信和非集體通信有什么區別? 我試圖了解MPI_File_read和MPI_File_read_all之間的區別,但失敗了。 這兩個函數都使用傳遞給MPI_File_open function 的通信器作為參數。 ...
[英]What are usecases of MPI_Pack/MPI_Unpack?
使用 MPI_Pack/MPI_Unpack 的目的是什么? 它比使用 mpi 結構類型或派生類型更好嗎? ...
[英]initialize const member by initializer with output param
有一個 function 通過使用指向 output 的指針返回返回值: MPI_Comm_rank(MPI_Comm comm, int *rank) 有一個 class 使用它 我想優雅地(例如通過一些 lambda 或其他單行)將rank設置為 const 字段並在初始化列表中初始化它。 我可 ...
[英]MPI_IN_PLACE + MPI_Allgatherv
我如何使用MPI_IN_PLACE執行下面的MPI_Allgatherv操作(我想避免復制大的 arrays,因此首選就地修改)? 目前,由於操作不是就地的,我必須創建一個名為gathered_array的 memory 的浪費數組,並將MPI_Allgatherv操作的結果存儲在那里。 這並不理 ...
[英]MPI: Sending a non-contiguous part of an array of objects with arbitrary sized vectors
我正在嘗試學習 MPI 並正在嘗試開發一個 C++ 程序,我需要在其中發送一堆具有任意大小向量的對象。 將 class 定義為 我可以使用MPI_Type_create_struct和MPI_Type_create_resized來發送一個 object 從 0 級到 1 級: 現在,如果我有一個對 ...
[英]What does &array[element] means and why?
我在 MPI 中使用 C 進行編碼。我不明白 MPI_Send() 是如何工作的,或者 &array[element] 是否工作。 這里array[]={1,2,3,4,5,6,7,8,9,10}和element = 6和element_left = 4 。 我理解array[elemen ...
[英]How do I speculatively receive requests from multiple MPI sending processes?
假設我有 4 個標記為 P0、P1、P2、P3 的 MPI 進程。 每個進程都可能有要發送給其他進程的數據包,但也可能沒有。 即P0需要向P1和P2發送數據包,或者 相似地, 因此 P1 必須從 P0 和 P3 接收潛在的數據包,P3 必須從 P1 接收數據包,從 P0 接收 P2 的數據包。 我 ...
[英]Why is my for loop to assign a task to a comm.rank in pbdMPI failing?
我正在運行一個與 pbdMPI 並行的 R 腳本,其中 10 個 comm.ranks 每個加載 1 個文件,然后 comm.rank 0 收集所有文件並應該合並它們。 我寫了一個 for 循環來指定只有 comm.rank 0 應該執行合並,但是循環失敗並且所有等級都嘗試合並導致腳本在要合並的項 ...
[英]Is there some way to measure time taken by MPI Isend/Irecv?
標題說明了一切。 如何測量 MPI 非阻塞點對點通信所花費的時間? ...
[英]Anyone tried using boost::serialization with boost::geometry::rtree?
我將 boost::mpi 與 boost::geometry 一起使用,並希望廣播一個 boost::geometry rtree 索引。 簡單的解決方法是在每個節點上構建索引,但我想我會問問是否有人有解決方案。 我知道在 boost::geometry 中有一些非 boost::seriali ...
[英]Using MPI with Armadillo C++ for parallel diagonalization
在 C++ 中有一篇關於使用 MPI 和犰狳的帖子: 這里我的問題是,Lapack 和 OpenBlas 是否實現了 MPI 支持? 到目前為止,我在他們的文檔中一無所獲。 似乎有一個名為 ScaLAPACK 的不同庫,它使用 MPI。 這個庫與犰狳兼容嗎? 在使用上和LAPACK有什么區別嗎? 我 ...
[英]How can I send columns in mpi4py using structs?
所以我的目標是使用 mpi4py 將矩陣 A 的右列發送到另一個線程,它應該寫入矩陣 B 的左列。因此,我們從兩個 numpy ndarrays 開始,例如以下形式: 發送后,我希望它們如下所示: 一種方法是在 mpi4py 中使用結構。 我不想將它們保存在緩沖區中,然后將其復制到矩陣中。 我試圖 ...
[英]Weak scaling of mpi program for matrix-vector multiplication
我已經編寫了一些使用共軛梯度法求解方程組的 mpi 代碼。 在這種方法中,矩陣向量乘法占用了大部分時間。 作為並行化策略,我在行塊中進行乘法運算,然后在根進程中收集結果。 其余步驟由根進程執行,只要需要執行矩陣向量乘法,根進程就會廣播結果。 代表加速的強縮放曲線很好 但是代表效率的弱縮放曲線非常糟糕 ...