一种数据传输方法、系统以及计算节点技术方案

技术编号:34204421 阅读:17 留言:0更新日期:2022-07-20 11:30
一种数据传输方法、系统以及计算节点,本申请中,第一MPI进程能够创建第一组第二线程,还能够将第一组第一线程产生的第一数据分解为多个第一子数据。当第一组第一线程在不使用资源时,第一组第二线程可以占用第一组第一线程的资源发送多个第一子数据。这样,第一组第二线程能够占用第一组第一线程的资源,实现数据传输,不需要为第一组第二线程分配额外的资源,有效提高了计算节点的资源利用率。且第一组第二线程中的多个第二线程可以同时发送该多个第一子数据,也即第一组第二线程并行运行,相比于单个运行的MPI进程,效率更高,能够在更短的时间内完成数据传输。在更短的时间内完成数据传输。在更短的时间内完成数据传输。

【技术实现步骤摘要】
一种数据传输方法、系统以及计算节点


[0001]本申请涉及通信
,尤其涉及一种数据传输方法、系统以及计算节点。

技术介绍

[0002]共享存储并行编程(open multi

processing,OMP)是一种高性能计算(high performance computing,HPC)机群中常用的编程规范,采用OMP编写的一组线程(简称OMP线程)能够共享内存,该组OMP线程可以对同一块共享内存进行数据读写,也就是说该组OMP线程中的OMP线程之间可以通过共享内存实现数据共享,以使得该组OMP线程可以并行的进行数据处理。但是对于不同组的OMP线程,各组OMP线程对应的共享内存不同,不同组的OMP线程无法通过共享内存达到数据传输。
[0003]为了能够实现不同组的OMP线程之间的数据共享,产生了基于混合并行编程(hybrid MPI and OpenMP parallel programming,MPI+OMP)模式编写的消息传递接口标准(message passing interface,MPI)进程以及OMP线程,MPI进程以及OMP线程采用串并行的运行模式,一组OMP线程可以通过MPI进程与其它组OMP线程实现数据传输。
[0004]串并结合的运行模式中,在MPI进程运行的过程中,各组OMP线程处于等待状态,空占这所在计算节点上的资源(如处理器等),存在资源浪费。

技术实现思路

[0005]本申请提供一种数据传输方法、系统以及计算节点,用以提高计算节点中的资源利用率。
[0006]第一方面,本申请实施例提供了一种数据传输方法,方法包括:第一MPI进程可以先创建第一组第二线程,创建的第一组第二线程中第二线程的数量可以与第一组第一线程中第一线程的数量相同。第一MPI进程还可以将第一组第一线程进行数据处理产生的第一数据分解为多个第一子数据,第一子数据的数量可以与第一组第二线程中第二线程的数量相同,也可以与第一组第二线程的数量不同。当第一组第一线程处于等待状态,第一组第二线程可以占用第一组第一线程的资源发送多个第一子数据,其中,第一组第二线程中的一个第二线程可以占用第一组第一线程中的一个第一线程的资源发送第一子数据,本申请实施例并不限定一个第二线程发送的第一子数据的数量。
[0007]通过上述方法,第一组第一线程能够实现数据处理功能,第一组第二线程能够实现数据传输功能。第一组第二线程能够占用第一组第一线程的资源,实现数据传输,这样不需要为第一组第二线程分配额外的资源,有效提高了计算节点的资源利用率。另外,第一组第二线程中的多个第二线程可以同时发送该多个第一子数据,也即第一组第二线程并行运行,相比于单个运行的MPI进程,效率更高,能够在更短的时间内完成数据传输。
[0008]在一种可能的设计中,第一组第一线程的资源为第一组第一线程占用的处理器。本申请实施例并不限定处理器的类型,例如该处理器可以是中央处理器(central processing unit,CPU)、现场可编程门阵列(field programmable gate array,FPGA)、图
形处理器(graphics processing unit,GPU)等。
[0009]通过上述方法,第二线程可以占用第一线程的处理器,使得在第一线程不再占用处理器的情况下,第二线程可以通过该处理器进行数据传输。
[0010]在一种可能的设计中,第一组第一线程支持资源共用,也即第一线程能够让出自己的资源,如让出处理器。
[0011]通过上述方法,第一组第一线程能够让出资源,保证了第一组第二线程能够顺利占用第一组第一线程的资源。
[0012]在一种可能的设计中,第一组第二线程在第一组第一线程处于等待状态的情况下,占用第一组第一线程的资源发送多个第一子数据时,第一MPI进程可以先为第一组第二线程配置资源,第一组第二线程的资源与第一组第一线程的资源相同。在配置了资源之后,在第一组第一线程处于等待状态的情况下,第一组第二线程可以占用第一MPI进程为第一组第二线程配置的资源发送多个第一子数据。
[0013]通过上述方法,第一MPI进程可以为第一组第二线程配置与第一组第一线程相同的资源,以使得第一组第二线程可以占用第一组第一线程的资源。
[0014]在一种可能的设计中,第一线程为OMP线程。
[0015]通过上述方法,OMP线程产生的数据可以由第一组第二线程进行传输,这样第一组第二线程可以实现第一MPI进程的数据传输功能,既能保证数据传输效率,还能够提高资源利用率。
[0016]在一种可能的设计中,第一组第二线程在第一组第一线程处于等待状态的情况下,占用第一组第一线程的资源接收多个第二子数据。本申请实施例并不限定一个第二线程接收的第二子数据的数量。
[0017]通过上述方法,第一组第二线程除了能够发送多个第一子数据,还能够占用第一组第一线程的资源接收多个第二子数据。
[0018]在一种可能的设计中,第一MPI进程执行数据传输与第一组第一线程执行数据处理的运行模式为串并行的运行模式。也即第一MPI进程执行数据传输和第一组第一线程执行数据处理是先后进行的。具体到数据传输过程,第一MPI进程可以与第一组第二线程并行执行数据传输。具体到数据处理过程,第一组第一线程中的多个第一线程可以并行执行数据处理。
[0019]通过上述方法,数据传输过程和数据处理过程保持串并行的运行模式,由于第一MPI进程与第一组第二线程均参与了数据传输过程,有效地提高了数据传输效率。
[0020]在一种可能的设计中,第一组第二线程在第一组第一线程处于等待状态的情况下发送多个第一子数据时,第一MPI进程也可以参与发送第一子数据。也即第一组第二线程在第一组第一线程处于等待状态的情况下,与第一MPI进程一同发送多个第一子数据,其中,第一组第二线程占用第一组第一线程的资源,第一MPI进程可以发送一个或多个第一子数据。
[0021]通过上述方法,第一MPI进程也可以参与发送第一子数据,可以进一步提高数据传输效率,减少数据传输时间。
[0022]在一种可能的设计中,第一组第二线程发送多个第一子数据之前,第一MPI进程可以通过传输处理函数的方式指示第一组第二线程中每个第二线程发送的第一子数据。
[0023]通过上述方法,第一MPI进程可以通过处理函数告知第一组第二线程中每个第二线程需要发送哪一个或哪几个第一子数据,这样可以保证第一组第二线程中的每个第二线程后续可以根据指示发送第一子数据,保证数据传输的准确性以及有效性。
[0024]在一种可能的设计中,第一组第二线程在第一组第一线程的等待状态的情况下接收多个第二子数据时,第一MPI进程也可以参与接收第二子数据。第一组第二线程可以在第一组第一线程的等待状态的情况下与第一MPI进程一起接收多个第二子数据,其中第一组第二线程中的每一个第二线程接收一个或多个第二子数据,第一组第二线程占用第一组第一线程的资源。...

【技术保护点】

【技术特征摘要】
1.一种数据传输方法,其特征在于,所述方法包括:第一消息传递接口标准MPI进程创建第一组第二线程,将第一数据分解为多个第一子数据,所述第一数据为第一组第一线程进行数据处理产生的;所述第一组第二线程在所述第一组第一线程处于等待状态的情况下,占用所述第一组第一线程的资源发送所述多个第一子数据。2.如权利要求1所述的方法,其特征在于,所述第一组第一线程的资源为所述第一组第一线程占用的处理器。3.如权利要求1~2任一所述的方法,其特征在于,所述第一组第一线程支持资源共用。4.如权利要求3所述的方法,其特征在于,所述第一组第二线程在所述第一组第一线程处于等待状态的情况下,占用所述第一组第一线程的资源发送所述多个第一子数据,包括:所述第一MPI进程为所述第一组第二线程配置资源,所述第一组第二线程的资源与所述第一组第一线程的资源相同;在所述第一组第一线程处于等待状态的情况下,所述第一组第二线程占用所述第一MPI进程为所述第一组第二线程配置的资源发送所述多个第一子数据。5.如权利要求1~4任一所述的方法,其特征在于,所述第一线程为共享存储并行编程OMP线程。6.如权利要求1~5任一所述的方法,其特征在于,所述方法还包括:所述第一组第二线程在所述第一组第一线程处于等待状态的情况下,占用所述第一组第一线程的资源接收多个第二子数据。7.如权利要求1~5任一所述的方法,其特征在于,所述第一MPI进程执行数据传输与所述第一组第一线程执行数据处理的运行模式为串并行的运行模式。8.如权利要求7所述的方法,其特征在于,所述第一组第二线程在所述第一组第一线程处于等待状态的情况下,占用所述第一组第一线程的资源发送所述多个第一子数据,包括:所述第一组第二线程在所述第一组第一线程处于等待状态的情况下,与所述第一MPI进程发送所述多个第一子数据,所述第一组第二线程占用所述第一组第一线程的资源。9.如权利要求1~5、7~8任一所述的方法,其特征在于,所述第一组第二线程发送所述多个第一子数据之前,还包括:所述第一MPI进程通过传输处理函数的方式指示所述第一组第二线程中每个第二线程发送的第一子数据。10.一种数据传输系统,其特征在于,所述系统包括第一计算节点和第二计算节点,所述第一计算节点包括第一MPI进程、第一组第一线程以及第一组第二线程,所述第二计算节点包括第二MPI进程、第二组第一线程以及第二组第二线程;所述第一组第一线程,用于进行数据处理,产生第一数据;所述第一MPI进程,用于创建所述第一组第二线程,将所述第一数据分解为多个第一子数据;所述第一组第二线程,用于在所述第一组第一线程处于等待状态的情况下,占用所述第一组第一线程的资源向所述第二计算节点发送所述多个第一子数据;所述第二MPI进程,用于指示所述第二组第二线程接收所述多个第一子数据;所述第二组第二线程,用于在所述第二组第一线程处于等待状态的情况下,占用所述
第二组第一线程的...

【专利技术属性】
技术研发人员:潘孝刚李思聪陈一都陈强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1