1. mpi_init(&argc, &argv);初始化,
mpi_finalize();結束
所有mpi函式在
init
之後執行,但每個程序都會擁有整個**,不只是兩者之間的**,每個程序都會有變數的私有備份。
2. mpi_comm_size(mpi_comm_world, &nproces);總程序數
mpi_comm_rank(mpi_comm_world, &rank);當前程序
3. mpi_wtime();獲取時間,浮點數
4. mpi_get_processor_name(name, &len); 獲取當前主機,
len為長度
5. mpi_get_version(&a, &b);獲取
mpi主版本次版本號
6. mpi_send(buf, 2, mpi_int, i, 1, mpi_comm_world);
mpi_recv(buf, 2, mpi_int, i, 1, mpi_comm_world, &status);
send 傳送之後,如果對相同程序傳送資料,形成緩衝區,不會覆蓋前面乙個,
recv
會乙個乙個的接收。
7. mpi_status 有
mpi_tag mpi_source mpi_error
8. mpi_barrier(mpi_comm_world);等待程序同步
9. mpi_any_source //任意源
mpi_any_tag //
任意tag
10. jacobi迭代(對等模式
mpi並行化)
左右兩邊都保留一列,
遇到的問題:邊界處理,所有第0行最後一行賦值為
8,左邊第1列為
8,右邊第
my_size為8
,左邊第
0列留空,右邊第
my_size+1
留空,這地方在最後計算時注意邊界處理。
0程序從
2開始到
my_size,3
程序從1
開始到my_size-1。
1. mpi_sendrecv(t, totalsize, mpi_double, rank+1, 1, t, totalsize, mpi_double, rank+1, 0, mpi_comm_world, &status); 將
send
和recv
整合,這個函式比分開寫號,系統會優化程序通訊避免死鎖。
2. mpi_sendrecv_replace(t, totalsize, mpi_double, rank+1, 1, rank+1,0,mpi_comm_world, &status); 因為傳送和接收都一樣大小並且型別一樣,共用緩衝區。
3. mpi_proc_null 值為
-1,虛擬程序,向這個程序傳送接收資料時,會返回真,執行乙個空操作,簡化**,減少邊界操作。
4. 矩陣向量乘(主從模式並行)
行分解:將a按行分為幾塊,比如當前程序數為3,將
a分為2塊,給程序
1,2;
0號程序負責廣播和輸出。
1負責1.2行,2負責
34行或者
1負責
1 3行,2負責
24行。
兩種不同的分配方法,一種是順序分配一種是取餘分配。
a的第一行乘以b得
c的第乙個值。每一行都要乘以
b,所以對於每個程序來說,
b是共享的。用
mpi_bcast將b
廣播給所有程序。計算結果要返回給
0程序。每一行計算完都返回給
0程序,將每乙個
mpi_send
的tag
設定為當前行數,
0程序接收到時根據
status
取出tag
,便於對
c的賦值。
1. 列分解(未實現)
a的每一列乘以b,
b依然是共享的,
a[0][0] * b[0]
得到 c[0]
的一部分,
a[0][1]*b[0]
的c[0]
的第二部分,第乙個程序得到每個
c的兩部分,每個程序傳送時傳送乙個
temp
陣列即可包含了
c的部分值,將每個程序的
c加和得到最終的c。
1. 矩陣乘
行分解類似矩陣向量乘,b依然是共享的,每個程序傳送時,傳送的是矩陣
c的一行,並且
tag依然代表了計算的行。
列分解(未實現)得到的是矩陣c所有值的一部分,每個程序對
c的每個值加和可得
c,似乎好實現。
塊分解(未實現)將a行分解,
b列分解,程序中的a和
b相乘的
c[i][j]
。。。等等,計算完之後將
b發給其他程序,迭代,這樣每個程序都可以得到完整的b。
ASC超算競賽及基本思路
目錄 設計超算集群 看參考文獻做設計 對超算集群進行效能測試 一般來講的測試工具就是用hpl,找到最適合的引數,達到最優秀的計算能力 數字影象處理 通常 量較大,優化較為困難,優化偏重於編譯引數,執行引數和數學庫blas的重新鏈結,對於熱點可以考慮並行 讀寫 演算法 氣候 這個需要做的就是優化 目的...
ASC19世界超算大賽下週決戰大連,獎金高達24萬
4 月21 25 日,2019 asc世界大學生超級計算機競賽 asc19 總決賽將在大連理工大學舉行。來自海內外的 20 強隊伍將在 3000 瓦額定功耗下自行設計組建超級計算機,挑戰人工智慧影象超解析度sr 全球氣候變化nymcisrw模式cesm 基因測序組裝軟體wtdbg hpl hpcg基...
18 批標準化 超引數選擇原則
batch normalization 批標準化和普通的資料標準化類似,是將分散的資料統一的一種方法,也是優化神經網路的一種方法。批標準化,不僅在將資料輸入模型之前對資料做標準化,而且還在網路的每一次變換之後都做標準化。即使在訓練過程中均值和方差隨時間發生變化,它也可以適應性地將資料標準化。我們知道...