System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于申威处理器的Code_Saturne移植方法及系统技术方案_技高网

基于申威处理器的Code_Saturne移植方法及系统技术方案

技术编号:40488119 阅读:6 留言:0更新日期:2024-02-26 19:19
本发明专利技术公开了一种基于申威处理器的Code_Saturne移植方法及系统,包括:对Code_Saturne进行改进,包括configure的改写、获取euid代码的修改及依赖库的动态连接;对改进后的Code_Saturne进行编译,生成可执行文件;在申威处理器上运行生成的可执行文件。解决了申威处理器上常见的库在configure有时检测不到具体位置的问题,避免了编译时找不到库文件或链接时出现错误;解决了申威处理器和x86机器使用不同的动态链接器时导致在运行时无法找到依赖的库的问题;还解决了软件在申威处理器上无法正确获取系统号以及即使获取系统号也没有对应的并行策略而导致运行时出现的问题和计算节点宕机的问题。

【技术实现步骤摘要】

本专利技术涉及计算机处理,特别是涉及一种基于申威处理器的code_saturne移植方法及系统。


技术介绍

1、本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。

2、申威处理器作为一款处理器,然而,许多常用的应用软件往往不适用于申威处理器的高效运行,因此需要进行大量的移植优化工作。成功地进行移植是优化工作的第一步,只有当应用程序能够成功编译和运行时,才能开始下一步的优化工作。code_saturne是为工程师和科学家提供一个强大的工具来解决各种流体力学问题。code_saturne主要功能有流体流动模拟、传热分析、湍流模拟、多相流模拟、网格生成和后处理等功能模块为一体。目前神威集群有解决流体力学问题的软件,但都是都是单一的功能模块或是单一问题类型,code_saturne这种综合性的流体力学软件暂时空缺,因此移植意义较大。

3、对于code_saturne软件来说,使用原有的编译方式存在两个问题。第一个问题是:无法成功编译该软件。第二个问题是:即使编译通过,运行时也可能导致计算节点宕机。因此,需要找到一种适合在申威处理器上编译code_saturne的方式。code_saturne主要是c语言编写,采用configure是一个脚本工具,根据系统环境和用户需求生成makefile。申威处理器的神威集群一般的架构是登录节点是x86机器的常见机器,计算节点是申威处理器。因此需要交叉编译,而在现有技术中,因为软件并不适用申威处理器,所以在configure要明确给出架构名和必要的参数选项,生成完makefile后,执行make后也会出现报错,如找不到特定的库,不能动态连接等,在运行时也会由于获取不到系统号导致卡住,甚至导致计算节点宕机严重问题。


技术实现思路

1、为了解决上述问题,本专利技术提出了一种基于申威处理器的code_saturne移植方法及系统,通过对code_saturne进行改进和编译,得到可执行文件,使其能够在申威处理器上运行。

2、为了实现上述目的,本专利技术采用如下技术方案:

3、第一方面,本专利技术提供一种基于申威处理器的code_saturne移植方法,包括:

4、对code_saturne进行改进,包括configure的改写、获取euid代码的修改及依赖库的动态连接;

5、对改进后的code_saturne进行编译,生成可执行文件;

6、在申威处理器上运行生成的可执行文件。

7、进一步的技术方案,所述code_saturne中包括主文件夹、libgfortran.a文件、ld_library_path环境变量、cs_system_info.c文件和”.o”文件;所述编译过程中生成libsaturne.a库文件。

8、进一步的技术方案,configure的改写具体为:先在code_saturne主文件夹下创建存放外部库的文件夹externallib,再将libgfortran.a文件拷贝进入externallib,然后将其加入ld_library_path环境变量中。

9、进一步的技术方案,获取euid代码的修改具体为:将cs_system_info.c文件中409行的pwd_user赋值为空。

10、进一步的技术方案,依赖库的动态连接采用”先链接再拆开再链接”的方式,具体为:先链接是通过编译正常生成libsaturne.a文件,再拆开是将libsaturne.a和libgfortran.a用swar命令拆开为各种”.o”文件,再链接是将拆开得到的”.o”文件使用swar链接成libsaturne.a文件。

11、进一步的技术方案,configure的改写前需要先书写合适的configure选项。

12、进一步的技术方案,所述code_saturne中还包括--disable-shared和--enable-static,用于编译文件。

13、第二方面,本专利技术提供一种基于申威处理器的code_saturne移植系统,包括:

14、code_saturne改进模块,被配置为:对code_saturne进行改进,包括configure的改写、获取euid代码的修改及依赖库的动态连接;

15、编译模块,被配置为:对改进后的code_saturne进行编译,生成可执行文件;

16、运行模块,被配置为:在申威处理器上运行生成的可执行文件。

17、与现有技术相比,本专利技术的有益效果为:

18、本专利技术解决了申威处理器上常见的库在configure有时检测不到具体位置的问题,避免了编译时找不到库文件或链接时出现错误;解决了申威处理器和x86机器使用不同的动态链接器时导致在运行时无法找到依赖的库的问题;还解决了软件在申威处理器上无法正确获取系统号以及即使获取系统号也没有对应的并行策略而导致运行时出现的问题和计算节点宕机的问题。

19、本专利技术成功地将code_saturne在申威处理器上进行了编译和运行,填补了神威集群在综合性流体力学问题软件方面的空白。code_saturne是一款功能强大的流体力学仿真软件,它提供了广泛的模拟和分析功能,能够模拟和研究各种复杂的流体流动现象。它的成功编译和运行为国内使用国产集群的流体力学研究和工程实践带来了更多的选择性,可用于航空航天、能源、环境、水利等领域。解决方案的实际操作并不复杂,为在申威处理器上进行安装使用或进行程序优化提供了方便的安装方案,从而大大减少了安装时间。为使用和优化都提供了坚实的基础。

本文档来自技高网...

【技术保护点】

1.一种基于申威处理器的Code_Saturne移植方法,其特征在于,包括:

2.如权利要求1所述的基于申威处理器的Code_Saturne移植方法,其特征在于,所述Code_Saturne中包括主文件夹、libgfortran.a文件、LD_LIBRARY_PATH环境变量、cs_system_info.c文件和”.o”文件;所述编译过程中生成libsaturne.a文件。

3.如权利要求2所述的基于申威处理器的Code_Saturne移植方法,其特征在于,configure的改写具体为:先在Code_Saturne主文件夹下创建存放外部库的文件夹externallib,再将libgfortran.a文件拷贝进入externallib,然后将其加入LD_LIBRARY_PATH环境变量中。

4.如权利要求2所述的基于申威处理器的Code_Saturne移植方法,其特征在于,获取euid代码的修改具体为:将cs_system_info.c文件中409行的pwd_user赋值为空。

5.如权利要求2所述的基于申威处理器的Code_Saturne移植方法,其特征在于,依赖库的动态连接采用”先链接再拆开再链接”的方式,具体为:先链接是通过编译正常生成libsaturne.a文件,再拆开是将libsaturne.a和libgfortran.a用swar命令拆开为各种”.o”文件,再链接是将拆开得到的”.o”文件使用swar链接成libsaturne.a文件。

6.如权利要求1所述的基于申威处理器的Code_Saturne移植方法,其特征在于,configure的改写前需要先书写合适的configure选项。

7.如权利要求1所述的基于申威处理器的Code_Saturne移植方法,其特征在于,所述Code_Saturne中还包括--disable-shared和--enable-static,用于编译文件。

8.一种基于申威处理器的Code_Saturne移植系统,其特征在于,包括:

9.一种计算机可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的基于申威处理器的Code_Saturne移植方法中的步骤。

10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的基于申威处理器的Code_Saturne移植方法中的步骤。

...

【技术特征摘要】

1.一种基于申威处理器的code_saturne移植方法,其特征在于,包括:

2.如权利要求1所述的基于申威处理器的code_saturne移植方法,其特征在于,所述code_saturne中包括主文件夹、libgfortran.a文件、ld_library_path环境变量、cs_system_info.c文件和”.o”文件;所述编译过程中生成libsaturne.a文件。

3.如权利要求2所述的基于申威处理器的code_saturne移植方法,其特征在于,configure的改写具体为:先在code_saturne主文件夹下创建存放外部库的文件夹externallib,再将libgfortran.a文件拷贝进入externallib,然后将其加入ld_library_path环境变量中。

4.如权利要求2所述的基于申威处理器的code_saturne移植方法,其特征在于,获取euid代码的修改具体为:将cs_system_info.c文件中409行的pwd_user赋值为空。

5.如权利要求2所述的基于申威处理器的code_saturne移植方法,其特征在于,依赖库的动态连接采用”先链接再拆开再链接”的方式,具体为:先链接是通...

【专利技术属性】
技术研发人员:陈彦言徐希豪刘辉
申请(专利权)人:济南超级计算中心有限公司
类型:发明
国别省市:

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

1