应用于大型稀疏矩阵求解器库适配器开发的数据处理方法
文献发布时间:2024-04-18 19:59:31
技术领域
本申请涉及仿真技术领域,尤其涉及应用于大型稀疏矩阵求解器库适配器开发的数据处理方法。
背景技术
仿真软件在开发大型稀疏矩阵求解器库时,常需要对现存求解器库数据进行数据适配处理,而在上述适配过程中,一般需要使用相应的适配器对现存求解器库的接口和数据进行转换以实现适配过程。
适配器的开发针对性较强,相关技术中,在每次的适配器开发过程中,一般只对两个数据源(求解器库)之间进行适配器开发,当出现新需求时,即使已存在适配器的两个数据源中的一方数据源发生改变,也需要重新进行适配器开发,代码编写量大,开发效率低,适配器开发过程扩展性较差。
发明内容
为解决或部分解决相关技术中存在的问题,本申请提供一种应用于大型稀疏矩阵求解器库适配器开发的数据处理方法,将适配过程尽可能解耦,按需求将待适配的求解器库的接口和数据分为前端、后端,对适配器开发过程中的具有共性的处理模块进行复用,从而有效减少适配器代码编写量,提升适配器开发过程的效率。
本申请第一方面提供一种应用于大型稀疏矩阵求解器库适配器开发的数据处理方法,所述适配器包括:位于所述适配器前端并与第一求解器库对应的第一数据结构体,及位于所述适配器后端并与第二求解器库对应的第二数据结构体,该方法包括:
获取与待开发适配器对应的待处理方程组求解器适配器架构获取复用信息,根据所述复用信息更替所述待处理方程组求解器适配器架构前端的第一数据结构体和/或所述待处理方程组求解器适配器架构后端的第二数据结构体,得到完成复用的方程组求解器适配器架构;
根据所述第一数据结构体的第一参数及所述第二数据结构体的第二参数,确定所述第一求解器库与所述第二求解器库之间的参数映射模块;
根据所述第一数据结构体的第一稀疏矩阵数据格式及所述第二数据结构体的第二稀疏矩阵数据格式,确定所述第一求解器库与所述第二求解器库之间的稀疏矩阵数据格式转换模块;
根据所述完成复用的方程组求解器适配器架构、参数映射模块及稀疏矩阵数据格式转换模块进行组装,得到目标适配器。
在一些实施方式中,所述复用信息包括:第一子复用信息,根据所述复用信息更替所述待处理方程组求解器适配器架构前端的第一数据结构体和/或所述待处理方程组求解器适配器架构后端的第二数据结构体,包括:
根据所述第一子复用信息更替所述待处理方程组求解器适配器架构前端的第一数据结构体和/或所述待处理方程组求解器适配器架构后端的第二数据结构体。
在一些实施方式中,所述复用信息包括:第二子复用信息,根据所述第一数据结构体的第一参数及所述第二数据结构体的第二参数,确定所述第一求解器库与所述第二求解器库之间的参数映射模块,包括:
根据第二子复用信息确定所述第一数据结构体的第一参数及所述第二数据结构体的第二参数;
根据所述第一数据结构体的第一参数及所述第二数据结构体的第二参数,确定所述第一求解器库与所述第二求解器库之间的参数映射模块。
在一些实施方式中,所述复用信息包括:第三子复用信息,所述根据所述第一数据结构体的第一稀疏矩阵数据格式及所述第二数据结构体的第二稀疏矩阵数据格式,确定所述第一求解器库与所述第二求解器库之间的稀疏矩阵数据格式转换模块,包括:
根据第三子复用信息确定所述第一数据结构体的第一稀疏矩阵数据格式及所述第二数据结构体的第二稀疏矩阵数据格式;
根据所述第一数据结构体的第一稀疏矩阵数据格式与中间稀疏矩阵数据格式的双向映射模块及所述第二数据结构体的第二稀疏矩阵数据格式与中间稀疏矩阵数据格式的双向映射模块,复用并组装形成所述第一求解器库与所述第二求解器库之间的稀疏矩阵数据格式转换模块。
在一些实施方式中,所述根据所述完成复用的方程组求解器适配器架构、参数映射模块及稀疏矩阵数据格式转换模块进行组装,包括:
根据所述参数映射模块,确定与所述完成复用的方程组求解器具有调用关系的预设参数映射模块中的参数映射功能,以使对所述完成复用的方程组求解器的参数映射功能进行装配;和/或
根据所述稀疏矩阵数据格式转换模块,确定与所述完成复用的方程组求解器具有调用关系的预设稀疏矩阵数据格式转换模块中的稀疏矩阵数据格式转换功能,以使对所述完成复用的方程组求解器的稀疏矩阵数据格式转换功能进行装配。
在一些实施方式中,所述获取复用信息之前,该方法还包括:
获取当前适配信息及历史适配信息,根据所述历史适配信息及当前适配信息确定复用信息。
本申请第二方面提供一种应用于大型稀疏矩阵求解器库适配器开发的数据处理装置,所述适配器包括:位于所述适配器前端并与第一求解器库对应的第一数据结构体,及位于所述适配器后端并与第二求解器库对应的第二数据结构体,该装置包括:
获取模块,用于获取与待开发适配器对应的待处理方程组求解器适配器架构;
更替模块,用于获取复用信息,根据所述复用信息设置所述待处理方程组求解器适配器架构前端的第一数据结构体和/或所述待处理方程组求解器适配器架构后端的第二数据结构体,得到完成复用的方程组求解器适配器架构;
参数映射模块,用于根据所述第一数据结构体的第一参数及所述第二数据结构体的第二参数,确定所述第一求解器库与所述第二求解器库之间的参数映射模块;
稀疏矩阵数据格式转换模块,用于根据所述第一数据结构体的第一稀疏矩阵数据格式及所述第二数据结构体的第二稀疏矩阵数据格式,确定所述第一求解器库与所述第二求解器库之间的稀疏矩阵数据格式转换模块;
组装模块,用于根据所述完成复用的方程组求解器适配器架构、所述参数映射模块及稀疏矩阵数据格式转换模块进行组装,得到目标适配器。
在一些实施方式中,所述组装模块还用于根据所述参数映射模块,确定与所述完成复用的方程组求解器具有调用关系的预设参数映射模块中的参数映射功能,以使对所述完成复用的方程组求解器的参数映射功能进行装配;和/或根据所述稀疏矩阵数据格式转换模块,确定与所述完成复用的方程组求解器具有调用关系的预设稀疏矩阵数据格式转换模块中的稀疏矩阵数据格式转换功能,以使对所述完成复用的方程组求解器的稀疏矩阵数据格式转换功能进行装配。
本申请第三方面提供一种电子设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
本申请第四方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
本申请提供的技术方案可以包括以下有益效果:
本申请的技术方案,在开发适配器的过程中,将适配器解耦拆分为前端及后端,根据开发需求获取复用信息,利用复用信息对适配器开发过程中的数据结构体进行复用,从而有效减少适配器代码编写量,提升适配器开发过程的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细地描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本申请实施例示出的应用于大型稀疏矩阵求解器库适配器开发的数据处理方法的流程示意图;
图2是本申请实施例示出的应用于大型稀疏矩阵求解器库适配器开发的数据处理方法的另一流程示意图;
图3是本申请实施例示出的应用于大型稀疏矩阵求解器库适配器开发的数据处理装置的结构示意图;
图4是本申请实施例示出的应用于大型稀疏矩阵求解器库适配器开发的数据处理装置的另一结构示意图;
图5是本申请实施例示出的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
相关技术中,在每次的适配器开发过程中,一般只对两个数据源(求解器库)之间进行适配器开发,当出现新需求时,即使已存在适配器的两个数据源中的一方数据源发生改变,也需要重新进行适配器开发,代码编写量大,开发效率低,适配器开发过程扩展性较差。
针对上述问题,本申请实施例提供一种应用于数据适配器开发的数据处理方法,能够利用复用信息对适配器开发过程中的数据结构体进行复用,从而有效减少适配器代码编写量,提升适配器开发过程的效率。
应该理解,适配器一般用于两个大型稀疏矩阵求解器之间的数据转换,其中在本申请中,为了便于理解,将原求解器库定义为第一求解器库,待适配库定义为第二求解器库,其中适配器用于将第一求解器库数据转换为第二求解器库适配数据并利用第二求解器库进行计算工作。
需要说明的是,本申请中的第一求解器库及第二求解器库可以为但不限于:稀疏矩阵的直接法求解器库。例如,第一求解器库及第二求解器库可以为方程组直接法求解库。当然,本申请中的适配器还可以应用于其他类型的两个求解器库之间的数据适配。
以下结合附图详细描述本申请实施例的技术方案。
图1是本申请实施例示出的应用于大型稀疏矩阵求解器库适配器开发的数据处理方法的流程示意图。
参见图1,本申请的应用于大型稀疏矩阵求解器库适配器开发的数据处理方法,其中本申请将适配器解耦为具有前端及后端,适配器包括位于适配器前端并与第一求解器库对应的第一数据结构体,及位于适配器后端并与第二求解器库对应的第二数据结构体。另外需要说明的是,适配器前端用于与第一求解器库连接,适配器后端用于与第二求解器库连接,可以理解为适配器具有前端接口及后端接口,其中适配器器的前端接口用于与第一求解器库连接,适配器的后端接口用于与第二求解器库连接。
本申请的应用于数据适配器开发的数据处理方法包括:
S110,获取与待开发适配器对应的待处理方程组求解器适配器架构。
适配器的开发过程一般是针对两个求解器库之间进行的,其中将原求解器库视为前端库,将需要适配的目标求解器库视为后端库,在适配器开发过程中,会出现多种前端库适配同一种后端库需求或者同一前端库适配多种后端库的情况。在上述应用情况下,本申请已完成了适配器的架构,将不同求解器库变化的部分封装为接口,开发者只需对变化的部分进行开发,且通过解耦和封装,已开发的功能模块可被后续组装复用形成其他适配器,相对直接开发全新的适配器可以减少更多的代码编写量。
根据适配器开发需求选择与前端库或后端库任一方相关联的待处理方程组求解器适配器架构。
其中,相关联可以指的是获取的待处理方程组求解器适配器架构中,其前端的第一数据结构体或其后端的第二数据结构体与开发需求中的前端库或后端库任一方相同或不同但可适用。
当然,待处理方程组求解器适配器架构还可以是最近开发需求中所完成开发的适配器所使用的方程组求解器适配器架构。这样,在前面所述的多种前端库适配同一种后端库需求或者同一前端库适配多种后端库的情况下,获取的待处理方程组求解器适配器架构与当前的开发需求存在关联。
S120,获取复用信息,根据复用信息设置待处理方程组求解器适配器架构前端的第一数据结构体和/或待处理方程组求解器适配器架构后端的第二数据结构体,得到完成复用的方程组求解器适配器架构。
复用信息可以指的是待处理方程组求解器适配器架构中可以复用于当前开发需求的数据结构。其中数据结构可包括但不限于数据结构体、参数映射模块、稀疏矩阵数据格式转换模块、调用关系。
获取待处理方程组求解器适配器架构的复用信息后,根据复用信息对待处理方程组求解器适配器架构前端的第一数据结构体和/或待处理方程组求解器适配器架构后端的第二数据结构体进行更替。
例如,只对待处理方程组求解器适配器架构前端的第一数据结构体进行更替。例如,只对待处理方程组求解器适配器架构后端的第二数据结构体进行更替。又例如,对待处理方程组求解器适配器架构前端的第一数据结构体和待处理方程组求解器适配器架构后端的第二数据结构体同时进行更替。
S130,根据第一数据结构体的第一参数及第二数据结构体的第二参数,确定第一求解器库与第二求解器库之间的参数映射模块。
可以理解,根据复用信息对第一数据结构体或第二数据结构体进行更替后,第一数据结构体与第一求解器库对应,第二数据结构体与第二求解器库对应。其中,类是面向对象程序设计实现信息封装的基础,类是一种用户定义的引用数据格式,也称类类型,每个类可以包含数据说明和一组操作数据或传递消息的函数。第一数据结构体与第一求解器库对应可以指的是,第一数据结构体可以是与第一求解器库对应的前端类;第二数据结构体与第二求解器库对应可以指的是,第二数据结构体可以是与第二求解器库对应的后端类。
S140,根据第一数据结构体的第一稀疏矩阵数据格式及第二数据结构体的第二稀疏矩阵数据格式,确定第一求解器库与第二求解器库之间的稀疏矩阵数据格式转换模块。
第一稀疏矩阵数据格式及第二稀疏矩阵数据格式可以指的是求解器库所支持处理的稀疏矩阵数据格式,即第一稀疏矩阵数据格式为第一求解器库支持的稀疏矩阵数据格式,第二稀疏矩阵数据格式为第二求解器库支持的稀疏矩阵数据格式。
其中,第一稀疏矩阵数据格式及第二稀疏矩阵数据格式可以为矩阵稀疏矩阵数据格式,例如第一稀疏矩阵数据格式及第二稀疏矩阵数据格式为稀疏矩阵格式中的坐标格式、压缩稀疏行格式、压缩稀疏列格式中的任一种。当然,还可以是坐标格式、压缩稀疏行格式、压缩稀疏列格式以外的稀疏矩阵格式。例如现存求解器库有A库、B库、C库,其中A库支持坐标格式的数据,B库支持压缩稀疏行格式的数据,C库支持压缩稀疏列格式的数据。
S150,根据完成复用的方程组求解器适配器架构、参数映射模块及稀疏矩阵数据格式转换模块进行组装,得到目标适配器。
在获取第一求解器库及第二求解器库之间的参数映射模块及稀疏矩阵数据格式转换模块后,根据完成复用的方程组求解器适配器架构以及上述获取的参数映射模块和稀疏矩阵数据格式转换模块进行组装,以实现获取适用于第一求解器库及第二求解器库之间数据适配的目标适配器。
在该实施例中,本申请的技术方案,在开发适配器的过程中,将适配器解耦拆分为前端及后端,根据开发需求获取复用信息,利用复用信息对适配器开发过程中的数据结构体进行复用,从而有效减少适配器代码编写量,提升适配器开发过程的效率。
图2是本申请实施例示出的应用于大型稀疏矩阵求解器库适配器开发的数据处理方法的另一流程示意图。
参见图2,本申请的应用于数据适配器开发的数据处理方法,其中本申请将适配器解耦为具有前端及后端,适配器包括位于适配器前端并与第一求解器库对应的第一数据结构体,及位于适配器后端并与第二求解器库对应的第二数据结构体。另外需要说明的是,适配器前端用于与第一求解器库连接,适配器后端用于与第二求解器库连接,可以理解为适配器具有前端接口及后端接口,其中适配器器的前端接口用于与第一求解器库连接,适配器的后端接口用于与第二求解器库连接。
本申请的应用于大型稀疏矩阵求解器库适配器开发的数据处理方法包括:
S210,获取与待开发适配器对应的待处理方程组求解器适配器架构。
根据适配器开发需求选择与前端库或后端库任一方相关联的待处理方程组求解器适配器架构。
S220,获取当前适配信息及历史适配信息,根据历史适配信息及当前适配信息确定复用信息。
其中历史适配信息指的是历史开发需求中所要进行适配的两个求解器库信息,当前适配信息指的是当前开发需求中所要进行适配的两个求解器库信息,应该理解,通过比对历史适配信息及当前适配信息,可以判断出相邻两次适配器开发需求中的相同信息或相似信息。
例如,现存求解器库有A库、B库、C库,其中历史适配信息存在将A库适配B库,而当前适配信息为A库适配C库,可见上述两次开发需求中前端库是相同的,根据上述相同点可以确定复用信息。
根据历史适配信息及当前适配信息比对,可以确定复用信息。
在一些实施方式中,复用信息可以至少包括第一子复用信息、第二子复用信息、第三子复用信息。其中第一子复用信息可以用于确定第一数据结构体及第二数据结构体的复用,第二子复用信息可以用于确定第一数据结构体的第一参数及第二数据结构体的第二参数的复用,第三子复用信息可以用于第一数据结构体的第一稀疏矩阵数据格式及第二数据结构体的第二稀疏矩阵数据格式的复用。需要说明的是,当不存在复用情况时,对应的复用信息可以为空值。
S230,根据第一子复用信息更替待处理方程组求解器适配器架构前端的第一数据结构体和/或待处理方程组求解器适配器架构后端的第二数据结构体。
获取待处理方程组求解器适配器架构的第一子复用信息后,根据第一子复用信息对待处理方程组求解器适配器架构前端的第一数据结构体和/或待处理方程组求解器适配器架构后端的第二数据结构体进行更替。
例如,现存求解器库有A库、B库、C库,历史适配信息为将A库(第一求解器库)适配B库(第二求解器库),而当前适配信息为A库(第一求解器库)适配C库(第二求解器库),则第一子复用信息可以包括对待处理方程组求解器适配器架构前端且与A库对应的功能类(第一数据结构体)复用信息。
又例如,现存求解器库有A库、B库、C库,历史适配信息为将A库(第一求解器库)适配B库(第二求解器库),而当前适配信息为C库(第一求解器库)适配B库(第二求解器库),则第一子复用信息可以包括对待处理方程组求解器适配器架构后端且与B库对应的功能类(第二数据结构体)复用信息。
S240,根据第二子复用信息确定第一数据结构体的第一参数及第二数据结构体的第二参数。
根据第二子复用信息确定第一数据结构体的第一参数及第二数据结构体的第二参数。其中,第二子复用信息可以是确定第一数据结构体的第一参数被复用,或者,确定第二数据结构体的第二参数的复用,或者确定第一数据结构体的第一参数及第二数据结构体的第二参数均被复用,又或者,确定第一数据结构体的第一参数及第二数据结构体的第二参数均不被复用。
可以理解,当数据结构体被复用后,则对应第一求解器库或第二求解器库的参数相同。换句话说,第二子复用信息可以是与第一子复用信息关联的,即第一子复用信息中对应的数据结构体被复用时,则对应数据结构体的参数也被复用。
S250,根据第一数据结构体的第一参数及第二数据结构体的第二参数,确定第一求解器库与第二求解器库之间的参数映射模块。
根据第一数据结构体的第一参数及第二数据结构体的第二参数,确定出第一求解器库与第二求解器库之间的参数映射模块。
在一些实施方式中,其中第一参数与第二参数为相同类型的参数。例如,第一参数和第二参数可以是数据结构体中的算法参数。
在另一些实施方式中,参数映射模块种类可以根据第一参数及第二参数对应的参数种类确定,例如第一参数及第二参数为算法参数时,则参数映射模块则为第一求解器库与第二求解器库之间的算法参数映射模块。
在一些实施方式中,参数映射模块采用超集存储的方式存储求解器库的所有参数,也就是说,参数映射模块中对第一求解器库的参数及第二求解器库的参数存储为采用超集方式存储。
例如,第一求解器库使用了a、b、c参数,第二求解器库使用了b、c、d参数,则预设参数映射模块存储的参数列表为a、b、c、d,从第一求解器库适配到第二求解器库时,参数b和参数c将被传递,参数a将被抛弃(第二数据可无法提供该功能),而参数d将被赋值为默认值(第一求解器库不可能使用该功能),这样每个库只需要分别实现自己部分的参数的映射即可。
需要说明的是,第一参数及第二参数均可以是一种或一种以上的参数。
S260,根据第三子复用信息确定第一数据结构体的第一稀疏矩阵数据格式及第二数据结构体的第二稀疏矩阵数据格式。
根据第三子复用信息确定第一数据结构体的第一稀疏矩阵数据格式及第二数据结构体的第二稀疏矩阵数据格式是否可以复用。
可以理解,数据结构体可以支持一种或一种以上的稀疏矩阵数据格式。在更替第一数据结构体及第二数据结构体中的任一方后,更替后的数据结构体与未更替的数据结构体之间可以存在支持相同或相似的稀疏矩阵数据格式,这样,可以复用更替之前数据结构体的稀疏矩阵数据格式,以达到无需更换第一求解器库与第二求解器库之间的稀疏矩阵数据格式转换模块。
例如,现存求解器库有A库、B库,其中设A库支持压缩稀疏行格式的数据,B库支持B1格式(B1格式可以为一种与压缩稀疏行格式相似的稀疏矩阵格式)和压缩稀疏列格式,第一求解器库为A库,当第一求解器库变为B库,且第二求解器库未发生改变,这样,第一求解器库变为B库后可以复用压缩稀疏行格式的数据,即第一数据结构体可以复用第一稀疏矩阵数据格式。
S270,根据第一数据结构体的第一稀疏矩阵数据格式与预设中间稀疏矩阵数据格式确定第一双向映射模块,以及根据第二数据结构体的第二稀疏矩阵数据格式与预设中间稀疏矩阵数据格式确定第二双向映射模块。
其中预设中间稀疏矩阵数据格式可以指的适配器中预设的中间稀疏矩阵数据格式,第一求解器库与第二求解器库之间进行稀疏矩阵数据格式转换时,只需要将两者各自的稀疏矩阵数据格式转换成中间稀疏矩阵数据格式,这样,利用预设中间稀疏矩阵数据格式分别与第一求解器库及第二求解器库进行稀疏矩阵数据格式转换,从而将第一稀疏矩阵数据格式和第二稀疏矩阵数据格式实现解耦,并组装实现稀疏矩阵数据格式转换功能。
例如,现存求解器库有A库、B库,中间稀疏矩阵数据格式为坐标格式,第一求解器库为A库,支持压缩稀疏行格式,第二求解器库为B库,支持压缩稀疏列格式,则每个库只需要分别实现自己支持的稀疏矩阵数据格式和坐标格式的相互转换即可完成与所有格式的转换,如第一求解器库为A库时,实现压缩稀疏行格式与坐标格式转换,第二求解器库为B库时,实现压缩稀疏列格式与坐标格式转换。
S280,根据第一双向映射模块及第二双向映射模块组装形成第一求解器库与第二求解器库之间的稀疏矩阵数据格式转换模块。
通过分别实现第一稀疏矩阵数据格式与预设中间稀疏矩阵数据格式之间转换的第一双向映射模块,以及实现第二稀疏矩阵数据格式与预设中间稀疏矩阵数据格式之间转换的第二双向映射模块,进行组装形成第一求解器库与第二求解器库之间的稀疏矩阵数据格式转换模块。这样,利用第一求解器库的数据及第二求解器库的数据分别与预设中间稀疏矩阵数据格式之间的数据转换关系,从而实现确定第一求解器库与第二求解器库之间的稀疏矩阵数据格式转换关系。
S290,根据完成复用的方程组求解器适配器架构、参数映射模块及稀疏矩阵数据格式转换模块进行组装,得到目标适配器。
在获取第一求解器库及第二求解器库之间的参数映射模块及稀疏矩阵数据格式转换模块后,根据完成复用的方程组求解器适配器架构以及上述获取的参数映射模块和稀疏矩阵数据格式转换模块进行组装,以实现获取适用于第一求解器库及第二求解器库之间数据适配的目标适配器。
在一些实施方式中,还可以根据获取与待开发适配器对应的管理器代码,在得到目标适配器后组成与该目标适配器对应的管理器。其中,该管理器用于对目标适配器进行注册、激活或切换。
利用管理器可以实现动态管理适配器,并且可以灵活打包一个或多个适配器。
在该实施例中,本申请的技术方案,将适配器的参数映射功能及稀疏矩阵数据格式映射功能分别提取为单独模块,以实现可以根据需求对参数映射功能或稀疏矩阵数据格式转换功能进行复用,从而实现减少开发过程中的编写代码量,进而提升适配器的开发效率。
与前述应用功能实现方法实施例相对应,本申请还提供了一种应用于数据适配器开发的数据处理装置、电子设备及相应的实施例。
图3是本申请实施例示出的应用于数据适配器开发的数据处理装置的结构示意图。
参见图3,应用于数据适配器开发的数据处理装置,适配器包括位于适配器前端并与第一求解器库对应的第一数据结构体,及位于适配器后端并与第二求解器库对应的第二数据结构体,该数据处理装置包括获取模块310、更替模块320、参数映射确定模块330、稀疏矩阵数据格式转换确定模块340、组装模块350。
获取模块310,用于获取与待开发适配器对应的待处理方程组求解器适配器架构。
更替模块320,用于获取复用信息,根据复用信息更替待处理方程组求解器适配器架构前端的第一数据结构体和/或待处理方程组求解器适配器架构后端的第二数据结构体,得到完成复用的方程组求解器适配器架构。
在一些实施方式中,复用信息包括:第一子复用信息,更替模块320可以根据第一子复用信息更替待处理方程组求解器适配器架构前端的第一数据结构体和/或待处理方程组求解器适配器架构后端的第二数据结构体。
参数映射确定模块330,用于根据第一数据结构体的第一参数及第二数据结构体的第二参数,确定第一求解器库与第二求解器库之间的参数映射模块。
在一些实施方式中,复用信息包括:第二子复用信息,参数映射确定模块330可以根据第二子复用信息确定第一数据结构体的第一参数及第二数据结构体的第二参数;根据第一数据结构体的第一参数及第二数据结构体的第二参数,确定第一求解器库与第二求解器库之间的参数映射模块。
稀疏矩阵数据格式转换确定模块340,用于根据第一数据结构体的第一稀疏矩阵数据格式及第二数据结构体的第二稀疏矩阵数据格式,确定第一求解器库与第二求解器库之间的稀疏矩阵数据格式转换模块。
在一些实施方式中,复用信息包括:第三子复用信息,稀疏矩阵数据格式转换确定模块340可以根据第三子复用信息确定第一数据结构体的第一稀疏矩阵数据格式与及第二数据结构体的第二稀疏矩阵数据格式;根据第一数据结构体的第一稀疏矩阵数据格式与预设中间稀疏矩阵数据格式的第一双向映射模块,以及第二数据结构体的第二稀疏矩阵数据格式与预设中间稀疏矩阵数据格式的第二双向映射关系,复用并组装形成第一求解器库与第二求解器库之间的稀疏矩阵数据格式转换模块。
组装模块350,用于根据完成复用的方程组求解器适配器架构、参数映射模块及稀疏矩阵数据格式转换模块进行组装,得到目标适配器。
图4是本申请实施例示出的应用于大型稀疏矩阵求解器库适配器开发的数据处理装置的另一结构示意图。
参见图4,在一些实施方式中,应用于大型稀疏矩阵求解器库适配器开发的数据处理装置还包括:复用判断模块360,用于获取当前适配信息及历史适配信息,根据历史适配信息及当前适配信息确定复用信息。
在该实施例中,本申请的技术方案,在开发适配器的过程中,将适配器解耦拆分为前端及后端,根据开发需求获取复用信息,利用复用信息对适配器开发过程中的数据结构体进行复用,从而有效减少适配器代码编写量,提升适配器开发过程的效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
图5是本申请实施例示出的电子设备的结构示意图。
参见图5,电子设备1000包括存储器1010和处理器1020。
处理器1020可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。
- 一种光学元件柔性支撑与面形精度提升方法
- 一种光学反射镜柔性支撑结构及调整方法
- 一种具有背部柔性支撑结构的大口径光学反射镜