-
✨✨服务器配置ecs的具体配置我就不再去说明了,详细可以去参考汇编代码的迁移本次实验使用的是鲲鹏平台进行python代码的一个应用迁移✨✨首先我们先下载本次实验所需要的代码下载完成后我们需要将代码报进行解压并放入/home/python-porting/目录下进入python-porting目录下输入ls查看文件 code难点在于python编译环境的配置接下来我们首先看看如何配置python编译环境1、首先我们可以去先检查目前python版本号输入:Python3 --version这里返回的版本号是3.7.42、尝试运行python脚本我们需要进入到code目录下运行Nevnetwork.py输入命令:cd /home/python-porting/codepython3 Nevnetwork.py在这里就会发现系统出现以下错误:报错原因是当我们在鲲鹏平台并没有相匹配的Numpy模块,于是我们需要去找到相匹配的Numpy模块现在我们解决该报错的方法有两种:1、从华为云开源镜像站中查找是否有适用于ARM平台上的NumPy,如果有,直接进行安装即可。2 、对NumPy进行源码移植。大部分情况下使用第一种方式即可解决,少数情况下需要第二种方式。🎁🎁从镜像源获取适配Numpy接下来我们先看看从华为云开源镜像站中寻找是否存在适配的arm平台的Numpy1、为使用华为开源镜像源,我们需要配置华为镜像源路径修改pip的配置文件,文件位于~/.pip/pip.conf, 如果没有这个文件,可以新创建一个具体命令如下:mkdir ~/.pip #创建目录touch ~/.pip/pip.confvim ~/.pip/pip.conf 编辑pip.conf编辑内容如下:[global]index-url = https://repo.huaweicloud.com/repository/pypi/simpletrusted-host = repo.huaweicloud.comtimeout = 120编辑完成后数:wq保存退出2、安装Numpy接下来就可以使用yum命令安装Numpy依赖包yum install -y python3-devel为了确保安装成功,我们先升级以下pippip3 install --upgrade pip使用以下命令安装Numpy3、验证Numpy安装结果进入python的开发界面,调用Numpy,测试Numpy是否安装完成pyton3import numpy这个时候没有发生报错就表明安装完成4、到这里就已经说明Numpy安装成功,为了展示方法二我们先将Numpy移除使用以下命令。移除Numpypip3 uninstall numpy5、验证Numpy是否移除🎁🎁使用源码包移植Numpy这种方法比上面的方法可能要复制一点1、配置鲲鹏编译环境,安装gcc-gfortranyum -y install gcc-gfortran2、获取Numpy源码包cd /usr/local/srcwget cid:link_03、进行编译配置我们将上面获取的源码目录进行解压,记住自己解压到那个目录解压并进入源码目录cd numpypython3 setup.py install5、最后我们就可以返回根目录去验证Numpy是否安装成功使用方法一,进入启动python进行编辑终于不再报错,接下来我们就可以安装依赖库了1、使用以下命令安装依赖库pip3 install selenium tqdmpip3 install --upgrade pippip3 install matplotlib2、进入到刚刚我们的code目录中,进行代码运行python3 Traing.py这一步需要很长时间等待,请耐心等待。。。。这段时间给大家放个烟花看看🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇终于在漫长的等待后我们的训练终于结束了3、接下来又是漫长的等待python3 Dy-test.py4、好了,开始查看结果进入到img目录内,发现很多图片。5、使用命令开启端口服务:python3 -m http.server打开安全组释放端口80006、打开浏览器打开浏览器输入公网IP地址。ip + 端口。打开点击链接,查看图片到这里实验结束✨✨
-
✨✨获取实验资源🎁🎁购买ecs实验资源ecs的配置如下:计费模式:按需计费基础配置:鲲鹏计算,鲲鹏通用计算增强型,kc1.xlarge.2 4vCPUs | 8GB(两核就可用)镜像选择:centos系统,版本在7就可以网络配置:进入弹性云服务器的网络配置页面,网络选择“vpc-default”,子网选择“subnet-default”,安全组选择“Sys-FullAccess”,公网带宽选择“按流量计费”,带宽大小选择“5”, 单击“下一步:高级配置”。使用密码登录,便于后续操作单击“下一步:确认配置”。进入弹性云服务器的确认配置页面,核对信息无误后,勾选下方的“我已经阅读并同意《华为镜像免责声明》”,单击“立即购买”,完成鲲鹏云服务器的购买。点击“返回弹性云服务器列表”,查看刚刚购买的弹性云服务器,等待约30秒,其状态变为“运行中”,并显示弹性公网IP地址。在此弹性云服务器“IP地址”中,获取该服务器的弹性公网地址使用MobaXterm登录服务器安装porting-advisor使用如下命令下载Portting-advisor安装包wget https://mirrors.huaweicloud.com/kunpeng/archive/Porting_Dependency/Packages/Porting-advisor_2.2.T2.SPC300_Kunpeng-linux.tar.gz使用解压命令对压缩包进行解压tar -zxvf Porting-advisor_2.2.T2.SPC300_Kunpeng-linux.tar.gz进入到解压后的文件中cd Porting-advisor_2.2.T2.SPC300_Kunpeng-linux使用命令安装./install web安装完成后就可以在本地浏览器登录porting-advisor,刚进去可以设置初始密码,这是你以后的登录密码检查所需要的代码这里我们需要把我们需要检查的代码上传过来,我们以2048小游戏为例进行实验(文件上传到附件中)将所需要的文件进行解压tar -xvzf 文件名称使用cp命令将2048文件拷贝到/opt/portadv/portadmin/sourcecode/目录下(一定要是这个目录,只有在这个目录当中才可以呗代码迁移工具扫描到)备份src目录下的main.c文件,具体命令如下:cd /opt/portadv/portadmin/sourcecode/2048/cp src/main.c src/main.c.bk因为我们需要对迁移的代码进行扫描,所以我们需要使目录具有可读的权限,可以使用如下命令chmod -R 755 *✨✨代码迁移🎁🎁登录鲲鹏代码迁移工具在本机浏览器中,输入https://弹性云服务器弹性公网地址:8084如果碰到安全问题告警,请点击“高级”,然后选择忽略,继续浏览。在弹出的页面输入用户名和密码,其中用户名为:portadmin,然后点击“登录”。登录完成后首页内容如下接下来我们设置分析源码的参数在“源码文件存放路径”对话框中,指定需要分析的源码——src和so_src(选中后点击即可)。源码类型:C/C++编译器版本:GCC 7.3(一定要在7以上)构建工具:make编译命令:make目标操作系统:centos 7(左右)然后开始分析,等待分析结束源码分析完成,点击查看报告🎁🎁报告分析在报告中指出,需要迁移的依赖库(so库)为两个,源文件三个,代码12行其中,依赖库具体为libhighscore.so和libcurses.so,在后面实验中,这两个库需要重新编译。需要迁移的代码所在的文件分别为main.c及两个Makefile。切换到“源码迁移建议”中,查看具体情况。关于Makefile的迁移,系统给出了迁移建议汇编代码的迁移需要根据PPT内中的内容进行迁移。具体需要迁移的代码如下图所示:✨✨代码移植🎁🎁Makefile代码移植修改Makefile文件在“源码迁移建议”的页签中,找到Makefile的路径(由于两个Makefile需要修改的内容一致,因此只做一次步骤描述)。按照提示进入该路径,进行Makefile的修改,命令如下:cd /opt/portadv/portadmin/sourcecode/srcvim Makefile按照工具的提示,添加对应的参数,具体如下:然后重复以上步骤修改/opt/portadv/portadmin/sourcecode/so_src下的Makefile🎁🎁汇编代码移值修改main.c文件同样在“源码迁移建议”的页签中,找到main.c的路径按照提示进入该路径,进行main.c的修改,命令如下:cd /opt/portadv/portadmin/sourcecode/srcvim main.c对main.c中的汇编代码进行修改,具体如下:删除#后的源代码,然后增加适用于鲲鹏平台的、相同功能的汇编代码。"mrs %0, midr_el1": "=r"(s1)::"memory"修改后的文件如下:🎁🎁编译测试依赖库重新编译进入so_src目录下,使用make命令对程序所需的依赖库进行重新编译,命令如下:cd /opt/portadv/portadmin/sourcecode/so_srcmake源代码编译进入源代码主目录,使用make命令对应用进行重新编译,命令如下:cd /opt/portadv/portadmin/sourcecodemake使用以下命令修改依赖库环境变量:export LD_LIBRARY_PATH=/opt/portadv/portadmin/sourcecode/lib:$LD_LIBRARY_PATH🎁🎁测试运行在/opt/portadv/portadmin/sourcecode目录下使用下面命令运行程序:./2048正常运行
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签