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

正文內(nèi)容

并行程序設(shè)計hppt課件(已修改)

2025-01-26 16:27 本頁面
 

【正文】 第三章 消息傳遞程序設(shè)計 MPI 劉 軼 北京航空航天大學 計算機學院 從程序員視角看,并行體系結(jié)構(gòu)主要分為兩類: ① 共享存儲 (sharedmemory)系統(tǒng) 典型平臺: 基于多核處理器的計算機 SMP及 NUMA體系結(jié)構(gòu)計算機 ② 消息傳遞 (messagepassing)系統(tǒng) 機群系統(tǒng) 本章內(nèi)容 幾種主流的并行編程接口 Pthreads OpenMP MPI 編程模型 線程 共享內(nèi)存 消息傳遞 面向系統(tǒng)結(jié)構(gòu) 共享內(nèi)存 共享內(nèi)存 分布式內(nèi)存或共享內(nèi)存 通信模型 共享內(nèi)存地址 共享內(nèi)存地址 消息傳遞或共享內(nèi)存地址 并行粒度 粗 或 細 細 粗 或細 同步 顯式 隱式 隱式 或 顯式 實現(xiàn)方式 程序庫 編譯器 程序庫 本章內(nèi)容 MPI并行環(huán)境簡介 點到點通信 組和通信子 集合通信 MPI與多線程 MPI并行環(huán)境簡介 MPI并行環(huán)境簡介 一、簡介 ? MPIMessage Passing Interface ? 面向消息傳遞型并行系統(tǒng)的編程接口 – 主要面向機群系統(tǒng) (cluster) ? MPI之前曾廣泛使用另一種編程接口 PVM – MPI于 1994年發(fā)布,目前為 v2版 – 經(jīng)過多年技術(shù)發(fā)展,已顯露出諸多不足之處,但在沒有更理想編程模型和語言的情況下, MPI仍是應(yīng)用最為廣泛的消息傳遞型編程接口標準 – 不同廠商和研究機構(gòu)推出了多個版本,主要有: ? MPICH √ – ? LAMMPI ? IBM MPL ? MPI支持 C/C++、 Fortran語言編程 MPI并行環(huán)境簡介 MPI的并行模式: SPMD(Single Program Multiple Data) 程 序. . .C P UM e m o r yC P UM e m o r yC P UM e m o r y互 連 網(wǎng) 絡(luò)數(shù) 據(jù)? 所有節(jié)點運行相同的程序 ? 不同的節(jié)點處理不同的數(shù)據(jù) ? 每個節(jié)點運行一個或多個 MPI進程 ,進程間通過發(fā)送 /接收消息進行通信和同步 注意:多個并行進程間無法共享變量 , 只能通過消息進行交互 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI進程的創(chuàng)建、啟動和管理通過進程管理器 (PMProcess Manager)完成 – 進程管理器就是 MPI環(huán)境與操作系統(tǒng)的接口 ? 常用的進程管理器 MPD – MPD是 MPI環(huán)境的守護進程 (daemon), MPI其他工具通過與MPD通信實現(xiàn)其功能 – MPD由 python實現(xiàn)的一組工具構(gòu)成 ? 意味著系統(tǒng)中需安裝 python解釋器 – 由 mpdboot 完成 MPD在多個主機上的啟動,以形成 MPI運行環(huán)境 ? 啟動之前需配置各節(jié)點間的無密碼登錄 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 MPD命令 命令 說明 mpd 啟動 MPD守護進程 mpdtrace 打印 MPI運行時環(huán)境內(nèi)所有 MPD守護進程的信息 mpdboot 啟動一組 MPD進程 mpdringtest 測試消息在環(huán)境環(huán)行一周的時間 mpdallexit 停止運行時環(huán)境的所有進程 mpdcleanup 運行時環(huán)境崩潰情況下,可用該命令清除本地的 Unix socket mpdlistjobs 列出作業(yè)的進程信息 mpdkilljob 停止某個作業(yè)的所有進程 mpdsigjob 對某個作業(yè)的所有進程發(fā)信號 mpiexec 啟動一個作業(yè) (早期 MPI版本使用 mpirun命令 ) MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI環(huán)境的安裝過程示例 ① 下載 MPI源代碼包并解壓縮 ② 配置 mpi ③ 編譯并安裝 ④ (確認 )安裝 python 用 vi修改 .bash_profile文件 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI環(huán)境的安裝過程示例 ⑤ 將 MPI路徑添加到環(huán)境變量 PATH ? 修改用戶配置文件 .bash_profile 修改后的 .bash_profile文件內(nèi)容 路徑信息已添加 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI環(huán)境的安裝過程示例 ⑥ 配置節(jié)點間 SSH無口令登錄 (注: SSH – Secure SHell) ? 創(chuàng)建公鑰 /私鑰對文件 創(chuàng)建后的文件 ? 將公鑰文件拷貝到其他節(jié)點的 .ssh目錄中的 authorized_keys文件 ? host1?host2的 SSH無口令登錄 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI環(huán)境的安裝過程示例 ⑦ 節(jié)點名添加到 mpd_hosts文件,構(gòu)成 ring ⑧ 啟動并測試 MPI環(huán)境 /etc/hosts文件中存儲主機名稱與 IP地址的映射表 ~/MPI節(jié)點列表 為保證節(jié)點間通信正常和性能,需關(guān)閉 Linux防火墻 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI程序編譯 – MPI提供編譯腳本: mpiCC/mpicc/mpif77/mpif90 ? mpiCCC++程序編譯及鏈接 ? mpiccC程序編譯及鏈接 ? mpif77和 mpif90Fortran77和 Fortran90程序編譯及鏈接 ? 關(guān)于編譯輸出可執(zhí)行文件的位置 – 要求各節(jié)點都可以訪問該文件 (注意各節(jié)點都將執(zhí)行該程序 ) ? 方法一:編譯后手工將文件拷貝到各節(jié)點 例: $scp cpi host2:/home/test ? 方法二:配置 NFS共享目錄,各節(jié)點啟動時將共享目錄 mount到本機文件系統(tǒng)中,編譯輸出的可執(zhí)行文件直接存入該目錄 MPI并行環(huán)境簡介 二、 MPI基本環(huán)境 ? MPI程序的運行 – 使用 mpiexec啟動 MPI應(yīng)用程序 ? MPI過去使用 mpirun 基本命令示例: mpiexec n num executable ? num表示進程個數(shù) (注意:是進程不是線程 ) ? executable為可執(zhí)行程序名,可以是 MPI程序,也可以不是 ? MPI程序的調(diào)試 – MPI提供了與 gdb和 totalview的集成接口 – mpiexec –gdb實現(xiàn)與 gdb的集成 ? 進程按順序指派在各節(jié)點上運行 ? 進程個數(shù)與節(jié)點個數(shù)沒有必然聯(lián)系 問題:怎樣能寫出獨立于進程個數(shù)和節(jié)點個數(shù)的程序 ? MPI并行環(huán)境簡介 三、 MPI的幾個基本概念 ? 緩沖區(qū): MPI定義了 3種緩沖區(qū) – 應(yīng)用緩沖區(qū):保存將要發(fā)送或接收的數(shù)據(jù)的地址空間 – 系統(tǒng)緩沖區(qū): MPI環(huán)境為通信所準備的存儲空間 – 用戶向系統(tǒng)注冊的緩沖區(qū):用戶使用某些 API時,在程序中顯式申請的存儲空間,然后注冊到 MPI環(huán)境中供通信所用 ? 節(jié)點間傳送消息時,可能需要消息在緩沖區(qū)之間拷貝 ? 為減少消息傳輸延遲 – 更高速的互連網(wǎng)絡(luò) – 更簡單的協(xié)議棧 – 避免消息多次拷貝 – 非阻塞式發(fā)送 – … MPI并行環(huán)境簡介 三、 MPI的幾個基本概念 ? 通信子 (municator) – 是 MPI環(huán)境管理進程及通信的基本設(shè)施 – 定義一個可以相互間通信的進程集合,進程間的消息傳遞需放在通信子中進行 – MPI支持通信子內(nèi) (Intramunicator)通信和通信子間 (Intermunicator)通信 – 不同空間中的消息互不干擾 – MPI啟動后,自動創(chuàng)建 2個組內(nèi)通信子 ? MPI_COMM_WORLD:啟動時的所有進程 ? MPI_COMM_SELF:僅包含進程自身 ? 進程號與進程組 – 進程號 (rank)需放在某個通信子范圍內(nèi)才有效 ? 在一個通信子中,進程號從 0開始編號,為一連續(xù)整數(shù)序列 – 通信中必須使用進程號標識消息的源和目的 – 定義一個通信子時,也就指定了一組共享該空間的進程組 (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 //命令行參量 )。 int MPI_Finalize()。 MPI_Comm_size():獲得指定通信子中的任務(wù)數(shù) MPI_Comm_rank():獲得某個進程在通信子中的序號 int MPI_Comm_size( MPI_COMM m, //指定的通信子 int *size //任務(wù)數(shù) )。 int MPI_Comm_rank( MPI_COMM m, //指定的通信子 int *rank //序號 )。 通信子基本操作 點到點通信 點到點通信 一 、 簡介 ? 消息由 發(fā)送進程 、 接收進程 、 tag唯一地標識 – tag是一個用戶自定義的非負整數(shù),用于區(qū)分同一對進程間的不同消息 ? 消息的傳遞涉及數(shù)據(jù)的拷貝和同步,為滿足不同需求, MPI提供多種點到點通信的變體 ? 消息的發(fā)送分為 阻塞 和 非阻塞 兩種方式 ? 消息發(fā)送函數(shù): MPI_??Send() – B:緩存模式 – R:就緒模式 – S:同步模式 ? I:立即發(fā)送,即非阻塞方式, I可與 B,R,S組合 點到點通信 一 、 簡介 ? 消息發(fā)送函數(shù): MPI_??Send() – B:緩存模式 – R:就緒模式
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1