freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

mpi并行程序設(shè)計--全文預(yù)覽

2025-11-21 16:47 上一頁面

下一頁面
  

【正文】 lse if( == 1) MPI_Recv(amp。status)。 else if(rank == 1) /*12發(fā)送一 float型數(shù) */ MPI_Send(,1,MPI_FLOAT,2,99,m)。 float y。 } 2020年 11月 MPI并行程序設(shè)計 61/217 消息探測 Probe函數(shù) (適用于阻塞與非阻塞 ) ? MPI_Probe()和 MPI_Iprobe()函數(shù) 探測接收消息的內(nèi)容 。request) while(!flag) MPI_Test(amp。flag,amp。 if(rank == 0){ MPI_Isend(amp。 } 2020年 11月 MPI并行程序設(shè)計 60/217 MPI_Test()及應(yīng)用示例 //int MPI_Test(MPI_Request *request,int *flag, MPI_Status *status)。y,1,MPI_INT,0,99,m,amp。request) … MPI_Wait(amp。 MPI_Status status。 當(dāng) request標(biāo)識的通信結(jié)束后, MPI_Wait()才返回 。 ? 接收的完成 :代表數(shù)據(jù)已經(jīng)寫入接收緩沖區(qū)。 所以對于非阻塞操作,要先調(diào)用等待 MPI_Wait()或測試 MPI_Test()函數(shù)來結(jié)束或判斷該請求,然后再向緩沖區(qū)中寫入新內(nèi)容或讀取新內(nèi)容。a, 1, MPI_INT, dest, 99, amp。 int source = (rank + p 1)%p。 該函數(shù)被每一進程執(zhí)行一次 . 2020年 11月 MPI并行程序設(shè)計 53/217 空進程 ? rank = MPI_PROC_NULL的進程稱為空進程 – 使用空進程的通信不做任何操作 . – 向 MPI_PROC_NULL發(fā)送的操作總是成功并立即返回 . – 從 MPI_PROC_NULL接收的操作總是成功并立即返回,且接收緩沖區(qū)內(nèi)容為隨機數(shù) . – status ? = MPI_PROC_NULL ? = MPI_ANY_TAG ? MPI_Get_count(amp。 /*p為進程個數(shù) */ MPI_Sendrecv( amp。 . . . . . . Send() . . . 問題 :進程 1和 2誰先向根進程發(fā)送消息 ? ? % 2020年 11月 MPI并行程序設(shè)計 46/217 運行 greetings ? [dairnode01 ~]$ mpicc –o greeting ? [dairnode01 ~]$ mpirun np 4 greeting Greetings from process 1! Greetings from process 2! Greetings from process 3! ? [dairnode01 ~]$ 計算機打印字符 我們輸入的命令 2020年 11月 MPI并行程序設(shè)計 47/217 現(xiàn)在您已經(jīng)能夠用 MPI進行并行編程了 ! 2020年 11月 MPI并行程序設(shè)計 48/217 避免死鎖 deadlock ? 發(fā)送和接收是成對出現(xiàn)的,忽略這個原則 很可能會產(chǎn)生死鎖 總會死鎖的通信調(diào)用次序 2020年 11月 MPI并行程序設(shè)計 49/217 不安全的通信調(diào)用次序 2020年 11月 MPI并行程序設(shè)計 50/217 安全的通信調(diào)用次序 2020年 11月 MPI并行程序設(shè)計 51/217 MPI_Sendrecv函數(shù)原型 ? int MPI_Sendrecv( void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm m, MPI_Status *status) ? 數(shù)據(jù)輪換 p0 p1 p2 P(n1) pi 2020年 11月 MPI并行程序設(shè)計 52/217 MPI_Sendrecv用法示意 … int a,b。 } } /*關(guān)閉 MPI,標(biāo)志并行代碼段的結(jié)束 */ MPI_Finalize()。 source numprocs。numprocs)。argv)。 /*我的進程 ID,存儲也是分布的 */ MPI_Status status。 2020年 11月 MPI并行程序設(shè)計 32/217 講座內(nèi)容提示 ? 基本的 MPI – 基本概念 – 點到點通信 (Point to point) ? MPI中 API的主要內(nèi)容,為 MPI最基本,最重要的內(nèi)容 – MPI程序的編譯和運行 ? 深入 MPI – 用戶自定義 (/派生 )數(shù)據(jù)類型 (Userdefined(Derived) data type) ? 事實上 MPI的所有數(shù)據(jù)類型均為 MPI自定義類型 – 支持異構(gòu)系統(tǒng) – 允許消息來自不連續(xù)的或類型不一致的存儲區(qū) (結(jié)構(gòu) ,數(shù)組散元 ) – 集合通信 (Collective) ? 數(shù)據(jù)移動 , 數(shù)據(jù)聚集,同步 ? 基于 point to point 構(gòu)建 – MPI環(huán)境管理函數(shù) ? 組 ,上下文和通信空間 /通信子的管理 ? 實例 2020年 11月 MPI并行程序設(shè)計 33/217 Point to Point ? 單個進程對單個進程的通信 ,重要且復(fù)雜 ? 術(shù)語 – Blocking(阻塞 ) :一個例程須等待操作完成才返回 ,返回后用戶可以重新使用調(diào)用中所占用的資源 . – Nonblocking(非阻塞 ):一個例程不必等待操作完成便可返回 ,但這并不意味著所占用的資源可被重用 . – Local(本地 ):不依賴于其它進程 . – Nonlocal(非本地 ):依賴于其它進程 . 2020年 11月 MPI并行程序設(shè)計 34/217 Blocking Send int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm m)。 MPI_Init(…)。 3. MPI_Comm_rank(…)。 數(shù)據(jù)傳送 + 同步操作 ? 需要發(fā)送方與接收方合作完成 . Data Process 0 Process 1 發(fā)送請求 Yes Data Data Data Data Data Data Data Data Time 2020年 11月 MPI并行程序設(shè)計 31/217 最基本的 MPI MPI調(diào)用借口的總數(shù)雖然龐大,但根據(jù)實際編寫 MPI的經(jīng)驗,常用的 MPI調(diào)用的個數(shù) 確實 有限。 } } MPI_Finalize()。 source numprocs。numprocs)。argv)。 MPI_Status status。 MPI_Finalize()。myid )。 MPI_Init( amp。 MPI_Finalize()。 } Hello World! Hello World! Hello World! Hello World! include include main( int , char * v[] ) { MPI_Init( amp。argc, amp。argv )。 printf( Hello, world!\n )。 MPI_Finalize()。 – 標(biāo)志并行代碼的結(jié)束 ,結(jié)束除主進程外其它進程 . – 之后串行代碼仍可在主進程 (rank = 0)上運行 (如果必須 ). 2020年 11月 MPI并行程序設(shè)計 17/217 MPI程序的的編譯與運行 ? mpif77 或 mpicc – 默認生成 . ? mpif77 –o hello 或 ? mpicc –o hello – 生成 hello的可執(zhí)行代碼 . ? mpirun –np 4 ? mpirun –np 4 hello – 4 指定 np的實參 ,表示進程數(shù) ,由用戶指定 . – / hello 要運行的 MPI并行程序 . %小寫 o %np: The number of process. 2020年 11月 MPI并行程序設(shè)計 18/217 ? :運行我們的 MPI程序 ! ? [dairnode01 ~]$ mpicc o hello ? [dairnode01 ~]$ ./hello (?) [0] Aborting program ! Could not create p4 procgroup. Possible missing fileor program started without mpirun. ? [dairnode01 ~]$ mpirun np 4 hello (?) Hello World! Hello World! Hello World! Hello World! ? [dairnode01 ~]$ 計算機打印字符 我們輸入的命令 2020年 11月 MPI并行程序設(shè)計 19/217 ? :Hello是如何被執(zhí)行的 ? ? SPMD: Single Program Multiple Data(SPMD) :::: include include main( int argc, char *argv[] ) { MPI_Init( amp。Hello, world!39。argv )。共有上百個函數(shù)調(diào)用接口,在 Fortran和 C語言中可以直接對這些函數(shù)進行調(diào)用 – MPI是一種標(biāo)準(zhǔn)或規(guī)范的代表,而不是特指某一個對它的具體實現(xiàn) – MPI是一種消息傳遞編程模型,并成為這種編程模型的代表和事實上的標(biāo)準(zhǔn) 2020年 11月 MPI并行程序設(shè)計 8/217 MPI的發(fā)展過程 ? 發(fā)展的兩個階段 – MPI : 1995 ? MPICH:是 MPI最流行的非專利實現(xiàn) ,由 Argonne國家實驗室和密西西比州立大學(xué)聯(lián)合開發(fā) ,具有更好的可移植性 . – MPI ~:動態(tài)進程 , 并行 I/O, 支持 F90和C++(1997). 2020年 11月 MPI并行程序設(shè)計 9/217 為什么要用 MPI? ? 高可移植性 – MPI已在 IBM PC機上、 MS Windows上、所有主要的Unix工作站上和所有主流的并行機上得到實現(xiàn)。2020年 11月 MPI并行程序設(shè)計 1/217 機群應(yīng)用開發(fā) 并行編程原理及 程序設(shè)計 Parallel Programming: Fundamentals and Implementation 曙光信息產(chǎn)業(yè)有限公司 2020年 11月 2020年 11月 MPI并行程序設(shè)計 2/217 參考文獻 ? 黃鎧 ,徐志偉著 ,陸鑫達等譯 . 可擴展并行計算技術(shù) ,結(jié)構(gòu)與編程 . 北京 :機械工業(yè)出版社 , ~56,~237, 2020. ? 陳國良著 .并行計算 — 結(jié)構(gòu)、算法、編程 . 北京 :高等教育出版社 ,1999. ? Barry Wilkinson and Michael Allen. Parallel Programming(Techniques and Applications using Networked Workstations and Parallel Computers). Prentice Hall, 1999. ? 李曉梅 ,莫則堯等著 . 可擴展并行算法的設(shè)計與分析 . 北京 :國防工業(yè)出版社 ,2020. ? 張寶琳 ,谷同祥等著 . 數(shù)值并行計算原理與方法 . 北京 :國防工業(yè)出版社 ,1999. ? 都志輝著 . 高性能計算并行編程技術(shù) — MPI并行程序設(shè)計 . 北京 :清華大學(xué)出版社 , 2020. 2020年 11月 MPI并行程序設(shè)計 3/217 相關(guān)網(wǎng)址 ? MPI: ? Pthreads: ? PVM: ? OpemMP: ? 網(wǎng)上搜索 : 2020年 11月 MPI并行程序設(shè)計 4/217 MPI并行程序設(shè)計
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1