鯤鵬軟件遷移學習筆記(理論部分加實操作 中)

      網友投稿 1277 2022-05-29

      基于鯤鵬Maven倉進行Maven軟件構建

      Maven提供了一個倉庫的功能存放編譯好的Jar包。構建項目時只需要在項目中配置對應的依賴就能自動從倉庫中下載Jar,但Maven中央倉庫中部分Jar存在x86依賴無法在鯤鵬平臺運行。而鯤鵬Maven倉存儲了部分已在鯤鵬平臺上編譯好的Jar,通過配置鯤鵬Maven倉庫構建時就能優先從鯤鵬Maven倉下載。

      操作前提 1.遠程登錄ECS2.安裝實驗所需軟件3.軟件依賴分析(Hive)4.遷移軟件包

      首先登入華為云(步驟省略),進入華為云控制臺,點擊 “彈性云服務器ECS” 進入ECS管理界面,還是用fxce遠程登入工具進行遠程登入,其他遠程登入工具也可用

      注:如果是自己的虛擬機直接輸入wget 命令 是無效的

      需要先安裝命令如 linux安裝解壓zip命令: yum install unzip? wget命令安裝: yum -y install wget ?? linux安裝tar命令:yum install -y tar

      首先我登入xfce

      假如公有地址192.168.1.1 私有地址192.168.1.10

      云服務器的彈性公網IP地址可以通過點擊“控制臺”->“服務列表”->“計算”->“彈性云服務器ECS”進入服務器列表,復制公有地址。

      接受秘鑰輸入“yes”,回車;

      輸入密碼:3(輸入密碼時,命令行窗口不顯示密碼,輸完之后直接鍵入回車)

      通過該命令遠程登入華為云彈性服務器ECS或自己的虛擬機服務器

      打開xfce終端

      LANG=en_US.UTF-8 ssh root@192.169.1.1

      安裝OpenJDK軟件

      下載軟件包

      cd

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

      解壓軟件包

      tar -zxvf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

      配置java環境變量

      echo 'JAVA_HOME=/root/jdk8u191-b12' >> /etc/profile

      echo 'PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile

      導入JAVA環境變量配置

      source /etc/profile

      驗證變量是否有效

      java -version

      有效如圖

      安裝Maven軟件包

      cd

      下載Maben倉庫軟件包

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/apache-maven-3.5.4-bin.tar.gz

      解壓Maven安裝包

      tar -zxvf apache-maven-3.5.4-bin.tar.gz

      maven環境變量配置

      echo 'MAVEN_HOME=/root/apache-maven-3.5.4' >> /etc/profile

      echo 'PATH=$PATH:$MAVEN_HOME/bin' >> /etc/profile

      maven環境變量配置導入

      source /etc/profile

      驗證maven倉庫是否安裝成功

      mvn -v

      安裝成功

      添加鯤鵬maven倉

      sed ?-i '246a securecentraltruekunpenghttps://mirrors.huaweicloud.com/kunpeng/maven/truehuaweicloudhttps://mirrors.huaweicloud.com/repository/maven/true' /root/apache-maven-3.5.4/conf/settings.xml

      sed -i '158a huaweicloud!kunpeng,!huaweicloud,*https://mirrors.huaweicloud.com/repository/maven/' ?/root/apache-maven-3.5.4/conf/settings.xml

      安裝Dependency Advisor

      下載Dependency Advisor軟件包

      cd

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz

      解壓

      tar -zxvf Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz

      安裝軟件包

      cd Dependency-advisor-Kunpeng-linux-1.1.3

      ./install.sh web

      三次回車

      等待6分鐘左右

      安裝CheckSo工具

      下載Checkso安裝包

      cd

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/checkSo.zip

      安裝CheckSo工具

      unzip checkSo.zip ?&& chmod +x checkSo/*.sh

      下載軟件依賴分析Hive軟件包

      cd

      wget -P /opt/depadv/depadmin/ https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm

      軟件包進行依賴檢測命令(依賴檢查結果保存在main.sh腳本所在目錄的JarResult.log文件以及NonJarResult.log文件中。JarResult.log 文件中保存的是Jar包中包含的不兼容鯤鵬處理器的so。格式為:組件包名,jar包名,缺乏arm版本的so庫文件名。NonJarResult.log文件中保存的是非Jar包中不兼容鯤鵬處理器的so)

      cd checkSo && ./main.sh /opt/depadv/depadmin/hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm

      查看兩個文件中的內容

      cat JarResult.log

      cat NonJarResult.log

      或者通過網頁版查看,瀏覽器中輸入 https://192.68.1.1:8082并訪問? (一定要是自己的ip地址哦)

      初始用戶名depadmin? 初始密碼Admin@9000

      輸入需要分析的軟件包hive_2_6_3_0_235-1.2.1000.2.6.3.0-235.noarch.rpm

      分析成功的頁面

      等待幾分鐘

      到遷移軟件包步驟

      下載Hive源碼

      cd

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/kunpeng-maven/hive-release-HDP-2.6.3.0-235-tag.tar.gz

      解壓

      tar -zxvf hive-release-HDP-2.6.3.0-235-tag.tar.gz

      編譯編碼

      cd ?hive-release-HDP-2.6.3.0-235-tag

      mvn clean install -Phadoop-2 -DskipTests -Pdist -T 4C

      等待幾分鐘即可

      用CheckSo工具重新檢測

      鯤鵬軟件遷移學習筆記(理論部分加實操作 中)

      cd /root/checkSo

      rm -f JarResult.log NonJarResult.log

      ./main.sh /root/hive-release-HDP-2.6.3.0-235-tag/packaging/target/apache-hive-1.2.1000.2.6.3.0-235-bin.tar.gz

      查看檢測結果

      cat *.log

      基于鯤鵬開發套件實現軟件包遷移

      Linux軟件包獲取的途徑有操作系統本地源,操作系統遠端源,華為云鯤鵬鏡像等,如果以上途徑無法獲取但有發行X86架構軟件包,可以通過Porting Advisor工具指導用戶將其重構成鯤鵬平臺軟件包,使用Porting Advisor工具將X86平臺Knox rpm軟件包重構成鯤鵬平臺rpm軟件包

      操作前提:1.安裝軟件2.rpm遷移(knox)3.重構

      首先登入華為云(步驟省略),進入華為云控制臺,點擊 “彈性云服務器ECS” 進入ECS管理界面,還是用fxce遠程登入工具進行遠程登入,其他遠程登入工具也可用

      注:如果是自己的虛擬機直接輸入wget 命令 是無效的,需要先安裝命令如 linux安裝解壓zip命令: yum install unzip? wget命令安裝: yum -y install wget ?? linux安裝tar命令:yum install -y tar

      首先我登入xfce,用Xfce遠程工具登入軟件,登入華為云服務器

      假如公有地址192.168.1.1 私有地址192.168.1.10

      LANG=en_us.UTF-8 ssh root@192.68.1.1

      安裝rpmbuild(rpmbuild-setuptree命令默認將在當前用戶目錄下創建一個RPM構建跟目錄結構,如果需要改變默認位置,可以修改配置文件:~/.rpmmacros中變量_topdir對應的值即可。)

      yum install rpmdevtools

      有如圖提示,輸入y即可

      rpmdev-setuptree

      安裝rpmrebuild

      下載rpmrebuild

      mkdir rpmrebuild

      cd rpmrebuild

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/package-migration/rpmrebuild-2.14.tar.gz

      下載完成后,解壓rpmrebuild-2.14.tar.gz文件

      tar xvfz rpmrebuild-2.14.tar.gz

      安裝

      make

      make install

      安裝完成

      安裝DependencyAdviso(華為鯤鵬分析掃描工具是一款可以簡化客戶應用遷移到TaiShan服務器或鯤鵬云服務(KC1,鯤鵬裸機)過程工具。當需要移植軟件時??上扔迷摴ぞ叻治隹梢浦埠鸵浦踩耄摴ぞ呓鉀Q了客戶軟件移植評估分析過程中人工分析投入大,準確率低,整體效率低下的痛點,通過該工具能夠自動分析并輸出指導報告。

      在/opt目錄下下載DependencyAdvisor安裝包

      cd /opt

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/package-migration/Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz

      解壓

      tar -zxvf Dependency-advisor-Kunpeng-linux-1.1.3.tar.gz

      安裝

      cd Dependency-advisor-Kunpeng-linux-1.1.3bash install.sh web

      回車三次

      安裝完成

      安裝PortingAdvisor(PortingAdvisor工具的作用:華為鯤鵬代碼遷移工具是一款可以簡化客戶應用遷移到TaiShan 100/200服務器或鯤鵬云服務(KC1、鯤鵬裸機)的過程的工具。對于源碼移植掃描中心,當客戶有X86平臺上源代碼的軟件要移植到TaiShan 100/200服務器或鯤鵬云服務(KC1、鯤鵬裸機)上時,可用該工具的源碼移植掃描中心自動分析出需修改的代碼內容,并指導用戶如何修改。源碼移植掃描中心解決了用戶代碼兼容性人工排查困難、移植經驗欠缺、反復依賴編譯調試定位等痛點。)

      進入 /opt目錄下

      cd /opt

      下載PortingAdvisor的安裝包

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/package-migration/Porting-advisor-Kunpeng-linux-2.1.1.SPC200.tar.gz

      解壓(當不知解壓文件名時可以輸入 ls查看)

      tar -zxvf Porting-advisor-Kunpeng-linux-*.tar.gz

      安裝PortingAdvisor軟件

      cd Porting-advisor-Kunpeng-linux-*

      bash install.sh web

      回車三次

      安裝完成

      安裝CheckSo工具

      切換到/home目錄下

      cd /home

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/package-migration/checkSo.zip

      解壓checkSo.zip

      unzip checkSo.zip

      切換到/checkSo目錄

      cd /home/checkSo

      添加權限

      chmod +x *.sh

      下載X86軟件包

      切換到/opt/depadv/depadmin/目錄下

      cd /opt/depadv/depadmin/

      下載軟件包

      wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/package-migration/knox_3_1_0_0_78-1.0.0.3.1.0.0-78.noarch.rpm

      .依賴文件檢查,通過工具檢查當前rpm包是否包含X86依賴文件,以確定是否能在鯤鵬平臺上直接運行

      用CheckSo小工具檢測:checkSo檢測的結果,結果在main.sh文件同目錄的JarResult.log文件和NonJarResult.log文件中。jar包檢測結果在JarResult.log中。非jar包中的檢測結果在NonJarResult.log中

      cd /home/checkSo

      ./main.sh /opt/depadv/depadmin/knox_3_1_0_0_78-1.0.0.3.1.0.0-78.noarch.rpm

      或使用網頁版檢測結果,登錄“華為鯤鵬分析掃描工具”,在瀏覽器新標簽頁訪問https://192.168.1.1:8082并訪問,(一定要是自己的ip地址哦)

      初始用戶名depadmin 密碼Admin@9000

      點擊分析

      .重構

      依賴文件檢查發現存在x86依賴,不能直接在鯤鵬平臺上運行,將x86 rpm重構成鯤鵬平臺rpm

      使用PortingAdvisor重構在終端窗口執行如下命令,

      將knox_3_1_0_0_78-1.0.0.3.1.0.0-78.noarch.rpm拷貝到/opt/portadv/portadmin下

      cd /opt/portadv/portadmin/

      cp /opt/depadv/depadmin/knox_3_1_0_0_78-1.0.0.3.1.0.0-78.noarch.rpm .

      登錄“華為鯤鵬代碼遷移工具”,在瀏覽器新標簽頁訪問https://192.168.1.1:8084

      初始用戶名portadmin和密碼Admin@9000,地址是云服務器的彈性公網IP

      進入華為云控制臺,鼠標移動到云桌面瀏覽器頁面中左側菜單欄,點擊“服務列表”->“計算”->“彈性云服務器ECS”,進行查看并復制。注意:瀏覽器可能會提醒地址不安全,請點擊“高級”設置“添加例外”->“獲取證書” ->“確認安全例外”。進入“軟件包構建中心”,如下圖所示,輸入下載的軟件包名稱knox_3_1_0_0_78-1.0.0.3.1.0.0-78.noarch.rpm,點擊“構建軟件包”。

      構建完成后在/opt/portadv/portadmin/rpms/目錄下生成knox_3_1_0_0_78-1.0.0.3.1.0.0-78.aarch64.rpm文件

      CheckSo依賴檢查通過CheckSo工具檢查生成的rpm文件,以確認沒有殘留X86依賴文件。

      切換/home/checkSo目錄下

      cd /home/checkSo

      rm -f JarResult.log NonJarResult.log

      ./main.sh /opt/portadv/portadmin/rpms/knox_3_1_0_0_78-1.0.0.3.1.0.0-78.aarch64.rpm

      查詢成功

      基于鯤鵬開發套件實現c/c++代碼遷移(在鯤鵬云服務器上,完成源碼編譯類軟件的打包、遷移環境配置及軟件遷移等操作)

      首先登入華為云(步驟省略),進入華為云控制臺,點擊 “彈性云服務器ECS” 進入ECS管理界面,還是用fxce遠程登入工具進行遠程登入,其他遠程登入工具也可用

      注:如果是自己的虛擬機直接輸入wget 命令 是無效的

      需要先安裝命令如 linux安裝解壓zip命令: yum install unzip? wget命令安裝: yum -y install wget ?? linux安裝tar命令:yum install -y tar

      首先我登入xfce

      假如公有地址192.168.1.1 私有地址192.168.1.10

      LANG=en_us.UTF-8 ssh root@192.168.1.1??????? (改為自己的ip地址)

      代碼掃描工具使用

      解壓源碼包,執行生成MakeFile

      cd

      unzip ?crcutil-42148a6df6986a257ab21c80f8eca2e54544ac4d.zip

      cd crcutil-42148a6df6986a257ab21c80f8eca2e54544ac4d

      sh autogen.sh

      ./configure

      執行結果

      Porting Advisor是華為鯤鵬代碼遷移工具,是一款可以簡化客戶應用遷移到鯤鵬云服務的過程的工具。

      cd

      /opt/portadv/tools/cmd/bin/porting-advisor -S crcutil-42148a6df6986a257ab21c80f8eca2e54544ac4d --cmd make ?--tos centos7.6

      復制框中的路勁

      cat /opt/protadv/tools/cmd/report/20200306110344/porting-advisor.csv

      crcutil組件遷移

      編譯腳本修改 切換到組件目錄下

      cd /crcutil-42148a6df6986a257ab21c80f8eca2e54544ac4d

      修改crcutil目錄下的編譯腳本autogen.sh

      vim autogen.sh

      修改crcutil目錄下的編譯腳本autogen.sh,鍵入“:88”回車定位至88行

      ARCH_NAME=`arch`

      if [ "$ARCH_NAME" == "x86" ]; then

      fi

      if [ "$ARCH_NAME" == "aarch64" ];then

      crcutil_flags="-DCRCUTIL_USE_MM_CRC32=1 -Wall ?-Icode -Iexamples -Itests -march=armv8-a+crc"

      修改如下圖

      修改 code/platform.h文件 (編譯宏修改)

      vim code/platform.h

      在管理宏定義的platform.h文件中增加HAVE_AARCH64宏定義:

      鍵入“:23”定位到23行,單擊鍵盤“i”進入編輯模式,在23行下方輸入如下代碼:

      #if !defined(HAVE_AARCH64)

      #if defined(__aarch64__)

      #define HAVE_AARCH64 1

      #else

      #define HAVE_AARCH64 0

      #endif ?// defined(__aarch64__)

      #endif ?//! defined(HAVE_ARCH64)

      vim code/crc32c_sse4.h

      添加代碼

      HAVE_AARCH64

      40行末尾處添加如下代碼

      #if HAVE_AARCH64

      #define CRC_UPDATE_WORD(crc, value) (crc = _mm_crc32_u64(crc, (value)))

      #define CRC_UPDATE_BYTE(crc, value) \

      (crc = _mm_crc32_u8(static_cast(crc), static_cast(value)))

      #endif

      #if !HAVE_AARCH64

      vim code/crc32c_sse4.cc

      21行末尾處添加代碼

      HAVE_AARCH64

      再增加__aarch64__編譯宏分支:單擊鍵盤“ESC”退出編輯,鍵入“:309”回車定位,添加如下代碼

      #if defined(__aarch64__)

      return true;

      #endif

      鍵入“:22”回車定位至22行,單擊鍵盤“i”進入編輯模式

      #if HAVE_AARCH64

      namespace crcutil {

      __forceinline uint64 _mm_crc32_u64(uint64 crc, uint64 value) {

      __asm__("crc32cx %w[c], %w[c], %x[v]":[c]"+r"(crc):[v]"r"(value));

      return crc;

      }

      __forceinline uint32 _mm_crc32_u32(uint32 crc, uint64 value) {

      __asm__("crc32cw %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value));

      return crc;

      }

      __forceinline uint32 _mm_crc32_u8(uint32 crc, uint8 value) {

      __asm__("crc32cb %w[c], %w[c], %w[v]":[c]"+r"(crc):[v]"r"(value));

      return crc;

      }

      } ?// namespace crcutil

      #else

      ESC”退出編輯,鍵入“:112”回車定位,再次單擊“i”鍵進入編輯,添加代碼

      #endif

      :wq 回車

      vim examples/interface.cc

      定位如上

      215末尾加入代碼

      || HAVE_AARCH64

      255行加入代碼

      || HAVE_AARCH64

      271行

      #if (CRCUTIL_USE_MM_CRC32 && (HAVE_I386 || HAVE_AMD64 ))|| HAVE_AARCH64

      執行命令編譯腳本,產生configure文件

      cd /crcutil-42148a6df6986a257ab21c80f8eca2e54544ac4d

      sh autogen.sh

      執行configure文件,生成MakeFile文件

      ./configure --prefix=/usr/local/crcutil

      安裝

      make -j4 install

      編譯完成后可通過組件自帶的測試用例,對功能正確性進行確認,編譯后,在crcutil-42148a6df6986a257ab21c80f8eca2e54544ac4d目錄下會生成測試用例(即usage可執行程序)

      cd /crcutil-42148a6df6986a257ab21c80f8eca2e54544ac4d

      ls

      ./usage

      鯤鵬920執行成功

      遷移學習 鯤鵬

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:程序員:如何走出自己的管理之路?
      下一篇:FedDG:在連續頻率空間中通過情景學習進行醫學圖像分割的聯合域泛化
      相關文章
      亚洲午夜AV无码专区在线播放 | 日韩亚洲精品福利| 久久精品国产亚洲av水果派| 九月丁香婷婷亚洲综合色| 朝桐光亚洲专区在线中文字幕| 亚洲三级在线免费观看| 久久久久亚洲AV无码专区首JN | 亚洲AV永久纯肉无码精品动漫| 日韩一卡2卡3卡4卡新区亚洲| 久久久久亚洲AV综合波多野结衣| 亚洲一区二区三区乱码A| 国产a v无码专区亚洲av| 久久亚洲国产精品五月天婷| 色久悠悠婷婷综合在线亚洲| 国产亚洲精久久久久久无码| 国产成人精品日本亚洲| 亚洲AV无码成人精品区天堂| 婷婷亚洲综合五月天小说| 2022年亚洲午夜一区二区福利| 久久久无码精品亚洲日韩按摩| 亚洲黄色免费电影| 亚洲免费在线观看视频| 一本色道久久综合亚洲精品蜜桃冫 | 亚洲精品无码日韩国产不卡?V| 亚洲人成网站在线观看青青| 中文字幕一精品亚洲无线一区| 亚洲日韩在线中文字幕第一页| 久久久亚洲精品蜜桃臀| 国产亚洲精AA在线观看SEE| 亚洲AV成人片色在线观看高潮| 亚洲视频在线免费看| 四虎亚洲精品高清在线观看| 亚洲国产AV一区二区三区四区| 女bbbbxxxx另类亚洲| 国产亚洲美女精品久久久2020| 久久精品国产亚洲沈樵| 亚洲美女色在线欧洲美女| 亚洲资源最新版在线观看| 亚洲av无码一区二区三区人妖 | 亚洲人成电影院在线观看| 亚洲国产精品自在自线观看|