修改linpack源程序时遇到的各种问题.

本文介绍了在修改linpack源代码时遇到的挑战,特别是对Makefile的理解。从Makefile的层次结构到变量的包含,再到make命令的执行过程,详细剖析了如何从Makefile到生成可执行文件xphl。主要步骤包括Make.top和Make.test的交互、文件路径的创建、库文件的构建以及main函数所在的HPL_pddriver.c。同时,强调了MPI通信相关代码在comm和grid文件夹中的重要性,对于linpack源码的修改和优化具有指导意义。
摘要由CSDN通过智能技术生成
  1. Main函数在哪里? 对Makfile文件不是特别熟悉了解, 代码发布者把makefile文件写得很有层次感, 很嵌套,让人找起来很费时, 刚开始看到复杂的Makefile文件一脸懵逼. 觉得随便找找看可能更方便, 然而linpack中的HPL中生成的可执行文件为xphl, 别说同名的就类似的.c文件都没有, 作为一个习惯了在上层高级语言编程,习惯了使用IDE的老一代C#码农来说, linux下的C开发缺少类似的项目管理工具, 很不适应.
    返回头来, 从Makefile 文件中,发现hpl目录下有两个makefile文件,一个是Make.top, 另一个是Make.test, 即我们之前编辑的arch架构为test的对应文件. 其中在前者中

include了后者, 所以后者中定义的变量, 在前者也是可见的.

而在Makefile中通过make –f 的方式,指定make指令执行的哪一个makefile文件。
这里写图片描述
你看,你看,这里用的是Make.top
总体看就是make时,Makefile->Make.top->Make.test
这套的,你只能感觉:嗯……逻辑层次很强,
Makefile.test文件中定义了一些后面会用到的变量: 如目标架构名称:
这里写图片描述
HPL相关的各种路径 :这里写图片描述
MPI的相关路径 :这里写图片描述
数学库BLAS的路径:这里写图片描述
编译器的路径:这里写图片描述
这里写图片描述
2. Make的 command是:make arch=test
这里的arch=test实际上是给变量arch赋值为test,会作用到Makefile中,因为Makefile文件中有用到这个arch变量。
这里写图片描述
这里的install依赖 startup refresh build 三项。
而startup由之后的命令生成。Make –f命令后指定了执行的是Make.top文件中的
Startup_dir 项,并且参数项
这里写图片描述
将arch的值传递到Make.top中的arch中那么我们现在转到Make.top中的这里写图片描述
项,如下:
这里写图片描述
意为在创建相关的文件夹路径,包括在include下创建test目录,创建lib目录并在lib目录下创建test目录,创建bin目录,并在bin目录下创建test目录。
接下来是这里写图片描述

刚开始不明白leaf是什么意思,以为是make相关命令还是什么,楞查也没查到,在Make.top文件后面发现

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值