MPI & OpenMP

 最近稍微了解了一些MPI和OpenMP的基础知识,在语法上,两者可以说都是比较简单的,都是一些标准的函数指令的设置,关键就是思想上的改变,这对于并行开发才是最重要的,能有丰富的并行经验才是真正的王道,这对我来说也是当务之急。总结一下几天的学习心得,多写一点MPI的东西吧,这个一般个人用机上一般不会用到,大多实在多台大型机器上的,而且我看的一些资料,似乎MPI的功能要强大很多,也复杂很多,相比较而言OpenMP则简单很多,也小巧很多,坦白说个人对MPI的东西更有兴趣,但是没有一个比较好的硬件条件,等有两台电脑联机的时候可以玩玩,所以,还是多学学OpenMP啦,即使简单,也只是说起来简单,真正要去用的话也有很多地方是不简单的,眼高手低,我想每个人都会有这种毛病吧。

MPI:
       首先我得说明一下对MPI的环境搭配完全要感谢万星星的那片帖子了,完全一五一十的配置,然后程序是照书上的写的,这里推荐一下并行计算导论这本书了,还是不错的,介绍算法的很多,当然并行的最直接受益者就是算法了,相对显示的并行,算法的并行要简单很多,而且效率、受益也是最好的,这本书对一些基本的并行语言和思想,算法进行分类讲解,虽然对没一点不是很深入,但是还是很有使用,毕竟技术的学习可以去网上查一大堆,核心技术和思想则需要自己的总结。
       对于MPI,首先就是去网上下载MPI的库啦,网址如下:http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads,去下载自己平台下面的库吧,然后就是安装了,然后在path路径下设置bin,在vc6的directory下面设置include和library下面设置,然后就是编写MPI的第一个小程序啦,呵呵,自然是hello world了:
#include "mpi.h"
#include <cstdio>

int main(int argc, char* argv[])
{
int npes,myrank;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD,&npes);
MPI_Comm_rank(MPI_COMM_WORLD,&myrank);
printf("Hello World! from process %d out of %d\n",myrank,npes);
MPI_Finalize();
return 0;
}

       这里同样发现了那个mpicxx.h的问题,自然按照说法,添加一个#define MPICH_SKIP_MPICXX,来躲避这个预编译啦,OK,程序可以运行啦,尽管我的CPU是双核的,但我理解还是认为我是单CPU,所以只能有一个hello world啦,呵呵,再次万分感谢万星星的文档,让我非常惬意的就实现了一个MPI的入门开发,可惜由于硬件和工作的需要,我还是要把精力放在OpenMP这种线程级别的学习上,这个MPI只能在闲得无聊的时候在进行学习了,感觉在MPI中关键的指令有下面几个:
MPI_Init、MPI_Finalize、MPI_Comm_size、MPI_Comm_rank、MPI_Send、MPI_Recv,个人感觉就这几个应该够用了,还是那句话,关键是思想了^_^

       对于OpenMP,个人发现还是太容易上手了,怎么感觉有点asp的味道了,呵呵,当然感觉功能也有点弱,说实话也只是了解皮毛,没有真正在开发中用到这个,所以还不好妄加评论,等日后有了一些学习在说啦。
       另外,今天的演示很成功,呵呵,顺利通过o(∩_∩)o

       最有成就的就是对字体轮廓的反走样处理啦,简单说就是对GDI下的BeginPath和EndPath的捕捉的任何笔画和形状通过直线LineTo和贝塞尔曲线实现绘制,发现效果还是很不错的,和普通的字体绘制textout几乎一摸一样,呵呵,但是要实现反走样,而线的反走样在Windows下GdiPlus采用,而这个++反而减减了这个非常强大的捕捉功能,所以只好将GDI下的笔画和类型一个一个的加入到Graphicspath中去啦,具体的就不多说了,不过个人感觉这个path还是挺不错的一个功能,虽然我不怎么会用,PolyDraw还是也就被我演绎成了一个gc.DrawPath了,呵呵,非常不错的反走样效果,比我想的要好的,还是很有成就感的,当然似乎发现了在GDI的path下是不是MoveTo指令有一个小bug 啊?当LineTo处理了?还是我用错了,不过我还是避开了。这里还是推荐那本图形编程了,对于每一个Windows显示的程序员,这,真的就是葵花宝典啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值