MPI_Cart_shift函数详解
来源:互联网 发布:fc2视频域名更改 编辑:程序博客网 时间:2024/06/06 01:37
int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source,int *rank_dest)
在具有笛卡尔拓扑结构的通信器中,给定一个数据平移的维度和步长,返回数据平移的源进程号和目的进程号。
参数:
comm:具有笛卡尔拓扑结构的通信器
direction:数据平移的维度号
disp:数据平移的方向和步长,大于0表示正方向,小于0表示负方向
rank_source:源进程号
rank_dest:目的进程号
例子
给定6个进程,创建一个二维的3*2的笛卡尔拓扑结构通信器,行维是周期环面结构,列维是非周期环面结构。进程排列示意图如下:
括号中的数字表示进程号,-1表示没有相应的进程,0,0这样的坐标表示进程在二维笛卡尔拓扑中的坐标号。
由于行维是周期环面的,列维是非周期环面的,所以0号进程的上方和4号进程相邻,而左方没有进程相邻。
给定如下程序:
#include <iostream>#include "mpi.h"using namespace std;int main(int argc, char *argv[]){ MPI_Init(&argc, &argv); int numProcessors, rank, my2drank, mycoords[2]; MPI_Comm_size(MPI_COMM_WORLD, &numProcessors); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if(rank==0){ cout<<"rank\trow\tcol\tsource1\tdest1\tsource2\tdest2\tsource3\tdest3\tsource4\tdest4"<<endl; } int dims[2]={3,2}; int periods[2]={1,0}; MPI_Comm comm_2d; MPI_Cart_create(MPI_COMM_WORLD,2,dims,periods,1,&comm_2d); MPI_Comm_rank(comm_2d, &my2drank); MPI_Cart_coords(comm_2d, my2drank, 2, mycoords); int source1, dest1, source2, dest2, source3, dest3, source4, dest4; int direct=0, displ=1; MPI_Cart_shift(comm_2d, direct, displ, &source1, &dest1); direct=0; displ=-2; MPI_Cart_shift(comm_2d, direct, displ, &source2, &dest2); direct=1; displ=1; MPI_Cart_shift(comm_2d, direct, displ, &source3, &dest3); direct=1; displ=-1; MPI_Cart_shift(comm_2d, direct, displ, &source4, &dest4); cout<<my2drank<<"\t"<<mycoords[0]<<"\t"<<mycoords[1]<<"\t"<<source1<<"\t"<<dest1<<"\t"<<source2<<"\t"<<dest2<<"\t"<<source3<<"\t"<<dest3<<"\t"<<source4<<"\t"<<dest4<<endl; MPI_Finalize(); return 0;}
程序输出为:
参考
http://www.mpich.org/static/docs/latest/www3/MPI_Cart_shift.html
http://scv.bu.edu/~kadin/Tutorials/Alliance/MPI/virtual_topology/cart_shift_example.html
0 0
- MPI_Cart_shift函数详解
- 函数详解
- API函数详解:CreateSemaphore函数
- sql函数 group_concat函数详解
- 仿函数 ( 函数对象 ) 详解
- send函数&recv函数详解
- scan函数函数用法详解
- 【函数】register_shutdown_function函数详解【原创】
- ASP函数详解
- DateDiff 函数详解
- ASP函数详解
- ASP函数详解
- ASP的函数详解
- Window.open函数详解
- ASP函数详解
- XML系列函数详解
- ASP函数详解
- 数据库函数详解
- android圆角矩形背景
- hdu 1003 Max Sum (贪心)
- [math][第二阶段-easy math][HDU-1108]最小公倍数
- 1024.Palindromic Number
- 黑马程序员——Java基础学习笔记(三)
- MPI_Cart_shift函数详解
- android 数据库操作
- eclipse 代码及xml调整字体大小设置
- IOS常用方法
- poj 2965
- 在Ubuntu 12.04安装和设置SSH服务
- java核心技术 之基础知识(一)
- 关于Xampp一键环境包解决双机热备环境配置问题
- jquery关于修改css的属性值