《Gzip工程创建》项目大作业解析

举报
Tianyi_Li 发表于 2022/11/28 22:36:22 2022/11/28
【摘要】 鲲鹏开发框架是一款使能用户在鲲鹏服务器上进行开发的工具。鲲鹏开发框架充分利用鲲鹏平台的各类型算力及性能更优的第三方组件,提供鲲鹏工程向导、启发式编程、代码亲和检查等能力,一键引入鲲鹏加速库、快速构建鲲鹏应用软件框架,帮助开发者更便捷地开发鲲鹏应用,使能开发者高效创新。

《Gzip工程创建》项目大作业解析

背景知识

鲲鹏开发框架

鲲鹏开发框架是一款使能用户在鲲鹏服务器上进行开发的工具。鲲鹏开发框架充分利用鲲鹏平台的各类型算力及性能更优的第三方组件,提供鲲鹏工程向导、启发式编程、代码亲和检查等能力,一键引入鲲鹏加速库、快速构建鲲鹏应用软件框架,帮助开发者更便捷地开发鲲鹏应用,使能开发者高效创新。

鲲鹏原生开发

基于鲲鹏平台的新软件和新功能特性开发,应用鲲鹏DevKit工具把鲲鹏架构亲和性能充分体现的开发场景。

安装插件

首先打开VS Code,点击左侧树的扩展按钮,在搜索框中搜索“kunpeng”,安装鲲鹏开发框架插件。

image.png

创建通用计算工程

  1. 工程创建

点击左侧树的鲲鹏开发框架插件图标,点击新建鲲鹏工程按钮,进入新建鲲鹏工程界面,点击通用计算应用进入通用计算应用创建页面。

image.png

工程名称设置为testGzip,工程位置选择home,点击”Next”按钮进入加速库选择页面。

image.png

勾选”Gzip”加速库,点击“Create Project”按钮创建工程。

image.png

点击“Cancel”按钮,不部署加速库。

image.png

点击“Yes”同意下载加速库。

image.png

  1. 查看鲲鹏工程

创建成功后,点击“View Project”按钮查看工程。

image.png

点击“This Widonw”按钮,本窗口打开工程。

image.png

之后让我们点开工程third-party文件夹中的gzip子文件夹,查看里面的具体内容。

image.png

我们可以看到gzip文件夹中有两个子文件夹,分别是gzip_demo和gzip-1.10.aarch64, gzip_demo中包有一个名为demo_gzip的cpp文件,该demo包含了对gzip库中压缩和解压缩功能的调用。gzip-1.10.aarch64是已经下载并解压好的gzip鲲鹏加速库,该加速库针对鲲鹏处理器的架构特点,对gzip原生库进行了加速优化。接下来我们将利用demo_gzip来对比加速库和原生库在解压2G大小文件时的解压效率。

  1. 编译并执行鲲鹏工程

(1)首先,点击vscode上方的Terminal按钮,并选择New Terminal选项。

image.png

image.png

(2)登录之后,依次执行如下命令:

cd到testGzip文件夹下

cd /home/testGzip

清除鲲鹏工程目录中src文件夹中的内容

cd src
rm -f *

执行./configure编译gzip

cd ../third-party/gzip/gzip-1.10.aarch64/
bash ./configure

运行截图如下:

image.png

执行脚本修改构建文件中的内容

cp ../../../../gzip_test/change_gzip_makefile.sh .
sh change_gzip_makefile.sh

添加执行权限后执行make命令

chmod +x build-aux/*
make

运行截图如下:

image.png

将以下内容拷贝到源码lib目录下

cp libgzip.so gzip.h version.h lib/config.h ../../../lib

接着拷贝gzip_demo内容到src目录

cd ../../../src
cp ../third-party/gzip/gzip_demo/* .
cd ../build
cmake ../src
make

运行截图入下:

image.png

拷贝待测试文件到src目录

cp ../../gzip_test/test.log.2G_1.origin.gz ../bin
cd ../bin

执行鲲鹏工程代码对压缩包进行解压

gzip -d test.log.2G_1.origin.gz
time ../build/demo_gzip test.log.2G_1.origin test_huawei.gz

运行截图如下:

image.png

下面使用原始gzip来对比解压性能

cd ../third-party/gzip
mv ../../../gzip_test/gzip-1.10.tar.gz .
tar -xf gzip-1.10.tar.gz
cd gzip-1.10
bash ./configure
cp ../../../../gzip_test/change_gzip_makefile.sh .
sh change_gzip_makefile.sh
chmod +x build-aux/*
make
cp libgzip.so ../../../lib

此处输入y同意覆盖,如下图所示:

image.png

接下来继续执行如下代码:

cd ../../../src
rm -rf *
cp ../third-party/gzip/gzip_demo/* .
cd ../build 
rm -rf *   
cmake ../src   
make   

运行截图如下:

image.png

之后继续执行:

cd ../bin 
time ../build/demo_gzip test.log.2G_1.origin test_huawei.gz  

运行截图如下所示:

image.png

可以看到这里耗时34.8189,比之前看到的优化后的27.3772耗时长了不少啊,可见优化效果显著。

创建高性能计算工程

  1. 安装HPC SDK

打开桌面命令行窗口,依次执行如下命令:

ssh 连接至Kylin V10虚拟机,这里的ip和密码请根据实际使用的环境填写。

ssh root@ip

登录成功界面如下图所示:

image.png

cd到home文件夹下

cd /home

解压kunpeng-hpc-1.0.0-aarch64-liunx.tar.gz

tar -xvf kunpeng-hpc-1.0.0-aarch64-linux.tar.gz

运行截图如下:

image.png

cd到script文件夹下

cd kunpeng-hpc-1.0.0-aarch64-linux/script

执行install.sh

bash install.sh

根据安装提示输入2,3,4安装GCC、BISHENG、HMPI-BISHENG

2,3,4

直接回车选择默认路径/opt安装GCC、BISHENG、HMPI-BISHENG

image.png

安装完成后执行env.sh脚本配置环境变量

bash /home/env.sh

运行截图如下所示:

image.png

  1. 工程创建

打开VS Code,点击左侧树的鲲鹏开发框架插件图标,点击新建鲲鹏工程按钮,进入新建鲲鹏工程界面,点击高性能计算应用,进入新建高性能计算工程页面。工程类型选择Hyper MPI,工程名称设置为HmpiDemo,工程位置选择home,点击创建按钮。

image.png

image.png

  1. 查看鲲鹏工程

(1)创建成功后,点击查看应用按钮,选择本窗口打开。

image.png

(2)之后让我们点开工程src文件夹中的bcast子文件夹,查看里面的具体内容。

image.png

我们可以看到src文件夹中有一个名为bcast_demo.c的文件,该文件展示对MPI_Bcast集合通信的优化。

  1. 编译并执行鲲鹏工程

(1)首先,点击vscode上方的Terminal按钮,并选择New Terminal选项。

image.png

image.png

(2)然后,依次执行如下命令:

拷贝HmpiDemo至Kylin V10虚拟机,记得使用自己的ip

scp -r /home/HmpiDemo root@ip:/home

运行截图如下:

image.png

ssh 连接至Kylin V10虚拟机

ssh root@ip

cd到bcast文件夹下

cd /home/HmpiDemo/src/bcast/

创建并进入build文件夹

mkdir build
cd build

执行cmake … && make编译HMPI

cmake .. && make

运行截图如下所示:

image.png

执行编译生成的可执行文件bcast_demo

mpirun --allow-run-as-root -n 4 bcast_demo

运行截图如下所示:

image.png

可以看到,平均时间仅为0.000017秒,性能强劲啊。

好了,至此我们就执行完成了。

但学习的道路还将继续,仅仅这些是不够的,还是要自己多实践、多总结、多多积累经验啊。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。