Chinaunix首页 | 论坛 | 博客
  • 博客访问: 259346
  • 博文数量: 91
  • 博客积分: 4185
  • 博客等级: 上校
  • 技术积分: 855
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-29 16:18
文章分类

全部博文(91)

文章存档

2014年(3)

2013年(1)

2012年(8)

2011年(2)

2010年(5)

2009年(68)

2008年(4)

我的朋友

分类: LINUX

2009-09-17 16:42:51

今天开始开mpich2的源代码了。像以前所看到的那些大型软件的代码一样,到处都是宏。

但今天学习到一个新的知识点,原来C中的函数定义是可以被同名宏覆盖的。

代码中有一个关于获得一个时钟周期的秒数的函数MPID_Wtime_init,用gcc内联汇编的形式调用了rdtsc指令,这个指令可以获得开机以来的累记时钟周期。MPID_Wtime_init通过计算一个时间间隔(用usleep可以达到微秒级)内有多少个时钟周期,从而得到一个周期中有多少秒。

看代码的结构,我想我们在程序中调用的mpi库函数可能都是在src/mpi 目录下

MPI_Init函数在src/mpi/init/init.c中

如果要看的文件中的代码太多太乱(相对而言),那么把代码复制出来,删掉不相关的或是不重要的代码,真的是很有用的一招。

而用gcc -MM -MG -I 头文件路径  来找到依赖关系,也对读代码挺有用的。

今天的问题是,不知道从哪个地方看起,是先看mpd的实现,还是先看mpi库的实现呢,也不知道在mpi库的实现里有多少地方是与mpd有关的,如果mpd更底层是不是要看先看mpd呢?头大呀!
阅读(446) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~