asc18超算mpi學習總結1

2021-08-17 03:37:49 字數 2779 閱讀 6749

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 批標準化和普通的資料標準化類似,是將分散的資料統一的一種方法,也是優化神經網路的一種方法。批標準化,不僅在將資料輸入模型之前對資料做標準化,而且還在網路的每一次變換之後都做標準化。即使在訓練過程中均值和方差隨時間發生變化,它也可以適應性地將資料標準化。我們知道...