本公开涉及计算机,尤其涉及一种数据读写方法、装置、存储介质与芯片。
背景技术:
1、i/o读写是输入/输出读写,将用户空间的数据读取至磁盘中时,需要将用户空间的数据暂存至缓冲区,再将数据从缓冲区取出写入至磁盘中;或将磁盘中的数据读取至用户空间时,也需要将磁盘中的数据暂存至缓冲区,再数据从缓冲区取出写入至用户空间。
2、在i/o读写的相关技术中具有计算进程与io进程,计算进程需要进行文件读写时,将数据发送至io进程,io进程再将数据写入磁盘。在计算进程的数量较多的情况下,同一io进程需要与数量较多的计算进程进行通信,导致io进程与计算进程之间的通信开销较大。
技术实现思路
1、为克服相关技术中存在的问题,本公开提供一种数据读写方法、装置、存储介质与芯片。
2、根据本公开实施例的第一方面,提供一种数据读写方法,所述方法运用至主板,所述主板用于运行计算进程与子读写进程,包括:
3、通过所述子读写进程,将所述计算进程写入至第一共享内存区域中的第一数据发送至总读写进程,所述总读写进程用于对多个所述子读写进程发送的多个第一数据整合后,存储至存储器,和/或;
4、通过所述子读写进程,将所述总读写进程发送的第二数据,写入第二共享内存区域,以指示所述计算进程从所述第二共享内存区域中获取所述第二数据。
5、可选地,所述通过所述子读写进程,将所述计算进程写入至共享内存区域中的第一数据发送至所述总读写进程,所述总读写进程用于对多个所述子读写进程发送的多个第一数据整合后,存储至存储器,包括:
6、通过所述计算进程,将所述第一数据写入至所述第一共享内存区域;
7、通过与所述计算进程位于同一主板的所述子读写进程,将从所述第一共享内存区域中读取的所述第一数据发送至所述总读写进程;
8、通过所述总读写进程,对多个所述主板上的所述子读写进程发送的多个第一数据整合后,存储至存储器。
9、可选地,所述方法还包括:
10、所述子读写进程通过所述第一共享内存区域的指针位置,访问所述第一共享内存区域,和/或;
11、所述计算进程通过所述第二共享内存区域的指针位置,访问所述第二共享内存区域。
12、可选地,所述方法还包括:
13、调用第一mpi函数,创建通信域;
14、对于所述通信域中的多个进程,确定至少一个进程作为所述子读写进程,所述多个进程中的剩余进程作为所述计算进程。
15、可选地,所述通过所述子读写进程,将所述计算进程写入至第一共享内存区域中的第一数据发送至所述总读写进程,包括:
16、在所述子读写进程确定多个所述计算进程均将所述第一数据存放至所述第一共享内存区域的情况下,将多个所述计算进程分别写入至多个所述第一共享内存区域中的第一数据,发送至所述总读写进程。
17、可选地,所述方法还包括:
18、所述计算进程通过第二mpi函数,创建所述第一共享内存区域;
19、所述子读写进程通过所述第二mpi函数,创建所述第二共享内存区域。
20、可选地,所述通过所述子读写进程,将所述总读写进程发送的第二数据,写入第二共享内存区域,以指示所述计算进程从所述第二共享内存区域中获取所述第二数据,包括:
21、通过所述总读写进程,将拆解后的第二数据发送至所述子读写进程;
22、通过所述子读写进程,将所述第二数据写入至所述第二共享内存区域;
23、通过与所述子读写进程位于同一主板的所述计算进程,从所述第二共享内存区域读取多个所述第二数据。
24、可选地,所述方法还包括:
25、在所述子读写进程接收到目标计算进程的读取请求的情况下,根据所述目标计算进程对应的字段起始位置与字段长度,将所述字段起始位置与所述字段长度表征的第二数据发送至所述目标计算进程。
26、根据本公开实施例的第二方面,提供一种数据读写装置,所述装置包括第一子读写模块和/或第二子读写模块;
27、第一子读写模块,被配置为通过所述子读写进程,将所述计算进程写入至第一共享内存区域中的第一数据发送至总读写进程,所述总读写进程用于对多个所述子读写进程发送的多个第一数据整合后,存储至存储器;
28、第二子读写模块,被配置为通过所述子读写进程,将所述总读写进程发送的第二数据,写入第二共享内存区域,以指示所述计算进程从所述第二共享内存区域中获取所述第二数据。
29、根据本公开实施例的第三方面,提供一种数据读写装置,包括:
30、处理器;
31、用于存储处理器可执行指令的存储器;
32、其中,所述处理器被配置为在执行所述可执行指令时,实现本公开实施例的第一方面提供的数据读写方法的步骤。
33、根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开实施例的第一方面提供的数据读写方法的步骤。
34、根据本公开实施例的第五方面,提供一种芯片,包括处理器和接口;所述处理器用于读取指令以执行本公开实施例的第一方面提供的数据读写方法的步骤。
35、本公开的实施例提供的技术方案可以包括以下有益效果:
36、由于计算进程与子读写进程位于同一主板节点上,所以计算进程与子读写进程之间的通信属于主板节点内通信,二者之间无需借助网络来进行通信,进而避免了通信所带来的通信开销。
37、为了实现主板节点内的进程间通信,本公开提出主板节点内的计算进程与子io进程,均可以访问子io进程创建的第二共享内存区域与计算进程创建的第一共享内存区域。如此,通过对第一共享内存区域与第二共享内存区域的访问,可以实现主板节点内计算进程与子io进程之间的数据交互,实现对存储器的i/o读写操作。
38、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种数据读写方法,其特征在于,所述方法运用至主板,所述主板用于运行计算进程与子读写进程,包括:
2.根据权利要求1所述的方法,其特征在于,所述通过所述子读写进程,将所述计算进程写入至共享内存区域中的第一数据发送至所述总读写进程,所述总读写进程用于对多个所述子读写进程发送的多个第一数据整合后,存储至存储器,包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,所述通过所述子读写进程,将所述计算进程写入至第一共享内存区域中的第一数据发送至所述总读写进程,包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述通过所述子读写进程,将所述总读写进程发送的第二数据,写入第二共享内存区域,以指示所述计算进程从所述第二共享内存区域中获取所述第二数据,包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.一种数据读写装置,其特征在于,所述装置包括第一子读写模块和/或第二子读写模块;
10.一种数据读写装置,其特征在于,包括:
11.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时实现权利要求1~8中任一项所述方法的步骤。
12.一种芯片,其特征在于,包括处理器和接口;所述处理器用于读取指令以执行权利要求1~8中任一项所述的方法。