Ubuntu22.04安装HPCC
HPCC 全称 HPC Challenge Benchmark,由一组benchmark组成,共计7个,分别测试了系统7个方面的性能,这7个分别为:
- stream:测试内存带宽
- Random Access:测试内存刷新速率
- PTRANS:通过多处理器结构中两两之间的通信,来衡量在整个网络的通信能力
- Latency/Bandwidth: 测试延时与带宽
- Latency:8 byte 数据从一个节点到另一个节点所需时间
- Bandwidth:节点间网络通信的带宽
- HPL:测试系统在解线性方程组时进行浮点运算的性能
- FFT:测试双精度一维离散傅里叶变换浮点运算的速度
- DGEMM:测试双精度矩阵乘法浮点运算的速度
本文将在Ubuntu-22.04-LTS上编译HPCC
一、安装依赖包
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install gfortran
二、下载源码
下载mpich
安装包mpich-4.1.1.tar.gz
,下载地址:http://www.mpich.org/downloads
下载lapack
安装包lapack-3.11.0.tar.gz
,下载地址:https://netlib.org/lapack/#_lapack_version_3_11_0
三、编译MPICH
将mpich
安装到/usr/mpich
文件夹
sudo mkdir /usr/mpich # 创建安装文件夹
sudo cp mpich-4.1.1.tar.gz /usr/mpich # 将安装包复制到目标文件夹
cd /usr/mpich # 进入安装文件夹
sudo tar zxvf mpich-4.1.1.tar.gz # 解压
cd mpich-4.1.1
sudo ./configure --prefix=/usr/mpich
sudo make # 编译
sudo make install # 安装
配置环境变量
sudo vim ~/.bashrc
export PATH=/usr/mpich/bin:$PATH
export INCLUDE=/usr/mpich/include:$INCLUDE
export LD_LIBRARY_PATH=/usr/mpich/lib:$LD_LIBRARY_PATH
source ~/.bashrc # 使此设置永久有效,不然每次打开终端都需要重新设置
检查环境变量是否正确
which mpicc
出现/usr/mpich/bin/mpicc
即为正确。
四、编译lapack
1、编译源文件
lapack
的安装包已经包含了blas
、cblas
、lapacke
sudo tar zxvf lapack-3.11.0.tar.gz
cd lapack-3.11.0
cp make.inc.example make.inc
make blaslib
make cblaslib
make lapacklib
make lapackelib
编译完成后,会在lapack-3.11.0
目录下生成librefblas.a
、libcblas.a
、liblapack.a
、liblapacke.a
四个静态库。
2、静态库和头文件
为了后续使用时不用每次都指定头文件和静态库的路径,可将静态库和头文件加入系统。
# 静态库
cd lapack-3.11.0
sudo cp librefblas.a /usr/local/lib
sudo cp libcblas.a /usr/local/lib
sudo cp liblapack.a /usr/local/lib
sudo cp liblapacke.a /usr/local/lib
# 头文件
cd lapack-3.11.0/CBLAS/include
sudo cp * /usr/local/include
cd lapack-3.11.0/LAPACKE/include
sudo cp * /usr/local/include
3、BLAS使用
- 新建文件
test.c
#include <stdio.h>
#include "cblas.h"int main(){const int dim = 2;double a[4] = {1.0, 1.0, 1.0, 1.0}, b[4] = {2.0, 2.0, 2.0, 2.0}, c[4];int m = dim, n = dim, k = dim, lda = dim, ldb = dim, ldc = dim;double al = 1.0, be = 0.0;cblas_dgemm(101, 111, 111, m, n, k, al, a, lda, b, ldb, be, c, ldc);printf("the matrix c is:%f,%f\n%f,%f\n", c[0], c[1], c[2], c[3]);return 0;
}
- 编译
编译时注意,更换静态库的链接顺序,可能会报错。
gcc test.c -o test -lcblas -lrefblas -lm -lgfortran
- 运行
./test
,预期输出
the matrix c is:4.000000,4.000000
4.000000,4.000000
4、LAPACK使用
- 新建文件
test.c
/* Calling DGELS using row-major order */#include <stdio.h>
#include <lapacke.h>int main (int argc, const char * argv[]){double a[5][3] = {1, 1, 1, 2, 3, 4, 3, 5, 2, 4, 2, 5, 5, 4, 3};double b[5][2] = {-10, -3, 12, 14, 14, 12, 16, 16, 18, 16};lapack_int info, m, n, lda, ldb, nrhs;int i, j;m = 5;n = 3;nrhs = 2;lda = 3;ldb = 2;info = LAPACKE_dgels(LAPACK_ROW_MAJOR, 'N', m, n, nrhs, *a, lda, *b, ldb);for(i = 0; i < n; i ++){for(j=0;j<nrhs;j++){printf("%lf ",b[i][j]);}printf("\n");}return(info);
}
- 编译
编译时注意,更换静态库的链接顺序,可能会报错。
gcc test.c -o test -llapacke -llapack -lcblas -lrefblas -lm -lgfortran
- 运行
./test
,预期输出
2.000000 1.000000
1.000000 1.000000
1.000000 2.000000
五、编辑Makefile
文件
cd hpcc-1.5.0
# 复制hpl/setup/Make.Linux_PII_CBLAS文件到hpl/目录下,并重命名为Make.LINUX
cp hpl/setup/Make.Linux_PII_CBLAS hpl/Make.LINUX
vim hpl/Make.LINUX # 修改Make.LINUX文件
1、修改MPdir
、MPinc
、MPlib
MPdir = /usr/mpich
MPinc = -I$(MPdir)/include
MPlib = $(MPdir)/lib/libmpich.so
2、修改HPL_LIBS
HPL_LIBS = $(HPLlib) $(MPlib) -lm -L/usr/local/lib -lcblas -lblas
3、修改CC
CC = /usr/mpich/bin/mpicc
可使用which mpicc
命令检查mpicc
的路径。
4、修改LINKER
LINKER = /usr/mpich/bin/mpif77
可使用which mpif77
命令检查mpif77
的路径。
六、编译HPCC
修改Makefile
文件
cd hpcc-1.5.0
vim Makefile
修改第三行为:
arch = LINUX
- 编译
cd hpcc-1.5.0
sudo make
cp _hpccinf.txt hpccinf.txt # 将_hpccinf.txt重命名为hpccinf.txt
mpirun -np 4 ./hpcc # 运行HPCC
运行结束后结果会写入hpccoutf.txt
文件。
后记
网上找到的在Ubuntu上运行HPCC的方式都是先安装BLAS
库和CBLAS
库。但是在编译CBLAS
时总是出错,互联网上也没有解决方法。但是在搜索解决方法时发现可以通过lapack
来编译CBLAS
,尝试了一下,结果可行。
Ubuntu22.04安装HPCC相关推荐
- Ubuntu22.04安装惠普P1108打印机并在局域网内共享
Ubuntu22.04安装惠普P1108打印机 注:前期安装了smbsa用于文件共享. 一.安装打印机 1.1 版本 端口:USB 打印机型号:HP_LaserJet_Professional_P11 ...
- Ubuntu 系列学习(五)ubuntu22.04安装flameshot火焰截图(图文)
文章目录 ubuntu22.04安装flameshot v11(火焰截图) 1 火焰截图flameshot安装 1.1 方法一 克隆项目编译安装 1.2 方法二 .deb包安装 1.3 添加依赖时的报 ...
- Ubuntu22.04 安装禅道
Ubuntu22.04 安装禅道 Ubuntu22.04 在线安装 LAMP Ubuntu22.04 在线安装 MySQL8 MySQL APT存储库的下载页面 wget https://repo.m ...
- Ubuntu22.04安装与配置记录
Ubuntu22.04安装与配置记录 原文地址:Ubuntu22.04安装与配置记录 2022年4月21日,ubuntu发布了22.04版本,该版本是一个LTS长期支持版本,技术支持5年,22.04版 ...
- Ubuntu22.04安装VMware16[解决各种安装问题]
Ubuntu22.04安装VMware[快速解决各种安装问题] 0. 前言 1. 下载安装包 2. 安装依赖 2.1 安装gcc 2.2 安装make 2.3 安装lib 2.4 安装git 2.5 ...
- ubuntu22.04安装显卡驱动、CUDA及cudnn
安装显卡驱动.CUDA及cudnn 显卡驱动 自行下载安装 Software & Updates安装 使用命令安行安装 Ubuntu22.04系统安装CUDA 一.CUDA 是什么 先查看有没 ...
- ubuntu22.04安装pytorch(一遍过)
本文介绍ubuntu22.04安装pytorch(本地安装),关于win10安装pytorch-gpu请关注小编的上一篇文章- 1.进入Anaconda资源包下载链接 https://conda.an ...
- ubuntu22.04安装显卡驱动+cuda+cudnn
ubuntu22.04安装显卡驱动+cuda+cudnn 1. 下载驱动和卸载.禁用自带驱动程序 1.1 查看系统显卡型号 1.2 从NVIDIA官网下载相应驱动 1.3 卸载Ubuntu自带的驱动程 ...
- Ubuntu22.04安装wine微信
Ubuntu22.04安装wine微信 1.前言 这里只做解决方案记载,节省大家找资料的时间,方便下次快速搭建开发环境使用的.理论知识可能会是了涉及,但是肯定是以解决方案为主. 基本上大部分的软件使用 ...
最新文章
- 开源项目-基于Intel VT技术的Linux内核调试器
- 阿里云DDoS高防 - 访问与攻击日志实时分析(二)
- Shell中的数据重定向--输入/输出重定向
- [ORACLE错误]oracle 不能更新 PL/SQL 点击“edit data”报“ these query results are not updateable”...
- PhpStorm 中文设置教程
- AI最后--热门游戏引擎(CN地区)
- TensorFlow 多任务学习
- leetcode - 647. 回文子串
- 学习拾遗--用RadioButtonList 或者DropDownList 进行动态赋值问题
- 利用openssl进行base64的编码与解码
- python 读取pdf图片_Python提取PDF第一页为封面图片【批量提取】
- 5 个关键点!优化你的 UI 原型设计
- 使用Python合并excel表格的两列
- R中设置图形参数--函数par()详解
- 文件删不掉需要管理员权限?分享解决方法
- 当今计算机的排名,目前电脑处理器排行榜(2020处理器性能排名对比)
- c语言如何判定是32位系统还是64位系统
- win10笔记本上插耳机没有声音,插耳机不被检测
- FDM打印机使用总结(三)
- 2022“杭电杯”中国大学生算法设计超级联赛(4)
热门文章
- 光耦继电器和普通继电器的区别概述
- 基于S32K144 移植 FreeRTOS 10.1.1
- html计算器的基本功能实现,JS实现基本的网页计算器功能示例
- lm386实用原理图
- Unity3d的WebGL发布和IIS部署
- 【网络工程管理 第三章】 各类网络设备 交换机 VLAN配置实验
- 【bzoj1324】Exca王者之剑(8-9 方格取数问题)
- uos系统中windows格utf8编码文件转GBK
- python与物理结合_Python物理学高效计算(完整版高清带目录)_IT教程网
- 【Java】使用模板生成word文档到服务器,并下载