2022第一次学习任务

2022第一次学习任务

内容比较多:)


A.环境配置

安装虚拟机(这部分我很早就完成了,具体步骤就不详细说明了)

  • 安装vm及Linux系统镜像

    这一部分步骤比较清晰,主要参考VMware虚拟机安装Ubuntu 2022最新版详细图文安装教程

    如果个人更倾向于CentOS系统镜像也可以选择CentOS

    两者的主要区别在于一些指令的使用上,比如CentOs中新建的普通用户是没有sudo权限的,

    如果想让普通用户拥有sudo权限需要在/etc/sudoers文件中添加用户的权限,而Ubuntu系统

    普通用户想要使用sudo权限 直接使用sudo +命令行的方式就可以了。还有一个就是在使用上

    Ubuntu比CentOS更美观,图形化更友好一点。

  • 安装Linux操作系统

    Ubuntu:https://zhuanlan.zhihu.com/p/141033713

    这里有一个要注意的地方是, 虚拟机创建的时候内存最好找一个空硬盘,大小在100GB以上,

    不然后面可能安装不下,若硬盘内存较小,建议安装时进行虚拟机磁盘手动分区,区别就在于增

    加了一个磁盘分区的步骤。

安装OneAPI

  • OneAPI是什么

    • 统一的开发工具组合和软件接口

    • 可以让开发人员在CPU、GPU、FPGA、AI加速器等计算机架构上实现高效开发、任意扩展。

  • 下载和安装OneAPI

    注意需要下载base Toolkit 与 HPC Toolkit 两个文件

    之后具体步骤参考Intel® oneAPI Base Toolkit+Intel® oneAPI HPC Toolkit安装教程

    • 下载完毕后,需要添加环境变量

      为避免每次使用都需要配置环境变量,可以将如图命令添加到~/.bashrc文件中。setvars.sh的具体路径以自己的为准

      source /opt/intel/oneapi/setvars.sh intel64

    环境变量加载信息如下:

    • 检验安装结果(只展示了icc)

    这样的话OneAPI就算安装成功了

B.实操部分

Linux基础入门

这一部分学习了一些Linux基础知识,基本上是一些命令的实操。下面列出几块相对常用的命令。

  1. 快捷键

  2. 安装、更新与卸载

    • 安装只需要执行以下指令

      sudo apt-get install htop

    htop是一款交互式进程软件

    • 更新软件源

      sudo apt-get update

    • 更新软件包

      sudo apt-get upgrade

    • 卸载前面的htop软件

      sudo apt-get remove htop

    • 可以一并删除配置文件

      sudo apt-get purge htop

  3. 查看文件权限

    • ls 命令不仅可以列出并显示当前目录的文件,还可以用来查看文件的权限。

      $ ls -1

  4. 基本目录操作

    • 常用 cd 来切换目录,使用 . 表示当前目录,.. 表示上一级目录, ~ 表示当前用户的home目录,- 表示上次所在目录。

    • 使用 pwd 命令可以获得当前所在路径(绝对路径),例如进入上一级目录:

      $ cd ..

  5. 基本文件操作(创建、复制和删除等)

    • touch命令可以创建一个新的空白文件,例如创建一个名为myfile的文件。

      $ touch myfile

    • 使用 mkdir 命令可以创建一个新的目录,例如创建一个newdir的目录。

      $ mkdir newdir

    • 使用 cp 命令复制一个文件到指定目录。

      $ cp myfile ../../newdir

    • 在复制文件的基础上加上 -r参数即可复制文件

      $ cp -r dir newdir

    • 用rm(remove files or directori)命令删除文件。同样地,删除目录也需要加上 -r参数。

      $ rm myfile

    • 移动及重命名文件都使用 mv 命令。

      移动文件格式为:mv 源目录文件 目的目录

      注意 此处的mv命令为剪切文件

      $ mv myfile newdir

      重命名文件为:mv 旧的文件名 新的文件名

      $ mv myfile newfile

    • 搜索 find 命令,可以根据文件各个属性来搜索,其格式为:

      $ find [path] [option] [action]

      例如:

      $ sudo find /usr/ -name myfile

  6. tar工具的使用(仅部分)

    • 创建一个tar包

    tar -cf newtar.tar ./Desktop

    其中,-c参数表示创建, -f参数表示指定文件名,必须跟在文件名之前。这个tar包跟原大小相同。

    • 查看一个tar包:

    tar -tf newtar.tar

    • 解包一个tar包到指定目录

    tar -xf newtar.tar -C newdir

  7. 终止

    • 在参数上可以通过选择信号值来决定以何种方式终止程序,信号值可以这样查看

      kill -1

    • 可以这样终止程序:

      kill -signal pid

Vim入门

这一部分主要学习了Vim编辑器的一些入门操作,以及普通模式、插入模式等多种模式。

一、六种模式

  1. 普通模式

    在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。是Vim启动后的默认模式。在其他模式下,按下ESC即可返回普通模式。

  2. 插入模式

    在这个模式中,大多数按键都会向文本缓冲区中插入文本。在普通模式中可以按a(append/追加)键或者i(insert/插入)键进入插入模式。

  3. 可视模式

    这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。在普通模式下,按下v, V, Ctrl键+v即可进入。

  4. 选择模式

    这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。

  5. 命令行模式

    在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?

    键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普

    通模式。在普通模式下,按下:即可进入。

  6. Ex模式

    这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。在进入Vim时,加上-e参数即可进入,例如:vim -e

二、普通模式——游标移动

  1. 字符级移动

    在普通模式下,可以使用方向键或者h,j,k,l进行移动,如下表:

    按键 方向
    h,
    l,
    j,
    k,
  2. 行内移动

    在行内以移动游标时,可以使用下面的命令来实现:

    按键 说明
    w 右移到下一个单词的开头
    e 右移到下一个单词的末尾
    b 左移到前一个单词的开头
    0 右移到本行的开始
    $ 右移到本行的末尾
    ^ 左移到本行的第一个非空字符
  3. 页级移动

可以在相邻页之间移动:

按键 说明
crtl+f 前移一页
crtl+b 后移一页
  1. 页内移动

当我们到达指定页时,可以在页内快速移动:

按键 说明
H 将光标移到该页的起始行
M 将光标移到该页的中间行
L 将光标移到该页的末尾行
  1. 其他移动

    Vim提供了很多的移动方式,这里再列举一些大范围移动:

    按键 说明
    * 将光标移到该单词的下一个位置
    # 将光标移到该单词的上一个位置
    g 将光标移到文件的第一行
    G 将光标移到文件的末尾行

三、普通模式——文档编辑

  1. 搜索
    Vim的搜索方法非常简单,只需要输入/+内容就可以进行搜索,其命令具体如下:

    指令 说明
    \+str 向下搜索字符串str
    n 继续搜索
    N 反向搜索
    ?+str 反向搜索字符串str
  2. 替换

    Vim的常规替换命令主要由s和c完成,但替换命令之后,会进入插入模式,按下ESC即可返

    回普通模式,替换命令部分如下:

    指令 说明
    s 用输入的正文替换游标所在的字符
    ns 用输入的正文替换游标右侧n个字符
    c$ 用输入的正文替换从游标开始到行尾的所有字符
    c0 用输入的正文替换从本行开始到游标的所有字符
  3. 删除

    Vim的删除命令主要由d和x完成,如下:

    指令 说明
    x 删除游标所在的字符
    X 删除游标所在前一个字符
    dw 删除游标右的单词
    dd 删除游标所在行
    d0 删除光标到行的开始
    d$ 删除光标到行的末尾
  4. 删除

    Vim中删除操作其实与剪切操作类似,会将内容复制到内存缓冲区,当然,也可以通过命令

    自行复制而不删除内容:

    指令 说明
    yy 复制游标所在行到缓冲区
    nyy 复制n行到缓冲区
  5. 粘贴

    将内容复制到缓冲区后,可以使用命令将内容粘贴:

    指令 说明
    p 粘贴到游标后
    P 粘贴到游标前
  6. 撤销

    通过指令,可以撤销上一次的操作:

    指令 说明
    u 撤销上次操作
  7. 重复

    通过指令,可以重复上一次的操作:

    指令 说明
    u 重复上次操作

四、插入模式

  1. 进入插入模式

    进入插入模式还可以通过命令:

    指令 说明
    i 在游标处插入
    I 在行首插入
    a 在游标右侧插入
    A 在行末插入
    o 在当前行后添加一行插入
    O 在当前行前添加一行插入
  2. 游标移动

    当然,也可以尝试在插入模式时移动,但此时h,j,k,l已不能移动,只能使用方向键进行小幅移动:

    按键 方向
  3. 退出插入模式

    进入插入模式后,在编辑内容时,往往需要应用其他命令,这时就需要退出插入模式,进入普通模式,使用命令进行操作:

    指令 说明
    ESC 退出插入模式
    Crtl+[ 退出插入模式

五、命令模式

输入 vim : 进入命令模式

  1. 打开文件

    在进入Vim之后,如需打开其他文件,则:

    e 文件名

  2. 保存文件

    编辑之后,我们可以使用w命令保存文件,也可以另存为其他文件:

    :w other-ehpc.txt

  3. 退出Vim

    退出Vim时,如果未作修改,需要使用进行退出,如果有修改内容,但不保存,则可以使用强制退出,如果想要保存内容,并退出,可以使用命令。

    q

    q!

    wq

  4. 行号操作

    命令模式下,我们可以直接输入行号进行跳转

    :n

    跳转到第n行

    通过对行号的使用,我们可以结合其他命令做到:

    :nw 文件名 将行写入文件n

    :m,nw 文件名 将到行写入文件m n

    :m,.w 文件名 将到当前行写入文件m

    :.,$w 文件名 将当前行到最后一行写入文件

  5. 文件操作

    前面指出了可以使用打开文件,写文件,Vim还有更多的文件操作:

    ew

    :r 文件名读取文件并插入到游标之后

    :f 文件名重命名文件

    :f 输出当前文件名称和状态

  6. 内容替换

    Vim除了在普通模式下能够进行替换操作,命令模式下也可以进行替换操作:

    :%s/str1/str2/用替换行中首次出现的str2str1

    通过参数可以达到替换所有的操作:

    用替换行中出现的g:s/str1/str2/gstr2str1

    还可以指定行数,例如:用字符串 替换正文中所有出现的字符串

    上述操作也可以通过实现:1,$ s/str1/str2/gstr2str1:g/str1/s//str2/g

六、进阶命令

  1. 文件恢复

    恢复意外退出而没有保存的文件

    :recover

  2. 选项设置

    通过命令可以设置选项,比如::set

    选项 说明
    autoindent 自动缩进
    number 显示行号
    ignorecase 忽略正则表达式的大小写
    ruler 显示游标位置
  3. 分屏

    Vim中可以使用命令进行分屏操作:

    命令 说明
    split ,sp 水平分屏
    vsplit,vsp 垂直分屏

    也可以在启动Vim时分屏,在启动时加入参数:

    打开 file1 和 file2 ,垂直分屏

    打开 file1 和 file2 ,水平分屏

    各屏幕间移动需要使用快捷键:

    vim -On file1 file2...vim -on file1 file2...

    命令 说明
    Ctrl +w+h 当前屏的左分屏
    Ctrl +w+l 当前屏的右分屏
    Ctrl +w+j 当前屏的下分屏
    Ctrl +w+k 当前屏的上分屏

Shell入门教程

一、第一个shell脚本

  • 打开终端,输入以下命令,创建一个新的shell脚本

    vim hello.sh

  • 在脚本中以插入模式输入以下代码,并强制保存后退出

	#!/bin/bash
	echo "Hello World !"

脚本的第一行#!是一个标记,它的用处是告诉系统这个脚本需要使用什么解释器来执行,我们这里选用的是bash。

第二行的echo命令是将想要输出的字符串打印到屏幕上,在我们的脚本是将hello world打印到屏幕上。

  • 再输入运行命令,运行shell脚本文件

    /bin/sh hello.sh

成功运行!

二、Shell基本语法

  1. shell的变量

    变量名与等号之间不能有空格,命名只能使用英文字母、数字、下划线,不能使用Shell中的关键字。

     #!/bin/bash
     
     ehpc="easy_hpc"
     
     echo $ehpc
    

    首先我们使用以上代码来定义一个变量ehpc,然后用echo命令将它打印出来。

    这里可以看到,使用一个定义的变量,只需要在变量名之前加美元符号。

    shell脚本运行结果如下:

  2. shell的运算符

    将之前的 test.sh 文件清空,添加以下代码保存后运行

     #!/bin/bash
     a=5
     b=10
     
     val=`expr $a + $b`
     echo "a + b : $val"
     
     val=`expr $a - $b`
     echo "a - b : $val"
     
     val=`expr $a \* $b`
     echo "a * b : $val"
     
     val=`expr $b / $a`
     echo "b / a : $val"
     
     val=`expr $b % $a`
     echo "b % a : $val"
    

    在上面的代码中,expr是一个表达式计算工具,使用它能够完成表达式的求值操作。

    特别注意表达式前后的引号为反引号。所以可以看到,我们这五个例子分别展示的是加、

    减、乘、除、求余.

    shell脚本运行结果如下:

  3. shell的输出命令

    Shell中的echo命令也是类似PHP语言中的功能,即将字符串输出,在test.sh中输入以下代码

     #!/bin/bash
     echo "ehpc is easy hpc"    
     echo "\"ehpc is easy hpc\""    
     echo `date`    
    

    显示普通的字符串

    显示转义字符

    显示转义字符

    shell脚本运行结果如下

    除了echo输出命令之外,还有一个输出命令printf,printf命令可以格式化字符串,

    还可以指定字符串的宽度、左右对齐方式,下面我们将用一个例子来展示printf的功能。>

    vim打开 test.sh,清空之前的代码,输入以下代码:

     #!/bin/bash
     printf "%-10s %-8s %-4s\n" name gender heightcm  
     printf "%-10s %-8s %-4.2f\n" ehpc  male 187.1234 
    

    这段代码中,%-10s 指一个宽度为10个字符,任何字符都会被显示在10个字符宽的字符

    内,如果不足则自动以空格填充,超过也会将内容全部显示出来。%-4.2f 指格式化为小

    数,其中.2指保留2位小数。

    运行结果如下

  4. shell数组的使用

    在test.sh.中输入以下代码,在下面的代码中,我们建立了一个数组array_test,并依次输出各个元素。

     #!/bin/bash
     array_test=(E H P C)
     echo "first element: ${array_test[0]}"
     echo "second element: ${array_test[1]}"
     echo "third element: ${array_test[2]}"
     echo "fourth element: ${array_test[3]}"
    

    运行结果如下

三、流程控制

  1. if-else语句

    Shell 编程中的if else语句的语法格式如下所示:

     if condition
     then
     command
     else
     command
     fi
    

    当条件为真时,执行then之后的代码,否则执行else之后的代码。

    下面给出一个例子

     #!/bin/sh
     a=5
     b=6
     if [ $a == $b ]
     then
        echo "a == b"
     else
        echo "a !=b"
     fi
    

    运行结果如下

  2. while 循环

     while condition
     do
         command
     done
    

    同样给出一个例子

     #!/bin/sh
     count=1
     while(( $count<=3 ))
     do
         echo $count
         let "count++"
     done
    

    初始化count变量为1,当count小于等于3时,打印出count值,并且增加count值;

    当count大于3的时候,结束while循环。

    运行结果如下

  3. for 循环

     for var in item1 item2 ... itemN
     do
         command
     done
    

    例子如下

     #!/bin/sh
     for str in 'ehpc is easy hpc'
     do
         echo $str
     done
    

    依次输出字符串中的每一个字符

    运行结果如下

  4. until 循环

    其格式如下所示

     until condition
     do
         command
     done
    

    例子如下:

     #!/bin/bash
     val=0
     until [ ! $val -lt 5 ]
     do
        echo $val
        val=`expr $val + 1`
     done
    

    这段代码将依次输出0到4,当val为5的时候,判断条件为真,结束循环。

    运行结果如下

四、函数的使用

  1. 定义与调用函数

    函数定义格式如下:

     function_name ()
     {
         statement
     }
    

    或者

     function function_name ()
     {
         statement
     }
    

    调用函数的格式如下所示,后面跟着的是传递给函数的参数。

    function_name parm1 parm2...

    同样地,我们可以用函数调用的形式编写hello world程序

     function echo_hello()
     {
       echo "hello world"
     }
     echo_hello
    

    这段代码中我们还是实现了第一次课程中介绍的hello world程序,不同的是我们这次使用

    函数来实现。定义函数名为echo_hello,函数体内实现的是打印出hello world。定义完

    函数之后,我们直接键入函数名echo_hello来调用,最终也实现了在屏幕上打印hello

    world的效果。

  2. 函数参数

    这里给出一个例子

     #!/bin/bash
     
     test(){
         echo " $1 !"
         echo " $2 !"
         echo " $5 !"
         echo " $10 !"
         echo " ${10}!"
     }
     test 1 3 5 7 9 11 13 15 17 19
    

    我们先定义了一个函数test,在函数体内,我们依次输出第一个参数、第二个参数、第五个

    参数和第十个参数。调用函数时,将参数跟在函数名之后。

    这里特别注意,$10并不能够获取第十个参数,获取第十个参数需要${10}

    因为Shell规定当n>=10时,需要使用${n}来获取参数。

    于是可以得到运行结果如下

五、输入输出重定向

  1. shell 输出重定向

    输出重定向是指命令的结果不再输出到显示器上,而是输出到其他地方,一般是文件中;这

    样做的好处就是可以将命令的结果保存起来。

    符 号 作 用
    command >file 以覆盖的方式,把 command 的正确输出结果输出到 file 文件中
    command >>file 以追加的方式,把 command 的正确输出结果输出到 file 文件中

    输出重定向的完整写法是:

    其中 fd 为文件描述符,默认为1,也就是标准输出文件;

     command fd>file
     或者
     command fd>>file
    
  2. shell 输入重定向

    输入重定向就是改变输入的方向,不再使用键盘作为命令输入的来源,而是使用文件作为命令的输入;

    符号 说明
    command 将 file 文件中的内容作为 command 的输入
    command < 从标准输入(键盘)中读取数据,直到遇见分界符 END 才停止(分界符可以是任意的字符串,用户自己定义)
    command file2 将 file1 作为 command 的输入,并将 command 的处理结果输出到 file2

    看下面例子,用 wc 命令来对文本进行统计,包括单词个数、行数、字节数,它的用法如下:

    wc [选项] [文件名]

    选项可为:

    -c 统计字节数

    -w 统计单词数

    -l 统计行数

c语言入门和c++基础

由于大一一整个学年都在学c和c++,自认为学得还可以了,这部分就默认会了吧

HPL和HPCG的安装

1.HPL

修改Make.test的参数

主要有以下三部分

编译 make arch=test

!!切记要在之前设置环境变量

non@non-virtual-machine:~/hpl-2.3$ make arch=test
make -f Make.top startup_dir     arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
mkdir -p include/test
mkdir -p lib
mkdir -p lib/test
mkdir -p bin
mkdir -p bin/test
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top startup_src     arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/auxil       arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/auxil ; mkdir -p test )
( cd src/auxil/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/blas        arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/blas ; mkdir -p test )
( cd src/blas/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/comm        arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/comm ; mkdir -p test )
( cd src/comm/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/grid        arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/grid ; mkdir -p test )
( cd src/grid/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/panel       arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/panel ; mkdir -p test )
( cd src/panel/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/pauxil      arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/pauxil ; mkdir -p test )
( cd src/pauxil/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/pfact       arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/pfact ; mkdir -p test )
( cd src/pfact/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=src/pgesv       arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd src/pgesv ; mkdir -p test )
( cd src/pgesv/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top startup_tst     arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
make -f Make.top leaf le=testing/matgen  arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd testing/matgen ; mkdir -p test )
( cd testing/matgen/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=testing/timer   arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd testing/timer ; mkdir -p test )
( cd testing/timer/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=testing/pmatgen arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd testing/pmatgen ; mkdir -p test )
( cd testing/pmatgen/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=testing/ptimer  arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd testing/ptimer ; mkdir -p test )
( cd testing/ptimer/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make -f Make.top leaf le=testing/ptest   arch=test
make[2]: 进入目录“/home/non/hpl-2.3”
( cd testing/ptest ; mkdir -p test )
( cd testing/ptest/test ; \
            ln -fs /home/non/hpl-2.3/Make.test Make.inc )
make[2]: 离开目录“/home/non/hpl-2.3”
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top refresh_src     arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
cp makes/Make.auxil    src/auxil/test/Makefile
cp makes/Make.blas     src/blas/test/Makefile
cp makes/Make.comm     src/comm/test/Makefile
cp makes/Make.grid     src/grid/test/Makefile
cp makes/Make.panel    src/panel/test/Makefile
cp makes/Make.pauxil   src/pauxil/test/Makefile
cp makes/Make.pfact    src/pfact/test/Makefile
cp makes/Make.pgesv    src/pgesv/test/Makefile
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top refresh_tst     arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
cp makes/Make.matgen   testing/matgen/test/Makefile
cp makes/Make.timer    testing/timer/test/Makefile
cp makes/Make.pmatgen  testing/pmatgen/test/Makefile
cp makes/Make.ptimer   testing/ptimer/test/Makefile
cp makes/Make.ptest    testing/ptest/test/Makefile
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top refresh_src     arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
cp makes/Make.auxil    src/auxil/test/Makefile
cp makes/Make.blas     src/blas/test/Makefile
cp makes/Make.comm     src/comm/test/Makefile
cp makes/Make.grid     src/grid/test/Makefile
cp makes/Make.panel    src/panel/test/Makefile
cp makes/Make.pauxil   src/pauxil/test/Makefile
cp makes/Make.pfact    src/pfact/test/Makefile
cp makes/Make.pgesv    src/pgesv/test/Makefile
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top refresh_tst     arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
cp makes/Make.matgen   testing/matgen/test/Makefile
cp makes/Make.timer    testing/timer/test/Makefile
cp makes/Make.pmatgen  testing/pmatgen/test/Makefile
cp makes/Make.ptimer   testing/ptimer/test/Makefile
cp makes/Make.ptest    testing/ptest/test/Makefile
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top build_src       arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
( cd src/auxil/test;         make )
make[2]: 进入目录“/home/non/hpl-2.3/src/auxil/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/auxil/test”
( cd src/blas/test;          make )
make[2]: 进入目录“/home/non/hpl-2.3/src/blas/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/blas/test”
( cd src/comm/test;          make )
make[2]: 进入目录“/home/non/hpl-2.3/src/comm/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/comm/test”
( cd src/grid/test;          make )
make[2]: 进入目录“/home/non/hpl-2.3/src/grid/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/grid/test”
( cd src/panel/test;         make )
make[2]: 进入目录“/home/non/hpl-2.3/src/panel/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/panel/test”
( cd src/pauxil/test;        make )
make[2]: 进入目录“/home/non/hpl-2.3/src/pauxil/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/pauxil/test”
( cd src/pfact/test;         make )
make[2]: 进入目录“/home/non/hpl-2.3/src/pfact/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/pfact/test”
( cd src/pgesv/test;         make )
make[2]: 进入目录“/home/non/hpl-2.3/src/pgesv/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/src/pgesv/test”
make[1]: 离开目录“/home/non/hpl-2.3”
make -f Make.top build_tst       arch=test
make[1]: 进入目录“/home/non/hpl-2.3”
( cd testing/matgen/test;    make )
make[2]: 进入目录“/home/non/hpl-2.3/testing/matgen/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/testing/matgen/test”
( cd testing/timer/test;     make )
make[2]: 进入目录“/home/non/hpl-2.3/testing/timer/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/testing/timer/test”
( cd testing/pmatgen/test;   make )
make[2]: 进入目录“/home/non/hpl-2.3/testing/pmatgen/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/testing/pmatgen/test”
( cd testing/ptimer/test;    make )
make[2]: 进入目录“/home/non/hpl-2.3/testing/ptimer/test”
make[2]: 对“all”无需做任何事。
make[2]: 离开目录“/home/non/hpl-2.3/testing/ptimer/test”
( cd testing/ptest/test;     make )
make[2]: 进入目录“/home/non/hpl-2.3/testing/ptest/test”
mpiicc -DAdd__ -DF77_INTEGER=int -DStringSunStyle -DHPL_DETAILED_TIMING -DHPL_PROGRESS_REPORT -I/home/non/hpl-2.3/include -I/home/non/hpl-2.3/include/test -I/opt/intel/oneapi/mkl/2022.1.0/mkl/include  -O3 -w -ansi-alias -i-static -z noexecstack -z relro -z now -nocompchk -Wall -qopenmp -mt_mpi -o /home/non/hpl-2.3/bin/test/xhpl HPL_pddriver.o         HPL_pdinfo.o           HPL_pdtest.o /home/non/hpl-2.3/lib/test/libhpl.a  -L/opt/intel/oneapi/mkl/2022.1.0/mkl/lib/intel64 -Wl,--start-group /opt/intel/oneapi/mkl/2022.1.0/lib/intel64/libmkl_intel_lp64.a /opt/intel/oneapi/mkl/2022.1.0/lib/intel64/libmkl_intel_thread.a /opt/intel/oneapi/mkl/2022.1.0/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -ldl 
make /home/non/hpl-2.3/bin/test/HPL.dat
make[3]: 进入目录“/home/non/hpl-2.3/testing/ptest/test”
( cp ../HPL.dat /home/non/hpl-2.3/bin/test )
make[3]: 离开目录“/home/non/hpl-2.3/testing/ptest/test”
touch dexe.grd
make[2]: 离开目录“/home/non/hpl-2.3/testing/ptest/test”
make[1]: 离开目录“/home/non/hpl-2.3”

运行 mpirun ./xhpl

non@non-virtual-machine:~/hpl-2.3/bin/test$  mpirun ./xhpl
HPL ERROR from process # 0, on line 419 of function HPL_pdinfo:

>>> at least 4 processes for these tests <<<

HPL ERROR from process # 0, on line 621 of function HPL_pdinfo:

>>> Illegal input in file HPL.dat. Exiting ... <<<

2.HPCG

同样需要修改Make.Linux_MPI里面的参数,具体就不细说了,接着就是设置安装环境,开始安装的操作。

参考:https://www.cnblogs.com/lijiaji/p/14283958.html

!!同样要记得设置环境变量

non@non-virtual-machine:~/hpcg/setup/build$ /home/non/hpcg/configure Linux_MPI
non@non-virtual-machine:~/hpcg/setup/build$ make
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/main.cpp -o src/main.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/CG.cpp -o src/CG.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/CG_ref.cpp -o src/CG_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/TestCG.cpp -o src/TestCG.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeResidual.cpp -o src/ComputeResidual.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ExchangeHalo.cpp -o src/ExchangeHalo.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/GenerateGeometry.cpp -o src/GenerateGeometry.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/GenerateProblem.cpp -o src/GenerateProblem.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/GenerateProblem_ref.cpp -o src/GenerateProblem_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/CheckProblem.cpp -o src/CheckProblem.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/MixedBaseCounter.cpp -o src/MixedBaseCounter.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/OptimizeProblem.cpp -o src/OptimizeProblem.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ReadHpcgDat.cpp -o src/ReadHpcgDat.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ReportResults.cpp -o src/ReportResults.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/SetupHalo.cpp -o src/SetupHalo.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/SetupHalo_ref.cpp -o src/SetupHalo_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/TestSymmetry.cpp -o src/TestSymmetry.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/TestNorms.cpp -o src/TestNorms.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/WriteProblem.cpp -o src/WriteProblem.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/YAML_Doc.cpp -o src/YAML_Doc.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/YAML_Element.cpp -o src/YAML_Element.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeDotProduct.cpp -o src/ComputeDotProduct.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeDotProduct_ref.cpp -o src/ComputeDotProduct_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/mytimer.cpp -o src/mytimer.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeOptimalShapeXYZ.cpp -o src/ComputeOptimalShapeXYZ.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeSPMV.cpp -o src/ComputeSPMV.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeSPMV_ref.cpp -o src/ComputeSPMV_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeSYMGS.cpp -o src/ComputeSYMGS.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeSYMGS_ref.cpp -o src/ComputeSYMGS_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeWAXPBY.cpp -o src/ComputeWAXPBY.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeWAXPBY_ref.cpp -o src/ComputeWAXPBY_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeMG_ref.cpp -o src/ComputeMG_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeMG.cpp -o src/ComputeMG.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeProlongation_ref.cpp -o src/ComputeProlongation_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/ComputeRestriction_ref.cpp -o src/ComputeRestriction_ref.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/CheckAspectRatio.cpp -o src/CheckAspectRatio.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/OutputFile.cpp -o src/OutputFile.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/GenerateCoarseProblem.cpp -o src/GenerateCoarseProblem.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/init.cpp -o src/init.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -c -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx -I/home/non/hpcg/src /home/non/hpcg/src/finalize.cpp -o src/finalize.o
/opt/intel/oneapi/mpi/2021.6.0/bin/mpiicpc -DHPCG_NO_OPENMP -I/Home/non/hpcg/src -I/Home/non/hpcg/src/Linux_MPI -I/opt/intel/oneapi/mpi/2021.6.0/include -O3 -qopenmp -mavx src/main.o src/CG.o src/CG_ref.o src/TestCG.o src/ComputeResidual.o src/ExchangeHalo.o src/GenerateGeometry.o src/GenerateProblem.o src/GenerateProblem_ref.o src/CheckProblem.o src/MixedBaseCounter.o src/OptimizeProblem.o src/ReadHpcgDat.o src/ReportResults.o src/SetupHalo.o src/SetupHalo_ref.o src/TestSymmetry.o src/TestNorms.o src/WriteProblem.o src/YAML_Doc.o src/YAML_Element.o src/ComputeDotProduct.o src/ComputeDotProduct_ref.o src/mytimer.o src/ComputeOptimalShapeXYZ.o src/ComputeSPMV.o src/ComputeSPMV_ref.o src/ComputeSYMGS.o src/ComputeSYMGS_ref.o src/ComputeWAXPBY.o src/ComputeWAXPBY_ref.o src/ComputeMG_ref.o src/ComputeMG.o src/ComputeProlongation_ref.o src/ComputeRestriction_ref.o src/CheckAspectRatio.o src/OutputFile.o src/GenerateCoarseProblem.o src/init.o src/finalize.o  -o bin/xhpcg

运行测试

non@non-virtual-machine:~/hpcg/setup/build/bin$ ls
hpcg20221010T141658.txt  hpcg20221010T142012.txt  HPCG-Benchmark_3.1_2022-10-10_14-19-01.txt  HPCG-Benchmark_3.1_2022-10-10_14-21-55.txt  hpcg.dat  xhpcg

可以发现在build目录里有一个.dat文件以及xhpcg可执行文件

接着运行即可 ./xhpcg

总结一下

感觉第一次任务做得有点赶,主要是在配置部分花了太长时间,特别是HPL和HPCG安装,还可能有一部分原因是想学好一些linux、shell的基础和vim的用法,打好基础,笔记也记得算是详细,markdown也是比较熟悉的了。之前有学过git的用法,但是这次时间太赶了来不及push到GitHub上,希望下次能效率更高一点,更早一点开始做,但是有一点感触还是比较深的,就是要学会自己找资料,遇到问题要加强自己参考资料并解决的能力,希望这块能力能进一步提升吧。

下次我一定会记得设置环境变量

posted @ 2022-10-10 14:50  nonnn  阅读(155)  评论(0编辑  收藏  举报