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的作者是乙個叫...