补充上篇博客没有提到的内容,方便更完善的构建C++程序。
阅读更多
最近在做后处理功能的开发,由于开发有计算效率上的要求,所以学习了一下怎么对程序性能进行分析。这里使用gperftools是因为它能统计部分代码的效率。相比与其他性能分析工具,gperftools有Profiling速度快,灵活性较高的优点。
由于项目需要使用CMake,对CMake一窍不通的我开始一边查资料一边写CMake。不得不说,CMake的中文资料真的不多,CMake有大量的变量和函数,很容易看的一头雾水。
在看了很多的资料后,建议有时间直接看官方的文档进行学习。
这里记录一些我写的CMake脚本和注解,提供给入门新手学习。
MPI一般用于不同的计算节点之间的并行,而OpenMP常用于在一台多核心服务器上的并行,两者都能够实现并行的功能,OpenMP和MPI混合编程是常见的使用方式。而我们在本地开发调试时,往往使用一台多核的服务器对MPI和OpenMP进行调试,在调试过程中会遇到这么一个问题:如何为程序分配MPI线程和OpenMP线程?
mpi4py是sysumoc程序使用的必备模块,它的编译安装有着严格的要求。默认情况下,编译sysumoc所链接的MPI库和编译mpi4py所链接的MPI库需要是同一个MPI库,否则程序就会无法运行。在超算上普通用户没有root权限,甚至会无法连接网络,所以会从源码编译安装mpi4py就非常重要。