MPI筆記(一)環境

2021-09-18 09:08:00 字數 2740 閱讀 6396

mpi筆記(一)環境

mpi筆記(二)點對點通訊

mpi筆記(三)集合通訊

mpi筆記(四)資料型別和派生資料型別

mpi筆記(五)組和通訊因子

mpi筆記(六)虛擬拓撲

mpi筆記(七)計算圓周率

我用的msmpi。msmpi提供了完整的使用說明:how to compile and run a ****** ms-mpi program。

2. 配置vs開發環境(以下是64位程式)

新增 include 目錄:$(msmpi_inc);$(msmpi_inc)\x64;

新增依賴庫目錄:$(msmpi_lib64);

新增依賴庫:msmpi.lib;

msmpisdk安裝時已將各個路徑寫入了環境變數。

1. mpi 環境

標頭檔案: mpi.h

呼叫格式: rc = mpi_***(parameter,...)

如果呼叫成功,rc 返回 mpi_success

程式結構:

// 包含標頭檔案

#include "mpi.h"

// 初始化環境

mpi_init(...)

// 訊息交換並處理

mpi_***(...)

// 退出mpi環境

mpi_finalize()

通訊因子和組:

mpi_comm_world 所有程序都在mpi_comm_world通訊因子組

mpi通過指定通訊因子和組來完成各個程序間的通訊

秩: 程序所在通訊組中的唯一識別符號

int mpi_get_my_id() 獲取程序id號

int mpi_get_log_id() 獲取當前程序所處的邏輯pe號

void mpi_get_longtimed(double *dt) 獲取系統長時鐘(以ms為單位)

char *mpi_init_node_shared_mem(int argc,char **ar**, long startaddr,unsigned long memlen) 初始化節點的共享空間

char *mpi_get_node_shared_mem() 獲取節點共享空間

char *mpi_init_pe_shared_mem(int argc,char **ar**, long startaddr,unsigned long memlen) 初始化分步共享空間

char *mpi_get_pe_shared_mem() 獲取分步共享空間

*/#include

"mpi.h"

#include

#include

#include

using

namespace std;

intmain_1

(int argc,

char

*ar**)

;int process_name_len =0;

mpi_get_processor_name

(process_name,

&process_name_len)

;double wtime =

mpi_wtime()

;// 獲取執行時間

double wtick =

mpi_wtick()

;// 獲取時間單位(s),如果是毫秒則為0.001

cout <<

"current process name: "

<< process_name <<

"; process rank: "

<< rank <<

"/"<< size <<

"; exec time: "

<< wtick * wtime <<

" s"

<< endl;

mpi_finalize()

;// 結束mpi執行環境

return0;

}控制台進入c:\program files\microsoft mpi\bin資料夾(根據msmpisetup.exe安裝目錄),使用mpiexec執行程式:

引數:-n 4 ,開啟4個執行緒

c:\program files\microsoft mpi\bin>mpiexec.exe -n 4 d:\mpi\code\msmpi\x64\debug\msmpi_test.exe

current process name: desktop-f4u0006; process rank: 0/4;

exec time: 0.0272527 s

current process name: desktop-f4u0006; process rank: 2/4;

exec time: 0.0272527 s

current process name: desktop-f4u0006; process rank: 3/4;

exec time: 0.0272527 s

current process name: desktop-f4u0006; process rank: 1/4;

exec time: 0.0272527 s

一 環境配置

2.公升級後發現原.net framework 專案打不開了 錯誤資訊 不支援此版本的 visual studio 無法開啟下列專案。專案型別無法安裝或此版本的 visual studio 無法支援它們。有關啟用這些專案型別或遷移您的資產的詳細資訊,請參閱在單擊 確定 後顯示的 遷移報告 中的詳細資...

一 環境安裝

1 安裝pip pip是管理安裝包的軟體,因為我環境中已經安裝了pycharm了,pip已經安裝完了。2 安裝virtualenv virtualenv可以方便的解決不同專案中對類庫的依賴問題。這通常是通過以下方式實現的 首先將常用的類庫安裝在系統環境中 然後為每個專案安裝獨立的類庫環境。這樣子可以...

Redis筆記(一) 環境配置

redis是什麼?如果你還不知道,可以google or baidu一下。redis是乙個開源的 使用c語言編寫的 基於記憶體的 先進的key value儲存系統,是用於構建高效能,可擴充套件的web應用程式的完美解決方案。這個定義實在太拗口了 從github上我們可以看到,redis的作者是乙個叫...