鲲鹏众智--bamtools、eigensoft、FALCON三款软件迁移至OpenEuler系统实践心得分享
收藏回复举报
鲲鹏众智--bamtools、eigensoft、FALCON三款软件迁移至OpenEuler系统实践心得分享
发表于2022-10-25 22:23:12
0 查看

自己非常荣幸能够在兰州大学超算中心学习并参与到华为鲲鹏众智计划这个项目当中,在这个过程中自己感受颇多,获益匪浅,从项目任务和心得体会两个方面进行分享总结。

一、项目任务

     在这个项目中,自己负责的工作主要如下:

  1.    负责对bamtools、eigensoft以及FALCON这3款HPC涉及到生物科学类的软件移植、性能测试,让其在openEuler平台上的性能与X86平台进行对比。
  2.    对3款软件脚本的编写,可以实现一键编译、一键部署等功能。
  3.    与华为工作人员进行文件交付对接,提交PR,根据意见修改交付文件以及后期维护。

二、心得体会

      1.    扩展交叉学科领域学习

     通过这个项目,自己主要是对eigensoft、bamtools、falcon这3款软件有了一定的了解,对其主要的功能和算例运行进行了熟悉,在HPC领域方面的交叉学科,自己扩大了其他领域的见识;同时,在生命科学类及分子动力学的软件在生物超大规模上的计算有了进一步的认识,在软件当中的这些案例也体现了我们这个项目的价值,对科研工作者确确实实科研提供更有效的计算和价值。

       2.    熟悉Linux命令、git工作流以及shell脚本

      在该项目中,自己再次对Linux命令有了更加深入的学习,能够更加熟练的使用Linux命令去进行常见的工作,同时在这个项目过程中对使用到的Anaconda软件有了一定的了解,它是一款非常方便的集合软件,能够帮助我们自动的配置大多数软件所依赖的环境,非常的便利、十分快捷,自己以后在配置其他软件的依赖提供了一种新的思路。

在项目交付过程中,华为工作人员需要我们用在openEuler社区上进行提交文件,在这一过程中,自己更加熟悉了git工作流的管理和相关指令的学习,实现了git提交到本地仓库到提交PR的完整工作流程。

      在编写一键式部署和编译软件时,自己在本科所学习到的shell脚本学以致用,编写shell脚本文件,完整的展示了一款软件的执行过程,对自己的编程能力得到了提升,真正将所学知识应用到实际项目到中,这种项目经历和实践机会也是非常难得的。

      3.    深入了解行业发展

     在接触到华为的众智计划之后,自己也慢慢从这个项目了解到国家需要我们自主研发的平台,需要我们自己的系统平台去慢慢扩展和成长,在x86平台成熟的情况下,我们需要去将软件以国产化平台进行展示。华为的计算产品也正在逐步解决这样的问题,所以也就有了这样的计划和项目,让我们高校学生有机会参与进来,我切实也感觉到了这是一种高瞻远瞩的眼光,虽然这也仅仅是开始,将国产化产品推广还需要很长的道路,但我也相信这是有效的,切实可行的。“路漫漫其修远兮”,自己在未来以后的规划有着很大的启发,在华为这样的大公司下我看到了他们的平台,看到了领导者的思维,自己也非常有幸能够和华为优秀的员工进行对接,在这个过程中学习到了很多。

       4.    提高解决问题能力

      在对3款eigensoft、bamtools、FALCON软件进行移植过程中,并不是一帆风顺的,在移植过程中出现依赖库不匹配,编译出错、语法不兼容等问题,但最终查阅资料得以解决。例如,在FALCON这款软件的移植过程中,软件本身限定了python2版本,故使用python3版本则会出现错误,同时阅读 README文件,官方推荐使用Anaconda软件来进行相关依赖的配置,自己也采纳了意见,并且得到了解决。再进一步的编译过程中又遇到了NIM语言版本的问题,自己不断的尝试版本,最终得以寻找到合适的版本才能解决语言不兼容问题,当然,在这个过程中之后不断的去尝试才能得到最优方案,也就是使用Anaconda解决python环境依赖,NIM合适的版本等等解决方案,在官网上寻找合适算例进行测试才得以将软件完整的部署及测试,这一过程中不断的提高自己解决问题的能力。在编写shell脚本中,自己也发现了以前学习过程中存在的错误,对shell脚本的编程有了进一步的提高,用逻辑思维去查看报错的原因,在网上查阅相关文档及经验进行逐步解决。

      5.    扩展性能优化手段

     在这个过程当中,我们对于x86平台,大多数软件时优于x86平台,在某些算例当中,我们进行了一系列的优化。通过对实际的算例,我们通过运行时长或者实际的性能指标进行对比,找出其中的差距之后,在CPU利用率、MPI通信上、编译参数等过程中进行探索,将移植openEuler系统上软件尽可能的最大化实现其价值。同时,我们也采用了额外的性能调优工具进行性能分析,帮助优化,在实际中运行算例中得到体现,但对于软件底层的源代码优化这方面自己还有所欠缺,需要在后面的学习进一步探索。

       6.    总结移植技巧与经验

       在这个项目当中,我们除了自己手动的进行软件迁移实现,还对华为自研的DevKit软件工具进行了使用,这个工具在实验源码迁移的时候可以提供一些建议,在某些时候可以避免我们走“弯路”。在移植过程中,首先阅读软件中的README文件,对软件有一个了解,如何去编译,如何去部署,如何去运行算例等等相关的重要信息。其次借助工具给出的建议以及实际情况进行依赖的选择和编译下载,相对于第一次的华为众智项目而言,这一次的移植过程变得更加的熟练和掌握了些许技巧。这也是自己无论以后学习还是工作都可以借鉴的一种方式和方法。

                                                                                 兰州大学:胡涛

                                                                                 指导老师:张洋老师,陈文波老师

本帖最后由 匿名用户2023/11/17 15:14:38 编辑

我要发帖子