发明名称 一种MPI并行数据存储优化方法
摘要 本发明涉及一种MPI并行数据存储优化方法,包括以下步骤:1、对欲进行写操作的目标文件涉及的MPI函数调用,即文件打开、写文件和文件关闭,进行同参异名式封装;2、在步骤一封装的写文件函数中,根据当前文件系统数据块fsBlkSize,当前操作数据的偏移量offset和要写的字节数count,得到offset到下一个fsBlkSize整数倍偏移量的距离X,以及offset+count形成的末尾偏移量到上一个fsBlkSize整数倍偏移量的距离Y;封装的写文件函数根据所得到的X、Y值,采用不同的处理方式;3、在应用程序中,将所有欲进行写操作的目标文件涉及的MPI函数调用都采用步骤一中封装后的函数进行替换。本发明无需对文件系统做任何修改,仅通过在应用层的少许修改,就能以可以接受的效率保证写操作结果的正确性。
申请公布号 CN101957840A 申请公布日期 2011.01.26
申请号 CN201010281839.9 申请日期 2010.09.14
申请人 北京同有飞骥科技有限公司 发明人 张伟涛;王道邦;韩双牛;李焰;肖建国;方仑;周泽湘;谭毓安
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 代理人
主权项 一种MPI并行数据存储优化方法,包括以下步骤:步骤一 对欲进行写操作的目标文件涉及的MPI函数调用,即文件打开MPI_File_open、写文件MPI_File_write_at和文件关闭MPI_File_close,进行同参异名式封装;步骤二 在步骤一封装的写文件函数中,假设读取到的当前文件系统数据块大小是fsBlkSize,根据当前操作数据的偏移量offset和要写的字节数count,由offset与fsBlkSize的数量关系,得到offset到下一个fsBlkSize整数倍偏移量的距离X,由offset+count与fsBlkSize的数量关系,得到offset+count形成的末尾偏移量到上一个fsBlkSize整数倍偏移量的距离Y;其中fsBlkSize、X、Y的单位均为byte;封装的写文件函数根据所得到的X、Y值,采用不同的处理方式:(1)如果当前进程操作数据的首尾偏移量都在文件系统数据块大小的整数倍位置上,即X、Y都为零,仍调用原MPI_File_write_at函数进行并行写操作;(2)如果当前进程的offset值不在文件系统数据块大小的整数倍位置上,即X值不为零,需要将此处长度为X的数据信息,暂时拷贝到一段区域中暂存,待该进程对目标文件执行关闭操作前,再将这部分暂存的内容利用文件锁机制,串行写入到文件的实际位置;(3)如果当前进程的offset+count值不在文件系统数据块大小的整数倍位置上,即Y值不为零,需要将此处长度为Y的数据信息,暂时拷贝到一段区域中暂存,待该进程对目标文件执行关闭操作前,再将这部分暂存的内容利用文件锁机制,串行写入到文件的实际位置;(4)无论X、Y取值为何种情况,只要中间剩余的长度为fsBlkSize整数倍的数据段的长度不为零,即至少是fsBlkSize,都需要对其进行处理,处理方式是:仍调用原MPI_File_write_at函数进行并行写操作;步骤三 在应用程序中,将所有欲进行写操作的目标文件涉及的MPI函数调用,即MPI_File_open、MPI_File_write_at和MPI_File_close,都采用步骤一中封装后的函数进行替换;替换后,对要进行写操作的目标文件,均调用封装后的函数进行操作。
地址 100081 北京市海淀区中关村南大街36号湖北大厦18层