http://blog.sina.com.cn/chenhongbo[订阅]
字体大小: 正文
我的第一个MPI程序(2006-12-19 01:18:20)
   刚才完成了我的第一个MPI程序,还是蛮有成就感的,不过多亏逸飞和小屁孩儿两位同学的鼎力帮忙,在这里像他们说谢谢啦,虽然他们听不到,HOHO!~另外还要更加感谢偶的涓涓,你的理解和支持也给了我很大动力,弄了一天都没有头绪的程序,居然在11点打完电话回到宿舍后的1个多小时就搞定了,看来那句“Where there is great love ,there are always miracles.”还真不是吹的。(突然想起《不见不散》里面葛优说的那句“我看见了!……是爱情的力量!!!”,不禁笑了起来)

    说起“感谢”这个词,之前本来想在感恩节的时候在博客上总结一下一路走来都有哪些要感谢的人,后来想想实在太多,加之那段时间也不知道在胡乱忙些什么,一恍thanks giving day就过去了。今天又有新的网络作业下来了,加上之前的那些作业以及复习任务,估计又有得忙了,看来本来该推迟的感谢总结估计要等到明年了。(突然耳边响起“明年复明年,明年何其多”,哈哈)好在今天晚上丁老师讲的那个超有技术含量的题对完成作业非常的有价值,所以估计接下来的网络作业的工期会大大缩短的。

    不早了,去呼呼啦!~

    PS:凌晨1点,很想念你,担心你会蹬被子。希望你的感冒快点好起来,心情也是~

    另附我的第一个MPI程序源码如下:

#include "mpi.h"
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#define MAXSIZE 1000

void main(int argc, char **argv)
{
 int myid, numprocs;
 int data[MAXSIZE], i, x, low, high, myresult, result;
 char fn[255]={0};
 FILE *fp;

 MPI_Init(&argc, &argv);
 MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
 MPI_Comm_rank(MPI_COMM_WORLD, &myid);

 if (myid == 0)
 {
  if ((fp = fopen("rand_data.txt","r")) == NULL)
  {
   printf("Can't open the input file: %s\n\n", fn);
   exit(1);
  }
  for(i = 0; i < MAXSIZE; i++)
  
   fscanf(fp, "%d\t", &data[i]);
   printf(" %d",data[i]);
  }
 }

 MPI_Bcast(data, MAXSIZE, MPI_INT, 0, MPI_COMM_WORLD);

 x = MAXSIZE/numprocs;
 low = myid * x;
 high = low + x;
 myresult = 0;
 for(i = low; i < high; i++)
  myresult += data[i];
 printf("I got %d from %d\n", myresult, myid);

 MPI_Reduce(&myresult, &result, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
 if (myid == 0)
  printf("The sum is %d.\n", result);

 MPI_Finalize();
}

  • 评论加载中,请稍候...
发评论    明星私家相册

验证码:看不清楚数字吗?点击这里再试试。收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...