MPI遠端儲存訪問,實現的簡化版引數伺服器

2021-07-10 22:06:30 字數 908 閱讀 2871

按照 所述,在分布式機器學習中個使用引數伺服器並行訓練模型。即把模型引數儲存在特定伺服器上,其它訓練模型的節點從伺服器上獲取模型引數,在訓練節點上訓練一些樣本後,再把模型引數推動到引數伺服器,達到並行訓練目的。

藍色節點為儲存引數的伺服器,即server,紅色節點為計算節點即worker

mpi_win_create:建立視窗,供其他程序訪問相等於server中的一塊快取

mpi_win_lock,mpi_win_unlock對被訪問的視窗進行加鎖和解鎖

mpi_put:將worker資料推送到server上

mpi_get:從server上拉資料

mpi_accumulate:將worker和server上的資料相加

詳細的api見:

#include "mpi.h"

#include "stdio.h"

#define size1 10

#define size2 22

int main(int argc, char *argv)

i = mpi_alloc_mem(size2 * sizeof(int), mpi_info_null, &b);

if (i)

mpi_comm_group(mpi_comm_world, &comm_group);

if(rank == 0)

{ /* rank = 0 */

for (i=0; i用mpi原生的api做起來比較麻煩,可以借助mpi,在程序之間用socket通訊,線伺服器推送資料,從伺服器取資料,在伺服器操作會更方便

Linux ls 命令實現(簡化版)

在學習linux系統程式設計的時候,實現了ls命令的簡化版本。實現的功能如下 1.每種檔案型別有自己的顏色 普通檔案,d 目錄檔案,l 鏈結檔案,c 字元裝置檔案,b 快裝置檔案,p 管道檔案,s socket檔案。共7種 2.支援的引數有 hali a 顯示隱藏檔案,i 顯示inode節點號,l ...

簡化版的sqlserver分頁

create procedure dbo pagination tblname varchar 8000 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 頁尺寸 pageindex int,頁碼 ...

簡化版的SpringMVC框架的實現思路

最近整理了一下幾年前的工作,把專案的底層 剝出來.這是乙個類似於springmvc的底層框架,資料端使用的是dbutils,適合小型的定製系統.其中核心部分是dispatcher,註冊在web filter上,通過filter init初始化以下四部分 全域性物件池,請求對映表,視 析方式表,還有 ...