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

正文內(nèi)容

并行程序設(shè)計(jì)hppt課件-wenkub

2023-01-29 16:27:17 本頁面
 

【正文】 mpiccC程序編譯及鏈接 ? mpif77和 mpif90Fortran77和 Fortran90程序編譯及鏈接 ? 關(guān)于編譯輸出可執(zhí)行文件的位置 – 要求各節(jié)點(diǎn)都可以訪問該文件 (注意各節(jié)點(diǎn)都將執(zhí)行該程序 ) ? 方法一:編譯后手工將文件拷貝到各節(jié)點(diǎn) 例: $scp cpi host2:/home/test ? 方法二:配置 NFS共享目錄,各節(jié)點(diǎn)啟動時(shí)將共享目錄 mount到本機(jī)文件系統(tǒng)中,編譯輸出的可執(zhí)行文件直接存入該目錄 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI程序的運(yùn)行 – 使用 mpiexec啟動 MPI應(yīng)用程序 ? MPI過去使用 mpirun 基本命令示例: mpiexec n num executable ? num表示進(jìn)程個(gè)數(shù) (注意:是進(jìn)程不是線程 ) ? executable為可執(zhí)行程序名,可以是 MPI程序,也可以不是 ? MPI程序的調(diào)試 – MPI提供了與 gdb和 totalview的集成接口 – mpiexec –gdb實(shí)現(xiàn)與 gdb的集成 ? 進(jìn)程按順序指派在各節(jié)點(diǎn)上運(yùn)行 ? 進(jìn)程個(gè)數(shù)與節(jié)點(diǎn)個(gè)數(shù)沒有必然聯(lián)系 問題:怎樣能寫出獨(dú)立于進(jìn)程個(gè)數(shù)和節(jié)點(diǎn)個(gè)數(shù)的程序 ? MPI并行環(huán)境簡介 三、 MPI的幾個(gè)基本概念 ? 緩沖區(qū): MPI定義了 3種緩沖區(qū) – 應(yīng)用緩沖區(qū):保存將要發(fā)送或接收的數(shù)據(jù)的地址空間 – 系統(tǒng)緩沖區(qū): MPI環(huán)境為通信所準(zhǔn)備的存儲空間 – 用戶向系統(tǒng)注冊的緩沖區(qū):用戶使用某些 API時(shí),在程序中顯式申請的存儲空間,然后注冊到 MPI環(huán)境中供通信所用 ? 節(jié)點(diǎn)間傳送消息時(shí),可能需要消息在緩沖區(qū)之間拷貝 ? 為減少消息傳輸延遲 – 更高速的互連網(wǎng)絡(luò) – 更簡單的協(xié)議棧 – 避免消息多次拷貝 – 非阻塞式發(fā)送 – … MPI并行環(huán)境簡介 三、 MPI的幾個(gè)基本概念 ? 通信子 (municator) – 是 MPI環(huán)境管理進(jìn)程及通信的基本設(shè)施 – 定義一個(gè)可以相互間通信的進(jìn)程集合,進(jìn)程間的消息傳遞需放在通信子中進(jìn)行 – MPI支持通信子內(nèi) (Intramunicator)通信和通信子間 (Intermunicator)通信 – 不同空間中的消息互不干擾 – MPI啟動后,自動創(chuàng)建 2個(gè)組內(nèi)通信子 ? MPI_COMM_WORLD:啟動時(shí)的所有進(jìn)程 ? MPI_COMM_SELF:僅包含進(jìn)程自身 ? 進(jìn)程號與進(jìn)程組 – 進(jìn)程號 (rank)需放在某個(gè)通信子范圍內(nèi)才有效 ? 在一個(gè)通信子中,進(jìn)程號從 0開始編號,為一連續(xù)整數(shù)序列 – 通信中必須使用進(jìn)程號標(biāo)識消息的源和目的 – 定義一個(gè)通信子時(shí),也就指定了一組共享該空間的進(jìn)程組 (group) ? 訪問文件需要使用句柄 ? 訪問網(wǎng)絡(luò)需要使用套接字 ? MPI中傳送消息需要用通信子 MPI并行環(huán)境簡介 四、 MPI基本調(diào)用 MPI初始化與結(jié)束 MPI_Init():初始化 MPI MPI_Finalize():結(jié)束 MPI int MPI_Init( int *argc, //命令行參量數(shù) char **argv //命令行參量 )。 通信子基本操作 點(diǎn)到點(diǎn)通信 點(diǎn)到點(diǎn)通信 一 、 簡介 ? 消息由 發(fā)送進(jìn)程 、 接收進(jìn)程 、 tag唯一地標(biāo)識 – tag是一個(gè)用戶自定義的非負(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_Bsend_init MPI_Rsend_init MPI_Ssend_init 二、標(biāo)準(zhǔn)發(fā)送和接收 ? 標(biāo)準(zhǔn)發(fā)送和接收是阻塞式 (blocking)的 – 直到傳輸在本地完成 (locally plete)后,發(fā)送 /接收函數(shù)才返回 ? 本地完成與全局完成 – 本地完成 (locally plete) :在本地進(jìn)程中執(zhí)行的傳輸工作已經(jīng)完成 – 全局完成 (globally plete):整個(gè)傳輸已經(jīng)完成 MPI_Send():阻塞式發(fā)送消息 MPI_Recv():阻塞式接收消息 int MPI_Send( void *buffer, //發(fā)送數(shù)據(jù)指針 int count, //發(fā)送數(shù)據(jù)元素?cái)?shù) MPI_Datatype type, //發(fā)送數(shù)據(jù)類型 int dest, //目的進(jìn)程 ID int tag, //識別該消息的標(biāo)記 MPI_COMM m //MPI通信子 )。 int main( int argc, char **argv ) { int i。 MPI_Comm_rank( MPI_COMM_WORLD, amp。 for ( i = 0。 else ProcSend()。 MPI_Send( sbuf, BUF_SIZE, MPI_INT, 0, 1, MPI_COMM_WORLD )。 source numProcs。 ? 標(biāo)準(zhǔn)模式下的緩沖區(qū)使用 – 由 MPI環(huán)境決定是否對要發(fā)送的消息進(jìn)行緩沖 – 如果緩沖了待發(fā)送的數(shù)據(jù),則與緩沖通信模式一樣,即使接收端尚未啟動接收操作,發(fā)送函數(shù)也可立即返回 – 出于性能和資源優(yōu)化考慮, MPI會提供一定數(shù)量的緩沖區(qū),超過緩沖區(qū)容量時(shí),發(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ā)送和接收 ? 阻塞式通信時(shí)發(fā)送 /接收進(jìn)程的幾種狀態(tài) ① 雙方啟動發(fā)送和接收操作 – proc0會立即啟動數(shù)據(jù)傳輸操作 ② 發(fā)送動作早于接收動作啟動 – 如消息長度 緩沖區(qū), proc0需等待直到proc1啟動接收; – 如消息長度 ≤緩沖區(qū),消息存入緩沖區(qū),發(fā)送函數(shù)立即返回,但實(shí)際的消息傳輸需等到接收啟動后才開始。 點(diǎn)到點(diǎn)通信 四、就緒通信模式 (Ready) ? 僅當(dāng)對方的接收操作啟動并準(zhǔn)備就緒時(shí),才可發(fā)送數(shù)據(jù) – 程序員必須保證發(fā)送方發(fā)送時(shí),接收方已啟動接收操作 – 如果違反了這種定時(shí)假設(shè) (發(fā)送時(shí)接收方未啟動接收操作 ),將會導(dǎo)致錯(cuò)誤 ? 發(fā)送方使用 MPI_Rsend()發(fā)送消息 ? 優(yōu)缺點(diǎn)討論 – 就緒通信模式可省去消息的緩沖以及發(fā)送 /接收雙方的握手操作,提高通信效率 – 由于對定時(shí)的額外假設(shè),就緒模式容易出錯(cuò) 點(diǎn)到點(diǎn)通信 五、同步通信模式 (Sychronize) ? 發(fā)送端可在任意時(shí)刻啟動發(fā)送動作,但 發(fā)送端需等待接收端開始接收數(shù)據(jù)之后才返回 – 即發(fā)送 /接收雙方達(dá)到一個(gè)確定的同步點(diǎn)后,通信才結(jié)束 ? 通信協(xié)議: – 發(fā)送端首先向接收端發(fā)送一個(gè)消息發(fā)送請求 – 接收端的 MPI環(huán)境將該請求保存下來 – 待接收進(jìn)程的接收動作啟動后,接收端向發(fā)送端返回一個(gè)消息發(fā)送許可 – 發(fā)送端收到許可后發(fā)送消息 點(diǎn)到點(diǎn)通信 六、各種通信模式小結(jié) ? 關(guān)于接收操作 – 各種通信模式的發(fā)送函數(shù)各不相同,但接收函數(shù)均為 MPI_Recv() – MPI_Recv()是一個(gè)阻塞操作 ,即:僅當(dāng)接收端進(jìn)程緩沖區(qū)中收到了期待的數(shù)據(jù)才返回 – 如果接收操作早于發(fā)送操作啟動,則接收操作將等待直到接到數(shù)據(jù)后返回 例: MPI_Recv( buffer, 10, MPI_INT, 0, 123, MPI_COMM_WORLD, amp。 ?該操作將立即返回 MPI_Ssend( buf2, count, MPI_REAL, 1, tag2, MPI_COMM_WORLD )。status )。 MPI_Comm_rank( MPI_COMM_WORLD, amp。 /* 非阻塞式發(fā)送 */ else MPI_Irecv( recvbuf, count, MPI_INT, 0, 0, MPI_COMM_WORLD, amp。status )。 if ( rank == 0 ) { MPI_Sendrecv( sbuf, BUFSIZE, MPI_INT, 1, tag, rbuf, BUFSIZE, MPI_INT, 1, tag, MPI_COMM_WORLD, amp。 MPI_Send( sbuf, BUFSIZE, MPI_INT, 0, t
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1