开发者
资源
强力推荐一款HPC高效部署调优工具!
强力推荐一款HPC高效部署调优工具!
发表于2023/09/06
1.6k6

HPCRunner : 贾维斯智能助手

源码获取地址:https://gitee.com/openeuler/hpcrunner

    今天浅谈使用贾维斯工具安装应用的心得感受,总得来说,非常便于二次部署调优,自动式安装可以大大提升效率。下文以WRF的一个数据处理工具WPS部署来展开演示,因为WPS需要基于安装WRF成功下部署,首先得安装WRF,我这里是利用bisheng编译器+hmpi通信库基于openblas、scalapack以及fftw安装WRF,如果手动编译来说,可能就相当于需要编译7次,其中hmpi编译还挺久,那么利用贾维斯工具非常方便快捷,写成一个template直接一键式安装,如果中间有错误,会立马停下来告知哪个环节错误。话不多说,下面开始演示下安装过程。

    首先,去gitee把贾维斯工具下载到服务器上,多种方式下载,git clone或者wget等都可以下载,你会发现贾维斯下有很多目录,当然这些目录名称都不难理解,在gitee上也有相应说明,这些目录是做什么的,用于存放些什么东西。下载后首次使用需要初始化贾维斯工具环境变量,直接source ./init.sh就行。那么安装一款应用,依我个人理解,重心是写好这个templates,其次在用贾维斯命令去调用安装。那么,怎么写这个template,对于初次使用,无非就是照葫芦画瓢,我这里编译是wrf4.2+wps4.1,wrf4.2是参考现有的编译方式

https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/prtg-osc/openmind_kunpengwrf_02_0012.html

从它的依赖编起

cke_11618.png

前面的[SERVER],指的是节点,我是在单节点上部署,所以就无关紧要,[DOWNLOAD]指的是该应用的软件包下载地址,写进去就是一键式下载,如果链接失效,部署时还是提示,如果包存在了也会提示,非常nice的一点。[DEPENDENCY]这里罗列了WRF和WPS的依赖,可能你会对./jarvis -install XXX/XXX xxx这里表示疑问,这里就是单单安装某个软件(包括但不限于编译器、通信库、基础库、依赖、简单软件等等)然后一连串的./jarvis -install就可以一键式的把wrf和wps的依赖都部署好,关于./jarvis -install如何使用,gitee也有文档说明,也是非常容易理解。

cke_13238.png

然后[ENV]指的是当安装好相关的依赖后,我们需要给安装WRF和WPS注入环境变量,加载到系统中,贾维斯工具都是采用module的管理方式,非常便捷。接下来是安装主应用,重头戏来了,

cke_14682.png

[APP]这里是规划了安装的目录,[BUILD]里面写的如何编译WRF和WPS的,其中有一些细节,${JARVIS_某某某}这些变量都是贾维斯的初始化后设定好的,我们直接引用,不需要自己敲一大串路径。关于编译过程中需要修改源码,我们可以采用sed命令直接更改,这里可能需要大家对sed命令熟悉,简单修改的可能比较好使,如果对于大批量的修改,建议大家还是写好后,直接复制进去。整体来说,你从这个[BUILD]中可以看到你的编译全过程,把所有编译的命令都一层接一层的执行下来,对比手动编译,省去了各组件中间编译的空隙时间。尤其对于有些同学需要在别的环境二次部署,非常的快捷。

那么整个template已经写好了,同学们有个疑问就是怎么去调用这里面一系列的安装呢?首先需要./jarvis -use 这个template 

cke_16085.png

会提示现在已经成功加载该template,然后./jarvis -d一键式下载软件包

cke_17443.png

因为我这里已经提前下载了包,它会检测到已经存在,就提示already DOWNLOAD

然后就是安装依赖./jarvis -dp

cke_18763.png

这里如果是系统中没有安装的话,它会按照你template上写的依赖逐个安装,中途要是有错误,会停止,此时你需要去检查是哪个依赖编译有问题也很快定位出来,最后所有的安装好后,会提示successfully,然后最后一步就是./jarvis -b去调用[BUILD]里面的所有命令,至此整个应用已经安装完成了。不得不说,贾维斯工具的举世真的大大提升了部署应用的效率,尤其在HPC行业,很多应用光是手动部署都不简单,甚至有些应用光依赖都上十个。同时也方便了使用不同编译器等部署。以上就是我使用贾维斯工具的心得感受,最后还是推荐大家体验体验!

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞