MPI二维笛卡尔坐标划分【1】
来源:互联网 发布:阿里妈妈淘宝客违规 编辑:程序博客网 时间:2024/04/29 21:03
本文简单演示,如何对现有进程进行二维划分,如何获得进程的X和Y坐标。
只有一段程序:
#include <mpi.h>#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ int rank,size; int rankX, rankY; int ndims = 2; int dims[2] = {2, 2}; int periods[2] = {0, 0}; int reorder = 0; int remainX[2] = {1, 0}; int remainY[2] = {0, 1}; MPI_Comm comm2d; MPI_Comm commX, commY; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Cart_create(MPI_COMM_WORLD, ndims, dims, periods, reorder, &comm2d); MPI_Cart_sub(comm2d, remainX, &commX); MPI_Cart_sub(comm2d, remainY, &commY); MPI_Comm_rank(commX, &rankX); MPI_Comm_rank(commY, &rankY); printf("rank = %d; X = %d; Y = %d\n", rank, rankX, rankY); MPI_Finalize(); return 0;}
将上面这段程序拷贝到test.c文件中。
Makefile内容如下
TARGET = test.exeall : test.c mpicc -g -O0 $^ -o $(TARGET)run : $(TARGET) mpiexec -n 4 ./$(TARGET)clean : rm *.exe -rf
实验结果:
mpiexec -n 4 ./test.exerank = 0; X = 0; Y = 0rank = 2; X = 1; Y = 0rank = 3; X = 1; Y = 1rank = 1; X = 0; Y = 1
0 0
- MPI二维笛卡尔坐标划分【1】
- GPS坐标转笛卡尔坐标
- 笛卡尔坐标系统
- cocos2dx笛卡尔坐标
- mpi comm 划分
- OpenCV笛卡尔坐标转极坐标cartToPolar()
- MPI的拓扑(虚拟拓扑和笛卡尔拓扑)
- OpenCV笛卡尔坐标到极坐标变换函数LogPolar
- opencv笛卡尔坐标转换为极坐标cvLogPolar的应用
- MPI 带状划分矩阵转置
- mpi 通信域划分不完整版
- hdoj 1507 Uncle Tom's Inherited Land* 【二分图 二维坐标划分奇偶集构图 求最大匹配】
- MPI[1]
- PV3D获得二维坐标
- 二维坐标排序
- 笛卡尔文集1
- 3D数学读书笔记——笛卡尔坐标系统
- 3D数学读书笔记——笛卡尔坐标系统
- 使用gSOAP开发实例(3) iconv解决中文乱码问题
- 开个博客的目的
- 使用gSOAP开发实例(4) iconv解决中文乱码问题(续)
- Section 1.1 Greedy Gift Givers
- 使用gSOAP开发实例(5) libxml2解析SOAP响应消息
- MPI二维笛卡尔坐标划分【1】
- 使用gSOAP开发实例(6) 在HP-UX下编译gSOAP-2.7.17
- sgu 177 Square 矩形切割
- 使用gSOAP开发实例(7) 基于HTTPS的基本认证(Basic Authentication)
- 黑马程序员-java-20—30岁计划
- 移动的小球
- 使用gSOAP开发实例(8) Phase 1 完结篇 自定义header实现用户名令牌认证(Usernametoken Authentication)
- Easy Starter Css Templates
- 总结一下通过系统架构师考试的经验