MPI示例
  • MPI时间函数测试
#include<stdio.h>
#include<mpi.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
int main(int argc, char** argv)
{
int err = 0;
double t1, t2;
double tick;
MPI_Init(&argc, &argv);
t1 = MPI_Wtime();
t2 = MPI_Wtime();
if (t2 - t1 > 0.1 || t2 - t1 < 0.0)
{
/* 若连续的两次时间调用得到的时间间隔过大 这里是超过0.1秒 或者后调用的函数
得到的时间比先调用的时间小 则时间调用有错*/
printf("Two success calls to MPI_Wtime gave strange results:(%f)(%f)\n", t1, t2);
}
for (int i = 0; i < 10; i++)
{
t1 = MPI_Wtime();
Sleep(1);
t2 = MPI_Wtime();
if (t2 - t1 >= (1.0 - 0.01) && t2 - t1 <= 5.0)
{
printf("计数准确\n");
break;
}
if (t2 - t1 > 5.0)
{
printf("计数错误\n");
tick = MPI_Wtick();
if (tick > 1.0 || tick < 0.0)
{
printf("MPI_Wtick gave a strange result:%f\n", tick);
}
break;
}
MPI_Finalize();
return 0;
}
  • MPI获取进程名称和MPI版本号
#include<stdio.h>
#include<mpi.h>
#include<stdlib.h>
#include<time.h>
int main(int argc, char** argv)
{
int rank, size, len,version,sub_version;
char name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Get_processor_name(name, &len);
MPI_Get_version(&version, &sub_version);
printf("Hello, world, I am % d of % d on % s in MPI_Version %d.%d\n", rank, size, name,version,sub_version);
MPI_Finalize();
return 0;
}
  • MPI通信接力
#include<stdio.h>
#include<mpi.h>
#include<stdlib.h>
#include<time.h>
int main(int argc, char** argv)
{
int rank, size, value = 10;
MPI_Status status;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
do
{
if (rank == 0)
{
// printf("Please give new value = ");
// scanf_s("%d", &value);
// printf("%d read <----- %d\n", rank, value);
if (size > 1)
{
MPI_Send(&value, 1, MPI_INT, rank + 1, 0, MPI_COMM_WORLD);
printf("%d send %d -----> %d",rank,value,rank + 1);
}
}
else
{
MPI_Recv(&value, 1, MPI_INT, rank - 1, 0, MPI_COMM_WORLD, &status);
printf("%d receive %d <----- %d\n", rank, value, rank - 1);
if (rank < size - 1)
{
MPI_Send(&value, 1, MPI_INT, rank + 1, 0, MPI_COMM_WORLD);
}
}
MPI_Barrier(MPI_COMM_WORLD);
} while (value >= 0);
MPI_Finalize();
return 0;
}

MPI小例子的更多相关文章

  1. springmvc入门的第一个小例子

    今天我们探讨一下springmvc,由于是初学,所以简单的了解一下 springmvc的流程,后续会持续更新... 由一个小例子来简单的了解一下 springmvc springmvc是spring框 ...

  2. java即时通信小例子

    学习java一段时间了,今天写来一个即时通信的小例子练手在其过程中也学到了一些知识拿出来和大家分享,请路过的各位大神多多赐教... 好了下面讲一下基本的思路: 首先,编写服务器端的程序,简单点说吧就是 ...

  3. Runtime的几个小例子(含Demo)

    一.什么是runtime(也就是所谓的“运行时”,因为是在运行时实现的.)           1.runtime是一套底层的c语言API(包括很多强大实用的c语言类型,c语言函数);  [runti ...

  4. bootstrap 模态 modal 小例子

    bootstrap 模态 modal  小例子 <html> <head> <meta charset="utf-8" /> <title ...

  5. INI配置文件分析小例子

    随手写个解析INI配置字符串的小例子 带测试 #include <iostream> #include <map> #include <string> #inclu ...

  6. JavaScript小例子:复选框全选

    JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...

  7. 【zTree】 zTree使用的 小例子

    使用zTree树不是第一次了  但是 还是翻阅着之前做的 对照着 使用起来比较方便  这里就把小例子列出来   总结一下使用步骤 这样方便下次使用起来方便一点 使用zTree树的步骤: 1.首先  在 ...

  8. js小例子(标签页)

    运用js写的一个小例子,实现点击不同的标签出现不同的内容: <!DOCTYPE html> <html> <head> <meta chaset=" ...

  9. sbrk与brk的使用小例子

    sbrk() 和 brk() - Unix的系统函数   sbrk()和brk() 系统的底层会维护一个位置,通过位置的移动完成内存的分配和回收.映射内存时 以一个内存页作为基本单位.   void* ...

随机推荐

  1. 在html页面中引入另一个html页面

    我们在使用html编写一个网站的时候,通常情况下头部和尾部是相同的,如果一个网站的每个页面都把这些代码写一遍,不仅浪费时间,还显得重复代码很多,所以此时把重复的页面单独摘出来,在用到的时候从外部直接引 ...

  2. Django学习路29_css样式渲染 h3 标签

    在 static 静态文件夹下创建 css 文件夹 home.css 此时 home.css 路径是 'static/css/home.css' 在 对应的 home.html 文件中添加 css 样 ...

  3. Python os.close() 方法

    概述 os.close() 方法用于关闭指定的文件描述符 fd.高佣联盟 www.cgewang.com 语法 close()方法语法格式如下: os.close(fd); 参数 fd -- 文件描述 ...

  4. luogu P6088 [JSOI2015]字符串树 可持久化trie 线段树合并 树链剖分 trie树

    LINK:字符串树 先说比较简单的正解.由于我没有从最简单的考虑答案的角度思考 所以... 下次还需要把所有角度都考察到. 求x~y的答案 考虑 求x~根+y~根-2*lca~根的答案. 那么问题变成 ...

  5. 云计算&存储测试:FIO工具入门与实战

    一.关于FIO 1.1 简介 FIO是一个开源的I/O压力测试工具,主要是用来测试磁盘的IO性能,也可测试cpu,nic的IO性能.它可以支持13种不同的I/O引擎,包括:sync,mmap, lib ...

  6. 5、Java 修饰符

    引言:Java的修饰符根据修饰的对象不同,分为类修饰符.方法修饰符.变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符. 1.访问控制修饰符的总结 四个关键字:public.protec ...

  7. AI顶会

    自己如何学习CV paper with code(每周) 基石方向 1.image classification 这个肯定要关注,这个往往都是backbone https://paperswithco ...

  8. Zookeeper学习(一)

    一.Zookeeper理解与选举机制 ①Zookeeper理解 概念:Zookeeper 是一个开源的分布式协调服务框架 ,主要用来解决分布式集群中应用系统的一致性问题和数据管理问题 特点:Zooke ...

  9. HTML学习第三天

    超链接: <a href=""></a>             target链接打开方式 1._blank新窗口打开 2._self当前窗口打开     ...

  10. C#LeetCode刷题之#13-罗马数字转整数(Roman to Integer)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3842 访问. 罗马数字包含以下七种字符: I, V, X, L, ...