System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及高性能计算,具体为一种基于mpi并行模型的分布式文件系统拷贝工具。
技术介绍
1、云计算技术的发展加速了数据中心的建设,而诸多数据中心常支持posix语义、daos、lustre、gpfs、hdfs、nfs等分布式文件系统,存储于其上的文件存在容量大(达到tb甚至pb级别)、数量巨多的特点;然而在文件系统迁移治理领域经常需从一个机器快速拷贝到另一个机器上是十分棘手且非常昂贵的技术问题。
2、数据中心文件成功拷贝的时间成本包含本机与目标机对文件(或文件夹)的计算时间、本机与目标机器的通讯时间、本机磁盘与目标机磁盘的i/o时间。若采用单进程scp命令互传文件(或文件夹)因文件容量大、网络带宽限制、单进程线程等技术限制使得该任务严重耗时、代价极高。
3、因此,本申请设计的基于并行文件系统公共静态链接库libmfu.a以及消息传递(message passing interface,mpi)的并行编程模型实现的高性能计算集群之间并行文件系统的大文件(或文件夹)快速拷贝传输的系统工具dcp就具有重要意义。
技术实现思路
1、(一)解决的技术问题
2、针对现有技术的不足,本专利技术提供了一种基于mpi并行模型的分布式文件系统拷贝工具,解决了在文件系统迁移治理领域经常需从一个机器快速拷贝到另一个机器上是十分棘手且非常昂贵的技术问题。
3、(二)技术方案
4、为实现以上目的,本专利技术通过以下技术方案予以实现:一种基于mpi
5、步骤一:组建mpi集群运行环境;
6、步骤二:将树形结构源目录经过数据转换为分布式文件链表结构flist所示;
7、步骤三:将flist中的各个路径采用mpi进程组中的进程逐个执行目录拷贝操作。
8、优选的,所述组建mpi集群运行环境:
9、采用n台网络连通的物理机组建高性能计算集群;并将集群的n个计算节点互相配置免密登录、在集群各节点相同目录下编译配置openmpi的运行环境。
10、优选的,其中flist分布式链表的创建通过libmfu创建;libmfu是基于mpi并行编程接口编写的一个操作分布式文件的公共库。
11、优选的,所述拷贝操作具体流程:
12、步骤一:mpi_init初始化、调用mpi_comm_rank获取进程号、mfu_init初始化;
13、步骤二:创建mfu_file_t的源文件指针和目标文件指针、创建mfu_copy_opts_t文件copy指针和mfu_walk_opts_t文件walk指针;
14、步骤三:根据dcp后面参数的数据计算路径的数目num_paths,若小于2,调用mfu_finalize和mpi_finalize结束化函数结束;
15、步骤四:创建空文件链表mfu_flist;
16、步骤五:根据输入的路径paths,计算路径paths数目,为每条路径path分配空间,其中paths的最后一项为输出目标路径;
17、步骤六:调用mfu_param_path_set_all对numpaths-1个原路径进行处理;
18、步骤七:调用mfu_param_path_set对最后一个目标路径进行处理;
19、步骤八:调用mfu_param_path_check_copy将numpaths-1原路径拷贝到最后一个目标路径;
20、步骤九:调用mfu_flist_read_cache将inputname读到input_flist存储;
21、步骤十:调用mfu_flist_stat统计;
22、步骤十一:调用mfu_flist_copy从flist中多进程拷贝到目标路径下;
23、步骤十二:最后调用mfu_param_path_free_all释放paths;
24、步骤十三:调用mfu_finalize结束、调用mpi_finalize结束该并行流程。
25、优选的,调用mfu_flist_walk_param_paths给定一个param_paths列表,遍历每1个并添加到flist。
26、优选的,调用mfu_free释放paths的空间;调用mfu_flist_free释放空文件列表flist;调用mfu_free释放inputname释放一些操作。
27、优选的,所述子流程mfu_param_path_set_all的逻辑流程如下:
28、步骤一:调用mpi_comm_rank获得当前进程号,所有通信进程数
29、步骤二:调用mfu_get_start_count给定调用进程的rank、rank个数和item个数,计算调用rank的起始偏移量和count,使item在rank中均匀分布;
30、步骤三:为count条路径分配空间;
31、步骤四:遍历count路径;
32、步骤五:调用mpi_allgather执行组收集,保证进程组都能收到数据;
33、步骤六:计算将收到的位移和总字节数、为发送和接收缓冲区分配内存、打包发送缓冲区;
34、步骤七:调用mpi_allgatherv收集数据;
35、步骤八:将recv缓冲区解压缩到调用者的参数中;
36、步骤七:调用mfu_free释放接收和发送缓存、释放接收计数和位移、释放临时参数。
37、优选的,所述遍历count路径具体为:
38、a)获取每一条路径;
39、b)解析路径转为绝对路径;
40、c)获取每一条路径的统计信息;
41、d)解决每一条路径的符号链接信息。
42、优选的,所述子流程mfu_flist_copy的逻辑流程如下:
43、步骤一:调用mpi_comm_rank获取当前进程号;
44、步骤二:配置执行拷贝的选项、目标路径、读缓冲区和写缓存区;
45、步骤三:调用mfu_flist_array_by_depth根据目录深度将文件列表中的项目拆为子列表;
46、步骤四:调用mfu_create_directories从上到下创建目录;
47、步骤五:若给定批量大小,则对文件进行批量操作、复制整个列表;
48、步骤六:创建文件和链接;
49、步骤七:调用mfu_free释放操作缓存、调用mfu_flist_array_free释放flist。
50、优选的,所述创建文件和链接具体为:
51、调用mfu_copy_files拷贝数据、调用mfu_sync_all强制更新到磁盘。
52、本专利技术公开了一种基于mpi并行模型的分布本文档来自技高网...
【技术保护点】
1.一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,所述组建MPI集群运行环境:
3.根据权利要求1所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,其中flist分布式链表的创建通过libmfu创建;libmfu是基于MPI并行编程接口编写的一个操作分布式文件的公共库。
4.根据权利要求1所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,所述拷贝操作具体流程:
5.根据权利要求4所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,调用mfu_flist_walk_param_paths给定一个param_paths列表,遍历每1个并添加到flist。
6.根据权利要求4所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,调用mfu_free释放paths的空间;调用mfu_flist_free释放空文件列表flist;调用mfu_free释放inpu
7.根据权利要求4所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,所述子流程mfu_param_path_set_all的逻辑流程如下:
8.根据权利要求7所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,所述遍历count路径具体为:
9.根据权利要求4所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,所述子流程mfu_flist_copy的逻辑流程如下:
10.根据权利要求9所述的一种基于MPI并行模型的分布式文件系统拷贝工具,其特征在于,所述创建文件和链接具体为:
...【技术特征摘要】
1.一种基于mpi并行模型的分布式文件系统拷贝工具,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于mpi并行模型的分布式文件系统拷贝工具,其特征在于,所述组建mpi集群运行环境:
3.根据权利要求1所述的一种基于mpi并行模型的分布式文件系统拷贝工具,其特征在于,其中flist分布式链表的创建通过libmfu创建;libmfu是基于mpi并行编程接口编写的一个操作分布式文件的公共库。
4.根据权利要求1所述的一种基于mpi并行模型的分布式文件系统拷贝工具,其特征在于,所述拷贝操作具体流程:
5.根据权利要求4所述的一种基于mpi并行模型的分布式文件系统拷贝工具,其特征在于,调用mfu_flist_walk_param_paths给定一个param_paths列表,遍历每1个并添加到flist。
6.根据权利要求4...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。