煉數(shù)-gpu并行計(jì)算與cuda編程-第八課_第1頁
煉數(shù)-gpu并行計(jì)算與cuda編程-第八課_第2頁
煉數(shù)-gpu并行計(jì)算與cuda編程-第八課_第3頁
煉數(shù)-gpu并行計(jì)算與cuda編程-第八課_第4頁
煉數(shù)-gpu并行計(jì)算與cuda編程-第八課_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

GPU并行計(jì)算與CUDA編程第8課本周介紹內(nèi)容1.MPI簡(jiǎn)介2.MPI+CUDA3.UVA統(tǒng)一虛擬尋址4.使用MPI+CUDA實(shí)現(xiàn)Jacobi迭代1.MPI簡(jiǎn)介MPI(MessagePassingInterface)是一個(gè)消息傳遞接口標(biāo)準(zhǔn)MPI提供一個(gè)可移植、高效、靈活的消息傳遞接口庫MPI以語言獨(dú)立的形式存在,可運(yùn)行在不同的操作系統(tǒng)和硬件平臺(tái)上MPI提供與C/C++和Fortran語言的保定MPI的版本–MPICH:/mpi/mpich–LAM(LocalAreaputer):

–Open-MPI:–CHIMP:ftp://ftp.epcc.ed.ac.uk/pub/chimp/release/$mpicc-omyappmyapp.c$mpiexec-machinefile./machinefile./myapp6個(gè)基本函數(shù)組成的MPI子集#include"mpi.h"/*MPI頭函數(shù),提供了MPI函數(shù)和數(shù)據(jù)類型定義*/intmain(intargc,char**argv)

{

intrank,size,tag=1;intsenddata,recvdata;

MPI_Statusstatus;

MPI_Init(&argc,&argv);/*MPI的初始化函數(shù)*/m_rank(M_WORLD,&rank);/*該進(jìn)程編號(hào)*/m_size(M_WORLD,&size);/*總進(jìn)程數(shù)目*/if(rank==0){senddata=9999;MPI_Send(&senddata,1,MPI_INT,1,tag,M_WORLD);/*發(fā)送數(shù)據(jù)到進(jìn)程1*/}if(rank==1)MPI_Recv(&recvdata,1,MPI_INT,0,tag,M_WORLD,&status);/*從進(jìn)程0接收數(shù)據(jù)*/MPI_Finalize();/*MPI的結(jié)束函數(shù)*/return(0);

}6個(gè)基本函數(shù)組成的MPI子集MPI初始化:通過MPI_Init函數(shù)進(jìn)入MPI環(huán)

境并完成所有的初始化工作。

—intMPI_Init(int*argc,char***argv)MPI結(jié)束:通過MPI_Finalize函數(shù)從MPI環(huán)境中退出。

–intMPI_Finalize(void)獲取進(jìn)程的編號(hào):調(diào)用m_rank函數(shù)獲得當(dāng)前進(jìn)程在指定通信域中的編號(hào),將自身與其他程序區(qū)分。

–intm_rank(mcomm,int*rank)

6個(gè)基本函數(shù)組成的MPI子集獲取指定通信域的進(jìn)程數(shù):調(diào)用m_size函數(shù)獲取指定通信域的進(jìn)程個(gè)數(shù),確定自身完成任務(wù)比例。

–intm_size(mcomm,int*size)消息發(fā)送:MPI_Send函數(shù)用于發(fā)送一個(gè)消息到目標(biāo)進(jìn)程。

–intMPI_Send(void*buf,intcount,MPI_Datatypedataytpe,intdest,inttag,mcomm)消息接受:MPI_Recv函數(shù)用于從指定進(jìn)程接收一個(gè)消息

–intMPI_Recv(void*buf,intcount,MPI_Datatypedatatyepe,intsource,inttag,mcomm,MPI_Status*status)2.MPI+CUDA3.UVA統(tǒng)一虛擬尋址左圖:withoutUVA右圖:withUVA4.Jacobi迭代Jacobi迭代是一種比較常見的迭代方法。Jacobi迭代得到的新值是原來舊值點(diǎn)相鄰數(shù)值點(diǎn)的平均。Jacobi的局部性很好,可以取得很高的并行化,將參加迭代的數(shù)據(jù)按照塊分割,各塊之前除了相鄰的元素需要通訊外,各塊內(nèi)部可以獨(dú)立的并行化計(jì)算。串行表示的Jacobi迭代用MPI程序?qū)崿F(xiàn)Jacobi迭代TOP/BOTTOMUPDATELEFT/RIGHTUPDATECUDA_Normal_MPI.cCUDA_Aware_MPI.c本周作業(yè)使用MPI+CUDA實(shí)現(xiàn)矩陣向量乘(如圖為矩陣與向量相乘原理),參考方法:

主進(jìn)程將向量B廣播給所有從進(jìn)程,然后矩陣A的各行依次發(fā)送給從進(jìn)程,從進(jìn)程計(jì)算一行和B相乘的結(jié)果,然后將結(jié)果發(fā)送給主進(jìn)程。從進(jìn)程中,使用CUDA計(jì)算每個(gè)元素的相乘。法律聲明【聲明】本視頻和幻燈片為煉數(shù)成金網(wǎng)絡(luò)課程的教學(xué)資料,所有資料只能在課程內(nèi)使用,不得在課程以外范圍散播,違者將可能被追究法律和經(jīng)濟(jì)責(zé)任。課程詳情訪問煉數(shù)成金培訓(xùn)網(wǎng)站

煉數(shù)成金逆向收費(fèi)式網(wǎng)絡(luò)課程Dataguru(煉數(shù)成金)是專業(yè)數(shù)據(jù)分析網(wǎng)站,提供教育,媒體,內(nèi)容,社區(qū),出版,數(shù)據(jù)分析業(yè)務(wù)等服務(wù)。我們的課程采用新興的互聯(lián)網(wǎng)教育形式,獨(dú)創(chuàng)地發(fā)展了逆向收費(fèi)式網(wǎng)絡(luò)培訓(xùn)課程模式。既繼承傳統(tǒng)教育重學(xué)習(xí)氛圍,重競(jìng)爭(zhēng)壓力的特點(diǎn),同時(shí)又發(fā)揮互聯(lián)網(wǎng)的威力打破時(shí)空限制,把天南地北志同道合的朋友組織在一起交流學(xué)習(xí),使到原先孤立的學(xué)習(xí)個(gè)體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論