教材是《並行程式設計導論》,**參考該教材。
用了mpi_scatter和mpi_gather(allgather也一樣,不寫destination的引數就行了
**中注釋掉的部分是測試時從命令列輸入向量使用的,那個時候把n設了12。因為要求是n=10000,所以我直接讓第i個元素等於i,並且只輸出了i=1126對應的元素,以及我們需要的執行時間。
程式設計過程中遇到的乙個坑是,我一直以為char *和char 是一樣的,所以直接給read_vectorh和print_vector傳遞了char *型別的引數,於是一直報warning(事實上直接傳"string"就可以qwq)
#include執行之後是這樣的:#include
#include
void read_vector(double local_a, int local_n, int n, char vec_name, int my_rank, mpi_comm comm) else
}void print_vector(double local_b, int local_n, int n, char title, int my_rank, mpi_comm comm) else
}void parrel_vector_sum(double local_x, double local_y, double local_z, int local_n)
int main(void)
有任何錯誤歡迎指正。
MPI並行程式設計
了解並熟悉mpi並行程式開發環境,學會並行程式編譯方法,並行程式作業提交方法,並行程式執行狀態觀察與分析方法,本實驗的內容主要包括學習如何編譯執行mpi程式以及通過較簡單的 helloworld.c 程式的實際執行來進一步的熟悉 實驗一,本實驗的內容主要包括學習如何編譯執行mpi程式以及通過較簡單的...
MPI 並行解方程
基本演算法 逐步縮小函式值異號的範圍 最後逼近最終解 所有執行緒計算中地位相同 計算範圍與self號相應的區段值 把x較小值做為解 只支援單個解 lx做為計算範圍和終止條件 最後 由主線程顯示結果 include mpi.h include include define end 999999 def...
使用MPI並行求解字首和 prefix sum
本文介紹的並行模式是字首和 prefixsum 通常也叫掃瞄 scan 從數學的角度看,閉掃瞄 inclusive scan 操作接受乙個二元運算子和乙個n元輸入陣列 x0,x1,xn 1 然後返回乙個輸出陣列 x0,x0 x1 x0 x1 xn 1 在介紹並行掃瞄演算法與它們的實現前,先介紹乙個高...