1.1.3 应用程序的编译、链接
源程序中如果引用使用了MPI定义,则需在编译和链接时链接到MPI库。MPI库在Linux和Mac上可以静态链接库和动态链接库两种形式存在。为简化链接过程,MPICH环境提供了形如mpicc、mpif90等编译脚本。
1.编译器
编译应用程序时,应尽量指定与编译和安装MPICH时所使用相同的编译器。可通过环境变量MPICH_CC,MPICH_CXX,MPICH_F77,MPICH_F90指定其编译器。通过命令mpich2version可查看安装MPICH过程所使用的命令,配置参数,编译器及编详选项等信息。
2.链接库
MPICH在各种平台上均支持静态链接,在lib/目录下保存了编译应用程序时可用的所有库(“*.a”文件)。编译源程序时,要在编译器的命令行指定包含“mpi. h/mpif, h”的include日录,以及链接库的位置,如“mpicc-I/home/users/hpc/zws/mpich2-1/include-L/home/users/hpc/zws/mpich2-1/lib-lmpich”。
3.与语言相关的特殊性
作为理论和实验之外的科学研究的第3种手段,高性能计算已经并将继续在科学和工程领域发挥越来越重要的作用。理科各专业、工程技术、经济管理、生物医学、社会科学乃至媒体艺术等各个领域都要用到高性能计算设施进行辅助研究和设计。清华大学高性能计算平台支持的校内各学科科研工作几乎涵盖了上述所有领域。
多核技术、集群技术、混合体系结构等技术都在飞速发展,特别是在近几年多核技术的快速发展和广泛应用,对应用软件的并行设计提出了更高挑战。实际执行计算任务的应用软件要能够充分挖掘硬件平台提供的计算能力,期望其能够对核间合作、CPU间合作,节点间合作具备适应和识别能力。我们在高性能计算平台的运行和教学过程中,深感并行软件的质量和效率在高性能计算中的重要作用。鉴于目前大部分高性能计算平台均提供MPI并行环境,高性能计算机的评测标准也基于MPI库制定,因此我们编写了这本基于MPI的并行计算技术教材,以期能够为工程技术人员、科研工作者的并行软件开发工作提供一定的帮助和指导。