找回密码
 注册
查看: 4531|回复: 1

请教一个关于MPI并行IO的问题

[复制链接]
发表于 2006-12-18 14:37:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我的问题是这样的:
现在有一个文本文件,3G左右,这个文件共有nr个记录。每个记录分两段,第一段是注释段共9行,接下来是数据段nl行。现在需要读取的数据有:
1)注释段第3行提取一个数据,第三行格式是:"#time: TIME",提取的是整型变量TIME的值;
2)数据段每行格式: ID RX RY RZ IX IY IZ
比如我采用如下数据结构来保存数据:
typedef struct
{
       double rx, ry, rz;
       int ix, iy, iz;
}DUMPDATA;
DUMPDATA *data, *pdata;
data = (DUMPDATA*)malloc(nr*nl*sizeof(DUMPDATA));
那么第 ir 个记录中第 il 行中读到的数据( id, rx, ry , rz, ix, iy, iz ) 进行如下保存:
pdata = data + nl * ir + id;
pdata->rx = rx;
pdata->ry = ry;
pdata->rz = rz;
pdata->ix = ix;
pdata->iy = iy;
pdata->iz = iz;
(以上id值的范围为0到nl-1, 且不重复)
如果用串行读取或者并行程序中用一个cpu读,然后广播给每个cpu的话,读取的过程大概要七八分钟。如果能用8个cpu并行读取能在一两分钟内读完就好。
并行读取要求:每个cpu最后都有整个data的数据。
因为是文本数据,我也不太理解文件视口概念;如果用共享指针的话,不知道怎么判断读到的位置,第几个记录等相关问题。
发表于 2007-3-30 14:20:27 | 显示全部楼层

请教一个关于MPI并行IO的问题

帮顶一下~
对并行I/O不是很在行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表