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. 没有学历如何从事Java开发?

    学历成了当今社会一个衡量一个人能力的标准,未来只会越来越深入,也有的人说不要总是把学历挂嘴边,学历并不能代表能力,确实学历不能代表能力,但是学历是能代表一个的人学习深度,也是在职场上必备的一个敲门砖. ...

  2. PHP date_sub() 函数

    ------------恢复内容开始------------ 实例 从 2013 年 3 月 15 日减去 40 天: <?php$date=date_create("2013-03- ...

  3. PHP mysqli_thread_safe() 函数

    定义和用法 mysqli_thread_safe() 函数返回是否将客户端库编译成 thread-safe. 语法 mysqli_thread_safe();高佣联盟 www.cgewang.com ...

  4. loj #6039 「雅礼集训 2017 Day5」珠宝 分组背包 决策单调性优化

    LINK:珠宝 去年在某个oj上写过这道题 当时懵懂无知wa的不省人事 终于发现这个东西原来是有决策单调性的. 可以发现是一个01背包 但是过不了 冷静分析 01背包的复杂度有下界 如果过不了说明必然 ...

  5. Scala---初探

    scala语言量大特性:面向对象+函数式编程 Scala的类型 val指的是引用不可变,而不是值. 值类型 Byte Char Short Int Long Float Double 引用类型 Str ...

  6. 44-final, finally, finalize的区别

    final—修饰符(关键字) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承. 因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为 ...

  7. 文档写作利器:Markdown

    大佬的文章,写的很好,里面推荐的Markdown编辑工具很不错,值的推荐. 文档写作利器:Markdown_网络_xcbeyond|疯狂源自梦想,技术成就辉煌-CSDN博客https://blog.c ...

  8. 一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. 很多人学习python,不知道从何学起.很多人学习python,掌握了 ...

  9. CNN 小结

    CNN 小结 目录 CNN特征提取过程(卷积核描述的是特征信息, 此特征可能就是原图像中的某些像素, 但是卷积核并不找相似的地方在原始图像的哪里, 所以需要将卷积核不断地滑动, 得到的feature ...

  10. Java环境变量,jdk和jre的区别,面向对象语言编程

    什么是java? java是一门面向对象的编程语言,包括java SE, java ME, Java EE . 广泛使用的是作为后端语言的Java EE开发, 面向对象和面向过程? java,C++ ...