本发明涉及异构加速,具体为一种基于rdma的遥测数据乱序重排和异构加速方法及系统。
背景技术:
1、当前遥测数据库种类方向繁多,但无论是光学影像、水利环境都会实时存储大量的时间敏感数据,且具有长时序、高频次的特点。然而由于是远距离传输,遥测数据输出路径各不相同,这就导致服务器接受到大量无序的遥测数据,不利于遥测数据的解析、存储。
2、现有技术中,此在遥测数据序列化过程中,数据库处理这些高频次的遥测数据时往往需要大量的内存来分析计算,特别是随着遥测数据的指数级增长,导致数据库系统的计算性能面临巨大的考验,一方面数据库服务器需要更大的内存空间,另一方面cpu需要耗费大量时间来完成遥测数据的排序任务,大大降低了数据库的整体运行效率。
3、因此,我们需要一种基于rdma的遥测数据乱序重排和异构加速方法及系统,用来解决本地数据库接收到大量无序的遥测数据后,往往会出现本地内存不足或cpu耗费大量时间来排序处理遥测数据,导致系统性能大幅度下降的问题;可以实现内存扩展,大大降低数据库的部署升级成本,同时可以最大限度的利用硬件资源,提高遥测数据库的整体性能及资源利用率。
技术实现思路
1、本发明的目的在于提供一种基于rdma的遥测数据乱序重排和异构加速方法及系统,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于rdma的遥测数据乱序重排和异构加速方法,所述方法包括以下步骤:
3、在本地服务器部署遥测数据库,接收遥测数据;
4、当遥测数据到达通用服务器内存后,通用服务器主机端经过解析之后产生乱序重排任务,然后调用通用排序内核的api函数;
5、加速板卡内集成通用排序内核,id号根据时间戳经过哈希模块得到的索引地址来缓存到hbm当中;
6、得到有序的时间戳数据后,调用哈希模块生产索引地址,将时间戳与其对应的id号组成64bit开销数据缓存到局部内存中,调用数据恢复模块,将64bit的开销数据转换成512bit的最终数据缓存到ddr内,结束本次重排任务;
7、完成本次重排任务后,通知主机端从ddr内存中回读到主机内存,释放运算资源。
8、优选的,在本地服务器部署遥测数据库,接收遥测数据的具体操作包括:
9、当服务器cpu空闲时,无序的遥测数据首先缓存到遥测数据库服务器的内存中,进行乱序重排;
10、当cpu繁忙时,则开启内存扩展及异构加速机制,基于rdma协议通过网卡与远端通用服务器建立链接,访问远端内存;之后将无序的遥测数据通过rdma网卡缓存到远端通用服务器的内存中。
11、优选的,当遥测数据到达通用服务器内存后,通用服务器主机端经过解析之后产生乱序重排任务,然后调用通用排序内核的api函数的具体操作包括:
12、cpu通过xdma将内核运行所需的用户参数传输给加速卡,同时将遥测数据从主机内存传输到全局内存ddr,并通过xilinx runtime api生成启动信号,并将用户参数传递到寄存器模块。
13、优选的,加速板卡内集成通用排序内核,id号根据时间戳经过哈希模块得到的索引地址来缓存到hbm当中的具体操作包括:
14、内核中的数据解析模块从ddr中读取遥测数据,并根据寄存器模块读取的用户参数及其帧格式提取时间戳及数据的id号,时间戳缓存到局部内存中,id号根据时间戳经过哈希模块得到的索引地址来缓存到hbm当中;利用fpga的并行运算特点,以时间戳为键值,同时调用八个快速排序模块,生成的中间结果缓存到ddr中,再调用归并排序模块经过多次迭代,完成最终的时间戳排序。
15、优选的,最终的排序结果根据实际需求可以通过网卡再回传到遥测数据库服务器内存,或者存储到通用服务器的磁盘。
16、一种基于rdma的遥测数据乱序重排和异构加速系统,所述系统由数据库部署模块、函数调用模块、缓存模块、重排模块以及回读模块组成;
17、数据库部署模块,在本地服务器部署遥测数据库,接收遥测数据;
18、函数调用模块,当遥测数据到达通用服务器内存后,通用服务器主机端经过解析之后产生乱序重排任务,然后调用通用排序内核的api函数;
19、缓存模块,加速板卡内集成通用排序内核,id号根据时间戳经过哈希模块得到的索引地址来缓存到hbm当中;
20、重排模块,得到有序的时间戳数据后,调用哈希模块生产索引地址,将时间戳与其对应的id号组成64bit开销数据缓存到局部内存中,调用数据恢复模块,将64bit的开销数据转换成512bit的最终数据缓存到ddr内,结束本次重排任务;
21、回读模块,完成本次重排任务后,通知主机端从ddr内存中回读到主机内存,释放运算资源。
22、优选的,所述数据库部署模块,当服务器cpu空闲时,无序的遥测数据首先缓存到遥测数据库服务器的内存中,进行乱序重排;
23、当cpu繁忙时,则开启内存扩展及异构加速机制,基于rdma协议通过网卡与远端通用服务器建立链接,访问远端内存;之后将无序的遥测数据通过rdma网卡缓存到远端通用服务器的内存中。
24、优选的,所述函数调用模块,cpu通过xdma将内核运行所需的用户参数传输给加速卡,同时将遥测数据从主机内存传输到全局内存ddr,并通过xilinx runtime api生成启动信号,并将用户参数传递到寄存器模块。
25、优选的,所述缓存模块,内核中的数据解析模块从ddr中读取遥测数据,并根据寄存器模块读取的用户参数及其帧格式提取时间戳及数据的id号,时间戳缓存到局部内存中,id号根据时间戳经过哈希模块得到的索引地址来缓存到hbm当中;利用fpga的并行运算特点,以时间戳为键值,同时调用八个快速排序模块,生成的中间结果缓存到ddr中,再调用归并排序模块经过多次迭代,完成最终的时间戳排序。
26、优选的,所述最终的排序结果根据实际需求可以通过网卡再回传到遥测数据库服务器内存,或者存储到通用服务器的磁盘中。
27、与现有技术相比,本发明的有益效果是:
28、本发明提出的基于rdma的遥测数据乱序重排和异构加速方法及系统,通过rdma技术实现内存扩展,基于该技术的高带宽、低延时特性使得远端服务器内存与本地内存组成内存池,实现内存扩展,同时可以将本地的排序任务数据卸载到远端的异构加速平台,利用fpga可编程特性及在线重构技术实现快速排序等主流的排序算法,可灵活适配选择最优的排序算法,大大降低本地cpu的计算占用时间。该方法不仅可以实现内存扩展,大大降低数据库的部署升级成本,同时可以最大限度的利用硬件资源,提高遥测数据库的整体性能及资源利用率。
1.一种基于rdma的遥测数据乱序重排和异构加速方法,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的一种基于rdma的遥测数据乱序重排和异构加速方法,其特征在于:在本地服务器部署遥测数据库,接收遥测数据的具体操作包括:
3.根据权利要求1所述的一种基于rdma的遥测数据乱序重排和异构加速方法,其特征在于:当遥测数据到达通用服务器内存后,通用服务器主机端经过解析之后产生乱序重排任务,然后调用通用排序内核的api函数的具体操作包括:
4.根据权利要求1所述的一种基于rdma的遥测数据乱序重排和异构加速方法,其特征在于:加速板卡内集成通用排序内核,id号根据时间戳经过哈希模块得到的索引地址来缓存到hbm当中的具体操作包括:
5.根据权利要求1所述的一种基于rdma的遥测数据乱序重排和异构加速方法,其特征在于:最终的排序结果根据实际需求可以通过网卡再回传到遥测数据库服务器内存,或者存储到通用服务器的磁盘中。
6.一种根据权利要求1-5任意一项所述的基于rdma的遥测数据乱序重排和异构加速方法的基于rdma的遥测数据乱序重排和异构加速系统,其特征在于:所述系统由数据库部署模块、函数调用模块、缓存模块、重排模块以及回读模块组成;
7.根据权利要求6所述的一种基于rdma的遥测数据乱序重排和异构加速系统,其特征在于:所述数据库部署模块,当服务器cpu空闲时,无序的遥测数据首先缓存到遥测数据库服务器的内存中,进行乱序重排;
8.根据权利要求6所述的一种基于rdma的遥测数据乱序重排和异构加速系统,其特征在于:所述函数调用模块,cpu通过xdma将内核运行所需的用户参数传输给加速卡,同时将遥测数据从主机内存传输到全局内存ddr,并通过xilinx runtime api生成启动信号,并将用户参数传递到寄存器模块。
9.根据权利要求6所述的一种基于rdma的遥测数据乱序重排和异构加速系统,其特征在于:所述缓存模块,内核中的数据解析模块从ddr中读取遥测数据,并根据寄存器模块读取的用户参数及其帧格式提取时间戳及数据的id号,时间戳缓存到局部内存中,id号根据时间戳经过哈希模块得到的索引地址来缓存到hbm当中;利用fpga的并行运算特点,以时间戳为键值,同时调用八个快速排序模块,生成的中间结果缓存到ddr中,再调用归并排序模块经过多次迭代,完成最终的时间戳排序。
10.根据权利要求6所述的一种基于rdma的遥测数据乱序重排和异构加速系统,其特征在于:所述最终的排序结果根据实际需求可以通过网卡再回传到遥测数据库服务器内存,或者存储到通用服务器的磁盘中。