鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析

一、学习目标

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第1张图片

 Gzip介绍

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第2张图片鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第3张图片

 二、基于鲲鹏亲和开发框架进行原生开发体验

1.安装插件

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第4张图片 

2.创建通用计算工程

   2.1工程创建

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第5张图片

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第6张图片

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第7张图片

不部署加速库

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第8张图片

同意下载加速库

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第9张图片

    2.2查看鲲鹏工程

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第10张图片

 

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第11张图片

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第12张图片

 

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

    2.3编译执行鲲鹏工程

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第13张图片

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第14张图片

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

使cd到testGzip文件夹下cd /home/testGzip

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

代码:

cd src

rm -f *

cd src

结果:

执行./configure编译gzip

代码:

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

bash ./configure

结果:

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第15张图片

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

代码:

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

sh change_gzip_makefile.sh

结果:

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第16张图片

将以下内容拷贝到源码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

结果:

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第17张图片

拷贝待测试文件到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

结果:

下面使用原始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

结果:

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第18张图片

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第19张图片

代码:

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

sh change_gzip_makefile.sh

chmod +x build-aux/* 

make 

cp libgzip.so ../../../lib

结果:

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第20张图片

此处输入y同意覆盖

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第21张图片

代码:

cd ../../../src

rm -rf *

cp ../third-party/gzip/gzip_demo/* . 

cd ../build

rm -rf *  

cp ../third-party/gzip/gzip_demo/* . 

cd ../build

rm -rf *  

cmake ../src  

结果:

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第22张图片

代码:

make  

结果:

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第23张图片

代码:

cd ../bin

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

3.创建高性能计算工程

    3.1安装HPC SDK

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

ssh 连接至Kylin V10虚拟机

!注意此处ip的地方输入自己实际的ip地址

ssh root@ip

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第24张图片

cd到home文件夹下

cd /home

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第25张图片

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

cd到script文件夹下

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

执行install.sh

bash install.sh

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第26张图片

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

2,3,4

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第27张图片

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第28张图片

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

bash /home/env.sh

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第29张图片

     3.2工程创建

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第30张图片

 鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第31张图片

 3.3查看鲲鹏工程

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第32张图片

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第33张图片

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

    3.4编译并执行鲲鹏工程

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

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第34张图片 (2)然后,依次执行如下命令:

拷贝HmpiDemo至Kylin V10虚拟机

!注意此处ip的地方输入自己实际的ip地址

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

ssh 连接至Kylin V10虚拟机

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第35张图片

!注意此处ip的地方输入自己实际的ip地址

ssh root@ip

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第36张图片

cd到bcast文件夹下

cd /home/HmpiDemo/src/bcast/

创建并进入build文件夹

mkdir build

cd build

执行cmake .. && make编译HMPI

cmake .. && make

鲲鹏Devkit开发框架插件工具课堂笔记—第三讲:《Gzip工程创建》项目大作业解析_第37张图片

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

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

你可能感兴趣的:(鲲鹏DevKit,vscode,ide,编辑器)