一种数据聚合方法及计算系统技术方案

技术编号:38435478 阅读:11 留言:0更新日期:2023-08-11 14:20
本申请实施例提供一种数据聚合方法和计算系统,所述计算系统包括共享内存,及访问所述共享内存的第一进程和第二进程,所述第一进程用于根据待写的第一数据在文件中的第一位置确定所述共享内存中的第一地址,并将所述第一数据写入所述第一地址;所述第二进程用于根据待写的第二数据在所述文件中的第二位置确定所述共享内存中的第二地址,并将所述第二数据写入所述第二地址;其中,所述第一位置和所述第二位置为所述文件中的相邻位置,所述第一地址和所述第二地址为所述共享内存中的连续地址。该方案缩短了计算系统输入/输出请求的时延,节省了计算资源。节省了计算资源。节省了计算资源。

【技术实现步骤摘要】
一种数据聚合方法及计算系统


[0001]本申请涉及计算机
,具体涉及一种数据聚合方法及计算系统。

技术介绍

[0002]在高性能计算(High Performance Computing,HPC)场景下的应用中,多个进程需要并行执行计算任务,在并行执行计算任务时产生的中间数据或者计算结果数据需要存储至存储系统。在一种相关技术中,通过对所述多个进程之间进行数据交换,将地址不连续的输入/输出(Input/output,I/O)请求合并为地址连续的I/O请求,然后基于合并后I/O请求访问存储系统,以将地址连续的数据写入存储系统。然而,进程之间进行数据交换时,进程之间不仅需要互相通信,而且需要将数据从一个进程的内存空间搬移到另一个进程的内存空间,不仅增加了I/O请求的时延,还消耗了计算资源。

技术实现思路

[0003]本申请实施例旨在提供一种数据聚合方案,缩短了I/O请求的时延,节省了计算资源。
[0004]本申请第一方面提供一种计算系统。所述计算系统包括共享内存,及访问所述共享内存的第一进程和第二进程。所述第一进程和第二进程例如可以通过计算系统中的处理器核运行。所述第一进程和第二进程用于写入文件中的第一数据和第二数据,所述第一数据和第二数据在文件中的位置相邻,例如第一数据在文件中0

63bit的位置,即第一位置,则第二数据在文件中64~127bit的位置,即第二位置。第一进程根据第一数据在文件中的第一位置确定所述共享内存中的第一地址,并将所述第一数据写入所述第一地址。第二进程根据第二数据在所述文件中的第二位置确定所述共享内存中的第二地址,并将所述第二数据写入所述第二地址。且所述第一地址和所述第二地址为所述共享内存中的连续地址。
[0005]通过在计算系统中提供共享内存,多个并行进程在向共享内存中写入数据时,对于在文件中位置连续的数据,在写入共享内存时,会写入地址连续的内存空间,这样,在将共享内存空间的数据写入存储系统时,进程之间不需要进行数据交换即可将地址连续的数据写入存储系统,从而减少了I/O请求时延,且节省了计算资源。
[0006]在本申请第一方面的一种可能的实施方式中,所述计算系统包括第一计算节点,所述第一进程和所述第二进程为所述第一计算节点中的进程,所述共享内存为所述第一计算节点中的内存。
[0007]通过在单个计算节点中提供共享内存,并使得该单个计算节点中的多个进程将文件中位置连续的数据写入到共享内存中的连续地址中,减少了该计算节点发出的I/0请求的延时,节省了该计算节点的计算资源。
[0008]在本申请第一方面的一种可能的实施方式中,所述计算系统包括第一计算节点和第二计算节点,所述第一进程为所述第一计算节点中的进程,所述第二进程为所述第二计算节点中的进程,所述共享内存为所述第一计算节点和所述第二计算节点都可以访问的共
享内存池。
[0009]通过在包括多个计算节点的计算系统中提供共享内存池,并使得计算系统中的多个进程将文件中位置连续的数据写入到共享内存池中的连续地址中,减少了多个计算节点发出的I/0请求的延时,节省了多个计算节点的计算资源。
[0010]在本申请第一方面的一种可能的实施方式中,所述共享内存包括多个存储段,所述第一地址和所述第二地址属于所述多个存储段中的第一存储段。
[0011]通过在共享内存中划分存储段,多个进程在向共享内存写入数据时,可根据存储段与文件的对应关系找到在共享内存中写入文件数据的地址,从而将文件中位置连续的数据写入到共享内存中的连续地址中。
[0012]在本申请第一方面的一种可能的实施方式中,所述共享内存还包括多个索引段,每个索引段包括多个索引记录,每个索引记录用于指示一个地址连续的存储块,并记录所述存储块所归属的存储段及在所归属存储段中的位置,所述存储块用于存储所述文件中的连续数据,所述第一进程在用于根据待写的第一数据在文件中的第一位置确定所述共享内存中的第一地址时,具体用于:根据所述第一数据在文件中的第一位置确定第一索引段中的第一索引记录;根据所述第一索引记录记录的第一存储段的信息及所述第一索引记录所指示的第一存储块的信息在所述第一存储段中找到所述第一存储块;在所述第一存储块中找到所述第一地址。
[0013]通过在共享内存中划分索引段和存储段,使用索引段中的索引记录指示存储段中的存储块,多个进程在向共享内存写入数据时,可根据索引段与文件的对应关系找到在共享内存中写入文件数据的地址,从而将文件中位置连续的数据写入到共享内存中的连续地址中,同时,初始只需要为文件分配索引段,而不需要分配存储段,由于存储段的内存空间比索引段的内存空间大的多,因此该实施方式可节省共享内存的空间,提高共享内存的使用率。
[0014]在本申请第一方面的一种可能的实施方式中,所述第一进程在用于根据待写的第一数据在文件中的第一位置确定所述共享内存中的第一地址时,还用于:在所述第一索引记录中没有记录所述第一存储段的信息时,为所述第一索引记录分配第一存储段;在所述第一存储段中确定所述第一索引记录所指示的第一存储块;将所述第一存储段的信息及所述第一存储块在所述第一存储段的位置记录至所述第一索引记录。
[0015]通过在为文件分配索引段之后,仅在进程将要写入第一索引记录对应的数据时,才为第一索引记录分配存储段及存储段中的存储块,而不需要在为文件分配索引段之后,为该索引段包括的每个索引记录分配存储段及存储段中的存储块,从而节省了共享内存的空间,提高了对存储段的使用效率。
[0016]在本申请第一方面的一种可能的实施方式中,所述文件的元数据包括所述文件对应的位置范围对应的索引段信息,所述第一进程在用于根据所述第一数据在文件中的第一位置确定第一索引段中的第一索引记录时,具体用于:根据所述第一数据的第一位置确定所述第一数据所落入的所述文件的第一位置范围;根据所述元数据确定所述第一位置范围对应的第一索引段信息;根据所述第一索引段信息找到所述第一索引段;根据所述第一数据的第一位置在所述第一索引段中找到所述第一索引记录。
[0017]通过在文件的元数据中记录文件中的位置范围对应的索引段信息,进程在向共享
内存中写入文件中的数据时,可根据数据在文件中的位置确定位置范围,根据元数据找到该位置范围对应的索引段信息,从而根据数据的位置确定数据对应的索引段中的索引记录,通过这样,不同的进程在向共享内存中写入文件中位置连续的数据时,可以找到索引段中的相同的索引记录,并根据索引记录中的存储块的信息将文件中位置连续的数据写入共享内存中的同一个存储块中的连续地址中。
[0018]在本申请第一方面的一种可能的实施方式中,所述第一索引段信息包括第一索引段标识和所述第一索引段中的多个索引记录在所述第一索引段中的位置信息,所述多个索引记录与所述第一位置范围中的多个位置块分别对应,所述位置块的大小与存储块的大小相同,所述第一进程在根据所述第一数据的第一位置在所述第一索引段中找到所述第一索引记录时具体用于,所述第一进程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算系统,其特征在于,所述计算系统包括共享内存,及访问所述共享内存的第一进程和第二进程,所述第一进程用于根据待写的第一数据在文件中的第一位置确定所述共享内存中的第一地址,并将所述第一数据写入所述第一地址;所述第二进程用于根据待写的第二数据在所述文件中的第二位置确定所述共享内存中的第二地址,并将所述第二数据写入所述第二地址;其中,所述第一位置和所述第二位置为所述文件中的相邻位置,所述第一地址和所述第二地址为所述共享内存中的连续地址。2.根据权利要求1所述的计算系统,其特征在于,所述计算系统包括第一计算节点,所述第一进程和所述第二进程为所述第一计算节点中的进程,所述共享内存为所述第一计算节点中的内存。3.根据权利要求1所述的计算系统,其特征在于,所述计算系统包括第一计算节点和第二计算节点,所述第一进程为所述第一计算节点中的进程,所述第二进程为所述第二计算节点中的进程,所述共享内存为所述第一计算节点和所述第二计算节点都可以访问的共享内存池。4.根据权利要求1

3任一项所述的计算系统,其特征在于,所述共享内存包括多个存储段,所述第一地址和所述第二地址属于所述多个存储段中的第一存储段。5.根据权利要求4所述的计算系统,其特征在于,所述共享内存还包括多个索引段,每个索引段包括多个索引记录,每个索引记录用于指示一个地址连续的存储块,并记录所述存储块所归属的存储段及在所归属存储段中的位置,所述存储块用于存储所述文件中的连续数据,所述第一进程在用于根据待写的第一数据在文件中的第一位置确定所述共享内存中的第一地址时,具体用于:根据所述第一数据在文件中的第一位置确定第一索引段中的第一索引记录;根据所述第一索引记录记录的第一存储段的信息及所述第一索引记录所指示的第一存储块的信息在所述第一存储段中找到所述第一存储块;在所述第一存储块中找到所述第一地址。6.根据权利要求5所述的计算系统,其特征在于,所述第一进程在用于根据待写的第一数据在文件中的第一位置确定所述共享内存中的第一地址时,还用于:在所述第一索引记录中没有记录所述第一存储段的信息时,为所述第一索引记录分配第一存储段;在所述第一存储段中确定所述第一索引记录所指示的第一存储块;将所述第一存储段的信息及所述第一存储块在所述第一存储段的位置记录至所述第一索引记录。7.根据权利要求5或6所述的计算系统,其特征在于,所述文件的元数据包括所述文件对应的位置范围对应的索引段信息,所述第一进程在用于根据所述第一数据在文件中的第一位置确定第一索引段中的第一索引记录时,具体用于:根据所述第一数据的第一位置确定所述第一数据所落入的所述文件的第一位置范围;根据所述元数据确定所述第一位置范围对应的第一索引段信息;根据所述第一索引段信息找到所述第一索引段;
根据所述第一数据的第一位置在所述第一索引段中找到所述第一索引记录。8.根据权利要求7所述的计算系统,其特征在于,所述第一进程在用于根据所述第一数据在文件中的第一位置确定第一索引段中的第一索引记录时还用于:当所述元数据中没有记录所述第一位置范围对应的第一索引段信息时,为所述第一位置范围分配所述第一索引段;在所述第一索引段中为所述第一位置范围分配与所述第一位置范围对应的多个索引记录;将所述第一索引段的信息及所述第一位置范围对应的多个索引记录在所述第一索引段中的位置信息记录至所述元数据;根据所述第一数据的第一位置在所述多个索引记录中确定所述第一数据对应的第一索引记录。9.根据权利要求7或8所述的计算系统,其特征在于,所述第一进程和第二进程还用于在需要向所述文件写入数据时,分别获取所述文件的元数据。10.根据权利要求5或6所述的计算系统,其特征在于,所述第一进程还用于在将所述第一数据写入所述第一地址之前,锁定所述第一存储块,在将所述第一数据写入所述第一地址之后,解锁所述第一存储块。11.一种数据聚合方法,其特征在于,所述方法由计算系统执行,所述计算系统包括共享内存,及访问所述共享内存的第一进程和第二进程,所述方法包括:所述第一进程根据待写的第一数据在...

【专利技术属性】
技术研发人员:高帅李秀桥崔宝龙潘孝刚
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1