日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《并行计算的编程模型》一1.4 数据类型

發布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《并行计算的编程模型》一1.4 数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.4 數據類型

MPI的特性之一是所有的通信函數都帶一個數據類型參數。數據類型用于描述發送和接收數據的類型,取代老式系統中僅用字節進行描述。例如,如果傳輸一組整數數據,MPI函數的數據類型在C語言中應該設置為MPI_INT或者在Fortran語言中設置為MPI_INTEGER。使用數據類型參數的目的是在異構環境中,例如在具有不同字節存儲順序或者不同基本數據類型長度的異構計算機系統上,保證通信順利進行。當數據類型被指定后,MPI能夠在內部轉換成相應的字節數。MPI支持C99和Fortran 2008中的所有數據類型。
使用數據類型參數的另一個目的是使用戶能夠描述內存中非連續存放的數據并通過一個單獨的MPI函數調用實現數據傳輸。MPI提供多種數據類型構造函數,可用來描述內存中非連續存放的數據。通過數據類型構造函數描述內存中非連續存放的數據并進行傳輸,若采用高質量的MPI實現方法,性能將優于先對數據進行打包和解包再傳輸的通信方式或者先將非連續數據轉成連續數據再傳輸的通信方式。
MPI的數據類型能夠描述內存中的各種數據。MPI中預定義的數據類型類似于編程語言中基本的數據類型,例如MPI_FLOAT(等同C語言中float)或者MPI_COMPLEX(等同Fortran語言中COMPLEX)。新的數據類型可由舊的數據類型通過不同的布局進行構造,如下例所示。

新的數據類型有count個數據塊,每個數據塊中有blocklength個連續的oldtype類型的數據,每個數據塊的長度為stride。通過新的數據類型,能夠方便和高效地描述間隔規則的非連續數據(一種高效的MPI實現方法可參考文獻[139])。
MPI還提供其他更通用的數據構造函數。MPI_Type_indexed比MPI_Type_vector的使用范圍更廣,可用來定義每個數據塊中有不同數量的oldtype類型和偏移量的數據。MPI_Type_create_struct的使用范圍最廣,還可定義每個數據塊中不同數據類型的數據。MPI提供定義數據子數組和分布式數組的函數,這些函數在并行文件I/O中應用廣泛。MPI提供的數據構造函數能夠遞歸調用并可描述任何數據類型。
圖1-3是采用C語言實現發送二維數組中一列數據的程序示例。因為C語言默認按行優先存儲數組,所以發送的該列數據并非連續數據。通過使用向量數據類型定義內存結構,使用一個MPI發送函數便可發送整列數據。在使用派生數據類型前,必須使用MPI_Type_commit函數進行聲明。MPI_Type_commit函數會對新構造的數據類型進行分析并在使用新數據類型進行消息通信前對非連續的數據進行通信優化。

總結

以上是生活随笔為你收集整理的《并行计算的编程模型》一1.4 数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。