西南科技大學科學計算導論實驗報告1_第1頁
西南科技大學科學計算導論實驗報告1_第2頁
西南科技大學科學計算導論實驗報告1_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

科學計算導論科學計算導論實驗報告學號姓名班級實驗名稱并行計算MPI報告時間2020.11.28成績一、實驗過程1.1實驗基本內容與要求介紹并行計算消息接口MPI的定義,應用背景與基本概念。在windows系統上安裝MPI。運行基于MPI的兩個程序。1.2實驗過程MPI安裝及環(huán)境配置:官網下載mpich2-1.4.1p1-win-x86-64.msi,運行。按教程操作即可。在環(huán)境變量里配置path,指向安裝目錄下的bin文件。打開bin目錄下的wmpiregister.exe”文件,如圖,輸入電腦用戶名及密碼。以管理員身份運行cmd,輸入命令“smpd-install-phrase…”,運行后“MPICH2ProcessManager,ArgonneNationalLabinstalled.” 即成功。打開屬性頁面,點擊C/C++中的附加包含目錄綁定到安裝目錄下的include文件。打開鏈接器的附加庫目錄,綁定安裝目錄下的lib文件。然后展開“鏈接器”,點擊“輸入”,在右側第一項“附加依賴項”,前面加上mpi.lib;完成。程序運行:運行程序,生成exe文件。然后在wmpiexec.exe中運行。二、實驗結果在cmd終端窗口使用命令mpiexec-n啟動線程‘Helloword’程序:計時函數的使用:三、實驗分析MPI是一個跨語言的通訊協議,用于編寫并行計算機。支持點對點和廣播。MPI是一個信息傳遞應用程序接口,包括協議和和語義說明,它們指明其如何在各種實現中發(fā)揮其特性。1.Mpi主要應用場景:應用也主要是高性能計算,超級計算機領域。使用高性能計算和超級計算機的領域常見的有氣象,金融,生物,科研等等.2.Mpi優(yōu)點:無論硬件是否共享內存空間,都可以使用。(但是線程間不共享內存空間)

每個線程有自己的內存和變量,這樣不用擔心沖突問題.3.普通C/C++程序與MPI程序的區(qū)別: MPI程序是基于消息傳遞的并行程序。(消息傳遞指的是并行運行的各個進程具有自己獨立的堆棧和代碼段,作為互不相關的多個程序獨立運行,進程之間的信息交互全然通過顯示地調用通信函數來完畢。) 普通C/C++程序:C語言是面向過程,C++是面向對象,二者都是串行單獨運行附錄:(實現代碼粘貼于此處,含不少于總代碼量1/2的注釋內容)開發(fā)語言/版本C++編譯環(huán)境/編譯器Vs2015運行環(huán)境(操作系統,版本,32/64位)Windows10,MPICH2,64位‘Helloword’程序:#include<stdio.h>#include<mpi.h>intmain(intargc,char*argv[]){intmyrank,nprocsMPI_Init(&argc,&argv);;//初始化MPI環(huán)境MPI_Comm_size(MPI_COMM_WORLD,&nprocs);//獲取當前進程在通MPI_COMM_WORLD中的進程號MPI_Comm_rank(MPI_COMM_WORLD,&myrank);printf("Hellow,world!%dthoftotalTaskNum=%d\n",myrank,nprocs);MPI_Finalize();return0;}計時函數的使用:#include"mpi.h"#include<stdio.h>#include<windows.h>intmain(void){intmyrank,nprocs,name_len,flag;doublestart_time,end_time;charhost_name[20];MPI_Initialized(&flag);//判斷MPI_Init是否已執(zhí)行fprintf(stderr,"flag:%d/n",flag);MPI_Init(0,0);//初始化mpi執(zhí)行環(huán)境MPI_Comm_rank(MPI_COMM_WORLD,&myrank);//標識進程組,返回調用進程的標識號MPI_Comm_size(MPI_COMM_WORLD,&nprocs);//標識進程當中有多少個進程組MPI_Get_processor_name(host_name,&name_len);//返回進程所在的處理器名稱if(myrank==0){fprintf(stderr,"PrecisionofMPI_WTIME():%f.\n",MPI_Wtick());//MPI_Wtick則返回MPI_Wtime結果的精度fprintf(stderr,"HostName:%s\n",host_name);}start_time=MPI_Wtime();Sleep(myrank*3);end_time=MPI_Wtime();//MPI_Wtime返回一個雙精度數消耗時間秒數fp

溫馨提示

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

評論

0/150

提交評論