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

正文內(nèi)容

并行程序設(shè)計(jì)hppt課件-文庫吧資料

2025-01-20 16:27本頁面
  

【正文】 作對各進(jìn)程的數(shù)據(jù)進(jìn)行匯總 */ MPI_Reduce( amp。 i length_per_process。 } }/*if*/ else { MPI_Recv( myArray, length_per_process, MPI_INT, 0, tag, MPI_COMM_WORLD )。 i = numProcs1。 exit( 0 )。 myArray = (int *)malloc( length_per_process*sizeof(int))。numProcs )。myid )。argv )。 MPI_Init( amp。 ? MPI還提供全規(guī)約操作 MPI_Allreduce() – 組內(nèi)所有進(jìn)程都作為根執(zhí)行一次規(guī)約操作 (所有接收緩沖區(qū)有相同拷貝 ) – 等價于執(zhí)行一次 MPI_Reduce()后,再執(zhí)行 MPI_Bcast() 進(jìn) 程 01進(jìn) 程 12進(jìn) 程 23進(jìn) 程 34發(fā) 送緩 沖 區(qū)1 0接 收緩 沖 區(qū) 集合通信 ? MPI支持自定義規(guī)約操作 – 自定義規(guī)約操作函數(shù),并調(diào)用 MPI_Op_create() 操作符 說明 MPI_MAX 最大 MPI_MIN 最小 MPI_SUM 求和 MPI_PROD 求積 MPI_LAND 邏輯與 (logical AND) MPI_BAND 位與 (bitwise AND) MPI_LOR 邏輯或 (logical OR) MPI_BOR 位或 (bitwise OR) MPI_LXOR 邏輯異或 (logical XOR) MPI_BXOR 位異或 (bitwise XOR) MPI_MAXLOC 最大值及位置 MPI_MINLOC 最小值及位置 MPI預(yù)定義的規(guī)約操作符 統(tǒng)計(jì) 3的個數(shù) include include int main( int argc, char **argv ) { int myid, value numProcs。 sendbuf[0] = rank + 1。 int sendbuf[1]。 MPI_Send( sbuf, BUFSIZE, MPI_INT, 0, tag, MPI_COMM_WORLD )。 } if ( rank == 1 ) { MPI_Recv( rbuf, BUFSIZE, MPI_INT, 0, tag, MPI_COMM_WORLD, amp。 if ( rank == 0 ) { MPI_Sendrecv( sbuf, BUFSIZE, MPI_INT, 1, tag, rbuf, BUFSIZE, MPI_INT, 1, tag, MPI_COMM_WORLD, amp。 MPI_Comm_rank( MPI_COMM_WORLD, amp。status )。 /* 非阻塞式接收 */ …… /* 計(jì)算操作 */ MPI_Wait( amp。 /* 非阻塞式發(fā)送 */ else MPI_Irecv( recvbuf, count, MPI_INT, 0, 0, MPI_COMM_WORLD, amp。 if ( rank == 0 ) MPI_Isend( sendbuf, count, MPI_INT, 1, 0, MPI_COMM_WORLD, amp。 MPI_Comm_rank( MPI_COMM_WORLD, amp。 int MPI_Test( MPI_Request *request, //請求句柄 int *flag, //操作結(jié)束便返回為真 MPI_Status *status, //狀態(tài) )。status )。status )。 ?該操作將立即返回 MPI_Ssend( buf2, count, MPI_REAL, 1, tag2, MPI_COMM_WORLD )。rank )。 點(diǎn)到點(diǎn)通信 四、就緒通信模式 (Ready) ? 僅當(dāng)對方的接收操作啟動并準(zhǔn)備就緒時,才可發(fā)送數(shù)據(jù) – 程序員必須保證發(fā)送方發(fā)送時,接收方已啟動接收操作 – 如果違反了這種定時假設(shè) (發(fā)送時接收方未啟動接收操作 ),將會導(dǎo)致錯誤 ? 發(fā)送方使用 MPI_Rsend()發(fā)送消息 ? 優(yōu)缺點(diǎn)討論 – 就緒通信模式可省去消息的緩沖以及發(fā)送 /接收雙方的握手操作,提高通信效率 – 由于對定時的額外假設(shè),就緒模式容易出錯 點(diǎn)到點(diǎn)通信 五、同步通信模式 (Sychronize) ? 發(fā)送端可在任意時刻啟動發(fā)送動作,但 發(fā)送端需等待接收端開始接收數(shù)據(jù)之后才返回 – 即發(fā)送 /接收雙方達(dá)到一個確定的同步點(diǎn)后,通信才結(jié)束 ? 通信協(xié)議: – 發(fā)送端首先向接收端發(fā)送一個消息發(fā)送請求 – 接收端的 MPI環(huán)境將該請求保存下來 – 待接收進(jìn)程的接收動作啟動后,接收端向發(fā)送端返回一個消息發(fā)送許可 – 發(fā)送端收到許可后發(fā)送消息 點(diǎn)到點(diǎn)通信 六、各種通信模式小結(jié) ? 關(guān)于接收操作 – 各種通信模式的發(fā)送函數(shù)各不相同,但接收函數(shù)均為 MPI_Recv() – MPI_Recv()是一個阻塞操作 ,即:僅當(dāng)接收端進(jìn)程緩沖區(qū)中收到了期待的數(shù)據(jù)才返回 – 如果接收操作早于發(fā)送操作啟動,則接收操作將等待直到接到數(shù)據(jù)后返回 例: MPI_Recv( buffer, 10, MPI_INT, 0, 123, MPI_COMM_WORLD, amp。 int MPI_Buffer_attach( void *buffer, //緩沖區(qū)地址 int count, //緩沖區(qū)大小 )。 ? 標(biāo)準(zhǔn)模式下的緩沖區(qū)使用 – 由 MPI環(huán)境決定是否對要發(fā)送的消息進(jìn)行緩沖 – 如果緩沖了待發(fā)送的數(shù)據(jù),則與緩沖通信模式一樣,即使接收端尚未啟動接收操作,發(fā)送函數(shù)也可立即返回 – 出于性能和資源優(yōu)化考慮, MPI會提供一定數(shù)量的緩沖區(qū),超過緩沖區(qū)容量時,發(fā)送方需要阻塞直到接收操作收取數(shù)據(jù)后才可返回 ? 阻塞式通信中,發(fā)送端完成與否不僅取決于本地進(jìn)程的狀態(tài),還與遠(yuǎn)端接收進(jìn)程的狀態(tài)有關(guān) 點(diǎn)到點(diǎn)通信 二 、 標(biāo)準(zhǔn)發(fā)送和接收 ? 阻塞式通信時發(fā)送 /接收進(jìn)程的幾種狀態(tài) ① 雙方啟動發(fā)送和接收操作 – proc0會立即啟動數(shù)據(jù)傳輸操作 ② 發(fā)送動作早于接收動作啟動 – 如消息長度 緩沖區(qū), proc0需等待直到proc1啟動接收; – 如消息長度 ≤緩沖區(qū),消息存入緩沖區(qū),發(fā)送函數(shù)立即返回,但實(shí)際的消息傳輸需等到接收啟動后才開始。status )。 source numProcs。 /* 從 0號進(jìn)程以外的每個進(jìn)程接收消息 */ printf( process:%d of %d receiving..n, myid, numProcs )。 MPI_Send( sbuf, BUF_SIZE, MPI_INT, 0, 1, MPI_COMM_WORLD )。 return 0。 else ProcSend()。 i++ ) sbuf[i] = myid + i。 for ( i = 0。 MPI_Comm_size( MPI_COMM_WORLD, amp。 MPI_Comm_rank( MPI_COMM_WORLD, amp。argc, amp。 int main( int argc, char **argv ) { int i。 例: MPI_Send( buffer, 10, MPI_INT, 1, 123, MPI_COMM_WORLD ) 消息緩沖區(qū)指針 消息中數(shù)據(jù)個數(shù) 消息數(shù)據(jù)類型 目的進(jìn)程號 tag 通信子 點(diǎn)到點(diǎn)通信 二、標(biāo)準(zhǔn)發(fā)送和接收 include include include define BUF_SIZE 10 int myid, numProcs, sbuf[BUF_SIZE], rbuf[BUF_SIZE]。 通信子基本操作 點(diǎn)到點(diǎn)通信 點(diǎn)到點(diǎn)通信 一 、 簡介 ? 消息由 發(fā)送進(jìn)程 、 接收進(jìn)程 、 tag唯一地標(biāo)識 – tag是一個用戶自定義的非負(fù)整數(shù),用于區(qū)分同一對進(jìn)程間的不同消息 ? 消息的傳遞涉及數(shù)據(jù)的拷貝和同步,為滿足不同需求, MPI提供多種點(diǎn)到點(diǎn)通信的變體 ? 消息的發(fā)送分為 阻塞 和 非阻塞 兩種方式 ? 消息發(fā)送函數(shù): MPI_??Send() – B:緩存模式 – R:就緒模式 – S:同步模式 ? I:立即發(fā)送,即非阻塞方式, I可與 B,R,S組合 點(diǎn)到點(diǎn)通信 一 、 簡介 ? 消息發(fā)送函數(shù): MPI_??Send() – B:緩存模式 – R:就緒模式 – S:同步模式 – I:立即發(fā)送,即非阻塞方式, I可與B,R,S組合 消息發(fā)送和接收函數(shù)影響到各節(jié)點(diǎn)進(jìn)程間同步關(guān)系及程序性能,應(yīng)謹(jǐn)慎選擇使用 分類 發(fā)送 接收 阻 塞 通 信 MPI_Send MPI_Recv MPI_Irecv MPI_Recv_init MPI_Bsend MPI_Rsend MPI_Ssend 非阻塞通信 非重復(fù) MPI_Isend MPI_Recv MPI_Irecv MPI_Recv_init MPI_Ibsend MPI_Irsend MPI_ISSend 重 復(fù) MPI_Send_init MPI_Recv MPI_Irecv MPI_Recv_init MPI_
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1