• [技术干货] HPCKit安装指引
    为保证HPCKit组件能够正常工作,请检查您的安装环境,确保安装环境达到推荐配置要求。表1 硬件要求设备类型设备型号处理器华为鲲鹏920系列处理器展开表表2 操作系统兼容性列表操作系统版本要求openEuleropenEuler 22.03 LTS SP2 AArch64openEuler 22.03 LTS SP3 AArch64银河麒麟银河麒麟高级服务器操作系统V10(HPC版) AArch64麒麟信安麒麟信安服务器操作系统V3.5.2 AArch64表1 待下载的工具软件工具名称作用获取方式PuTTY跨平台远程访问工具,用于在Windows系统访问各节点。您可以访问chiark主页下载PuTTY软件。建议使用最新版本的PuTTY软件。WinSCP跨平台文件传输工具,用于在Windows系统和Linux系统间传输文件。说明请使用5.7.5或更高版本,并在传输文件时选用SCP协议。您可以访问WinSCP主页下载WinSCP软件。展开表操作步骤在浏览器地址栏中输入“cid:link_11”,按“Enter”。单击对应版本的“软件包下载”,下载软件包。获取的HPCKit软件包名称示例如:HPCKit_24.0.RC2_Linux-aarch64.tar.gz。说明24.0.RC2:HPCKit交付版本号,请根据实际情况替换。使用WinSCP工具,将获取到的软件包上传至HPCKit的安装节点。为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的数字签名文件用于完整性验证。在软件包下载之后,请参考《OpenPGP签名验证指南》,对下载的软件包进行PGP数字签名校验。如果校验失败,请不要使用该软件包,先联系华为技术支持工程师解决。使用软件包安装/升级之前,也需要按上述过程先验证软件包的数字签名,确保软件包未被篡改。获取校验工具和校验方法:cid:link_10表1 HPCKit目录规划要求项目空间最小要求目录权限说明HPCKit安装目录10GB权限:755HPCKit安装路径。root用户操作时,默认安装路径为/opt;非root用户操作时,默认安装路径为~。批量安装HPCKit时,安装目录请参见《Kunpeng HPC Solution 24.0.RC2 LLD模板》中“项目基本信息 > 共享存储目录规划 > HPCKit安装目录”。操作步骤使用PuTTY工具,登录HPCKit的安装节点。执行以下命令,进入HPCKit软件包所在目录。cd HPCKit软件包所在目录说明批量安装HPCKit时,安装目录请参见《Kunpeng HPC Solution 24.0.RC2 LLD模板》中“项目基本信息 > 共享存储目录规划 > HPCKit安装目录”。执行以下命令,解压HPCKit软件包。tar xvf HPCKit_24.0.RC2_Linux-aarch64.tar.gz安装HPCKit。执行以下命令,进入安装流程。sh HPCKit_24.0.RC2_Linux-aarch64/install.sh在回显信息后,输入HPCKit的安装目录。Enter the installation path (default: /opt):HPCKit的安装目录回显信息中包含如下提示信息,表示已完成安装目录配置,请执行4.c;否则,请先根据报错信息完成异常处理,然后完成安装目录配置,再执行4.c。You have selected: /opt说明如果用户对1中输入的HPCKit的安装目录有写权限,则HPCKit可以安装在该目录下。如果用户对1中输入的HPCKit的安装目录无写权限,界面出现如下回显,并再次提示用户输入安装目录,如果用户不输入安装目录并直接按回车,则会默认安装在~目录下,~目录是用户的$HOME目录。Error: You do not have permission to write to HPCKit的安装目录. Please choose another path.如果配置的安装目录空间小于10GB,则会回显以下提示信息,建议重新规划安装目录,或清理该目录空间。The space of the HPCKit installation directory is insufficient. About 10 GB space is required for installing HPCKit. Run the 'df -h /opt' command to check the space of the installation directory.在回显信息后,选择需要安装的编译器。出现如下回显信息后,如果全部安装(系统默认),直接按“Enter”;如果只安装Bisheng-Compiler,先输入“2”,然后按两次“Enter”;如果只安装GCC-Compiler,先输入“1”,然后按两次“Enter”。说明按“1”或“2”表示切换“1”或“2”在回显中对应的编译器“是否安装”的选项,例如1代表毕昇编译器(默认安装),按下1表示切换为不安装毕昇编译器。Start installing Compiler... Please Enter (1-2) to switch compiler selection, only checked compiler(s) will be installed. Enter 'q' to quit, 'y' or enter to confirm compiler installation. Number Option Choice Descriptions 1 Bisheng-Compiler Y Bisheng Compiler 2 GCC-Compiler Y GCC Compiler 回显如下信息(以全部安装为例),表示安装成功,请继续执行4;否则,请先根据报错信息完成异常处理,然后完成编译器安装,再执行4。Confirm Installation. Start Installing Bisheng Compiler Bisheng Compiler Installation Finished. Start Installing Gcc For openEuler Gcc For openEuler Installation Finished.选择安装组件HMPI、KPCCL、KML。说明如果同时使用毕昇和GCC两种编译器,则根据界面信息先完成毕昇编译器编译的组件安装,然后完成GCC编译器编译的组件安装。如果仅使用毕昇或GCC编译器中的一种,则根据界面信息完成对应的组件安装即可。使用毕昇编译器出现如下回显信息后,如果全部安装(系统默认),直接按“Enter”;如果只安装HMPI,先输入“1”,然后按“Enter”,再输入“2”,然后按两次“Enter”。如果只安装KPCCL,先输入“1”,然后按“Enter”,再输入“3”,然后按两次“Enter。如果只安装KML,先输入“2”,然后按“Enter”,再输入“3”,然后按两次“Enter。如果需要安装两个组件例如KML和KPCCL,先输入“3”,然后按两次“Enter”。如果不安装任何组件,先输入“q”,然后按“Enter”。Start Installing Bisheng Compiled Component... Please Enter (1-3) to switch component selection, only checked component(s) will be installed. Enter 'q' to quit, 'y' or enter to confirm component installation. Number Option Choice Descriptions 1 KML Y Kunpeng Math Library (Bisheng compiled) 2 KPCCL Y Kunpeng Parallel Computing Core Library (Bisheng compiled) 3 HMPI Y Hyper Message Passing Interface (Bisheng compiled)回显如下信息(以全部安装为例),表示安装成功,操作结束;否则,请先根据报错信息完成异常处理,然后完成组件安装。Confirm Installation. Start Installing bisheng compiled KML Kunpeng CPU check successfully. KML Installation Finished Start Installing bisheng compiled KPCCL KPCCL Installation Finished. Start Installing bisheng compiled Hyper MPI HMPI Installation Finished.使用GCC编译器出现如下回显信息后,如果全部安装(系统默认),直接按“Enter”;如果只安装HMPI,先输入“1”,然后按“Enter”,再输入“2”,然后按两次“Enter”。如果只安装KPCCL,先输入“1”,然后按“Enter”,再输入“3”,然后按两次“Enter”。如果只安装KML,先输入“2”,然后按“Enter”,再输入“3”,然后按两次“Enter”。如果需要安装两个组件例如KML和KPCCL,先输入“3”,然后按两次“Enter”。如果不安装任何组件,先输入“q”,然后按“Enter”。Start installing GCC Compiled Component... Please Enter (1-2) to switch component selection, only checked component(s) will be installed. Enter 'q' to quit, 'y' or enter to confirm component installation. Number Option Choice Descriptions 1 KML Y Kunpeng Math Library (GCC compiled) 2 KPCCL Y Kunpeng Parallel Computing Core Library (GCC compiled) 3 HMPI Y Hyper Message Passing Interface (GCC compiled)回显如下信息,表示安装成功,操作结束;否则,请先根据报错信息完成异常处理,然后完成组件安装。Confirm Installation. Start Installing gcc compiled KML Kunpeng CPU check successfully. KML Installation Finished Start Installing gcc compiled Hyper MPI HMPI Installation Finished.安装HIO组件。场景一:已安装以下HIO桥接目标库libhdf5.so >= 1.12.0、libnetcdf.so >= 4.7.4和libpnetcdf.so >= 1.12.1且配置了环境变量。会出现以下回显信息。Start installing HIO Component... Please Enter (1-1) to switch component selection, only checked component(s) will be installed. Enter 'q' to quit, 'y' or enter to confirm component installation. Number Option Choice Descriptions 1 HIO Y Kunpeng Hyper IO Middleware如果安装HIO组件(系统默认),直接按“Enter”。回显如下信息,表示安装成功,操作结束;否则,请先根据报错信息完成异常处理,然后完成组件安装。Confirm Installation. Start Installing HIO HIO Installation Finished如果不安装HIO组件,输入“1”,然后按两次“Enter”。场景二:未安装以下HIO桥接目标库libhdf5.so >= 1.12.0、libnetcdf.so >= 4.7.4和libpnetcdf.so >= 1.12.1,或者已安装但未配置环境变量。会出现以下回显信息。选择y,继续安装HIO组件。如果环境中不存在HIO桥接目标库,参照安装HIO桥接目标库完成HIO桥接目标库安装并配置环境变量。如果环境中已存在HIO桥接目标库但未配置环境变量,参考配置HIO桥目标接库的环境变量配置环境变量。选择n,退出安装HIO组件。Start Installing HIO libhdf5.so >= 1.12.0 required, Please update the library to the required version. Continue Installation? [y/n] y Confirm Installation. libnetcdf.so >= 4.7.4 required, Please update the library to the required version. Continue Installation? [y/n] y Confirm Installation. libpnetcdf.so >= 1.12.1 required, Please update the library to the required version. Continue Installation? [y/n] y Confirm Installation. HIO Installation Finished使用PuTTY工具,登录HPCKit的安装节点。执行以下命令,进入HPCKit软件包所在目录。cd HPCKit软件包所在目录说明批量安装HPCKit时,安装目录请参见《Kunpeng HPC Solution 24.0.RC2 LLD模板》中“项目基本信息 > 共享存储目录规划 > HPCKit安装目录”。执行以下命令,解压HPCKit软件包。tar xvf HPCKit_24.0.RC2_Linux-aarch64.tar.gz执行以下命令,进入安装流程。sh HPCKit_24.0.RC2_Linux-aarch64/install.sh -y --prefix=HPCKit安装目录回显如下信息,表示安装成功,操作结束;否则,请先根据报错信息完成异常处理,然后重新安装。Start installing HPCKit... You have selected: HPCKit安装目录 Start Installing Bisheng Compiler Bisheng Compiler Installation Finished. Start Installing Gcc For openEuler Gcc For openEuler Installation Finished. Start Installing bisheng compiled KML Kunpeng CPU check successfully. KML Installation Finished Start Installing bisheng compiled KPCCL KPCCL Installation Finished. Start Installing bisheng compiled Hyper MPI HMPI Installation Finished. Start Installing gcc compiled KML Kunpeng CPU check successfully. KML Installation Finished Start Installing gcc compiled KPCCL KPCCL Installation Finished. Start Installing gcc compiled Hyper MPI HMPI Installation Finished. Start Installing HIO HIO Installation Finished说明如果用户对1中输入的HPCKit的安装目录有写权限,则HPCKit可以安装在该目录下。如果用户对1中输入的HPCKit的安装目录无写权限,界面出现如下回显,并再次提示用户输入安装目录,如果用户不输入安装目录并直接按回车,则会默认安装在~目录下,~目录是用户的$HOME目录。Error: You do not have permission to write to HPCKit的安装目录. Please choose another path.安装HIO组件时,检查发现缺少HIO组件依赖的动态库,则会显示以下提示信息,如果环境中不存在HIO桥接目标库,参照安装HIO桥接目标库完成HIO桥接目标库安装并配置环境变量。如果环境中已存在HIO桥接目标库但未配置环境变量,参考配置HIO桥目标接库的环境变量配置环境变量。libhdf5.so >= 1.12.0 required, Please update the library to the required version. libnetcdf.so >= 4.7.4 required, Please update the library to the required version. libpnetcdf.so >= 1.12.1 required, Please update the library to the required version.如果配置的安装目录空间小于10GB,则会回显以下提示信息,建议重新规划安装目录,或清理该目录空间。The space of the HPCKit installation directory is insufficient. About 10 GB space is required for installing HPCKit. Run the 'df -h /opt' command to check the space of the installation directory.modules方式支持选择加载环境变量管理模块,本文介绍使用modules方式加载环境变量管理模块的方法。前提条件已配置yum源。执行以下命令检查节点YUM源是否已配置,确保回显中有OS对应的YUM源。yum list | grep kernel已安装tcl工具。执行以下命令检查是否已安装tcl工具。yum list installed | grep tcl.aarch64回显有如下信息说明已安装tcl工具。tcl.aarch64 1:8.6.12-4.oe2203sp1 @anaconda如果未安装tcl工具,执行以下命令安装。yum install -y tcl*已安装module工具。执行以下命令检查是否已安装module工具。yum list installed | grep environment-modules.aarch64回显有如下信息说明已安装module工具。environment-modules.aarch64 5.0.1-3.oe2203sp1 @OS如果未安装module工具,执行以下命令安装,并加载环境变量。yum install -y environment-modules source /etc/profile.d/modules.sh注意事项建议同一环境中使用一种编译器进行编译,如果同时使用两种编译器进行编译,则需要注意环境变量信息是否正确。具体原因及配置方法如下:由于环境变量信息中,参数“CC”、“CXX”、“FC”、“F77”、“F90”和“OPAL_PREFIX”的值只针对当前使用的编译器生效,如果要使用另一种编译器,需要先卸载当前已有环境变量模块,然后加载需要另一种编译器进行编译的组件环境变量模块。不同编译器编译对应组件的环境变量管理模块时,其环境变量参数值请参见表1。示例:当前使用毕昇编译器,已加载环境变量模块“bisheng/hmpi/hmpi”,此时,“OPAL_PREFIX”的值为“/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi”,如果需要切换为GCC编译器,则需要先卸载环境变量模块“bisheng/hmpi/hmpi”,然后加载环境变量模块“gcc/hmpi/hmpi”,加载完成后,“OPAL_PREFIX”的值为“/opt/HPCKit/24.6.30/hmpi/gcc/hmpi”。操作步骤使用PuTTY工具,登录HPCKit的安装节点。执行以下命令,进入HPCKit安装目录。cd /opt/HPCKit/latest说明/opt:HPCKit的默认安装目录,请替换为实际路径。执行以下命令,添加modulefiles。module use modulefiles说明使用 sh modulefiles-setup.sh 可以恢复误删的 modulefiles 文件夹。执行以下命令,查询可用环境变量模块。module avail回显如下类似信息:------------------------------------------------ /opt/HPCKit/24.6.30/modulefiles ------------------------------------------------ bisheng/compiler/bishengmodule bisheng/kml/kml gcc/compiler/gccmodule gcc/kml/kml hio/hio bisheng/hmpi/hmpi bisheng/kml/kspblas/omp gcc/hmpi/hmpi gcc/kml/kspblas/omp bisheng/kml/kblas/omp bisheng/kml/kspblas/serial gcc/kml/kblas/omp gcc/kml/kspblas/serial bisheng/kml/kblas/pthread bisheng/kml/kvml/omp gcc/kml/kblas/pthread gcc/kml/kvml/omp bisheng/kml/kblas/serial-locking bisheng/kml/kvml/serial gcc/kml/kblas/serial-locking gcc/kml/kvml/serial bisheng/kml/kblas/serial-nolocking bisheng/kpccl/kpccl gcc/kml/kblas/serial-nolocking gcc/kpccl/kpccl说明如果回显信息中包含不需要加载的模块信息,您可以执行以下命令删除。module unuse /opt/HPCKit/24.6.30/modulefiles其中,”/opt/HPCKit/24.6.30/modulefiles”为模块名称,请根据实际情况替换。加载环境变量模块。执行以下命令,将组件的相关信息添加至环境变量中。module load modulefile说明modulefile:组件环境变量管理模块,具体请参见组件环境变量管理模块信息。示例:将HMPI组件bisheng版本信息添加到环境变量中module load bisheng/hmpi/hmpi说明当存在环境变量模块不再使用时,您可以执行以下命令卸载。module unload bisheng/hmpi/hmpi其中,”bisheng/hmpi/hmpi”为待删除的环境变量模块,请根据实际情况替换。执行以下命令,查看已加载环境变量模块。module list在回显信息中查看所需环境变量模块是否均存在。是,请执行步骤6。否,请先执行5.a加载缺失环境变量模块,然后执行6。查询对应组件的环境变量信息。表1 组件环境变量信息的查询方法setvars.sh方式支持全量加载指定编译器对应组件的环境变量模块。操作步骤使用PuTTY工具,登录HPCKit的安装节点。执行以下命令,进入HPCKit安装目录。cd /opt/HPCKit/latest说明/opt:HPCKit的默认安装目录,请替换为实际路径。执行以下命令,配置环境变量信息。source setvars.sh 参数名称说明该命令默认配置gcc版本组件的环境变量信息。参数名称为可选,具体请参见表1。表1 参数介绍参数名称参数值说明--use-bisheng不涉及添加该参数,添加已安装组件bisheng版本的相关信息到环境变量中。--force不涉及配置该参数,可以强制执行setvars.sh。说明如果之前已经执行过setvars.sh,再次执行会提示setvars.sh已经执行过。--kml_kblaslocking添加组件KML子库kblas单线程加锁动态库路径到环境变量LD_LIBRARY_PATH中。nolocking添加组件KML子库kblas单线程不加锁动态库路径到环境变量LD_LIBRARY_PATH中。omp添加组件KML子库kblas OpenMP实现多线程动态库路径到环境变量LD_LIBRARY_PATH中。pthread(默认值)添加组件KML子库kblas pthread实现多线程动态库路径到环境变量LD_LIBRARY_PATH中。--kml_kspblasmulti(默认值)添加组件KML子库kspblas多线程动态库路径到环境变量LD_LIBRARY_PATH中。single添加组件KML子库kspblas单线程动态库路径到环境变量LD_LIBRARY_PATH中。--kml_kvmlmulti添加组件KML子库kvml多线程动态库路径到环境变量LD_LIBRARY_PATH中。单独配置该参数,需要同时配置--kml_kblas和--kml_kspblas。single(默认值)添加组件KML子库kvml单线程动态库路径到环境变量LD_LIBRARY_PATH中。--help不涉及查看“source setvars.sh 参数名称”命令的使用说明。展开表说明每次执行source setvars.sh命令时,kml_kblas、kml_kspblas和kml_kvml值都会被重置为该参数的默认值(见表1),如果该参数需要保持原来的非默认值,需同时修改参数值。举例如下。由gcc切换为毕昇编译器时,如果需要使kml_kblas的非默认值保持不变,例如仍为locking,执行以下命令。source setvars.sh --use-bisheng --kml_kblas=locking --force仅修改kml_kblas、kml_kspblas和kml_kvml中的一个参数时,另外两个参数如需保持原来的非默认值,需要同时修改,执行以下命令。source setvars.sh --kml_kvml=multi --kml_kspblas=single执行以下命令,查询环境变量信息。使用毕昇编译器编译组件时echo $LD_LIBRARY_PATH; echo $PATH; echo $CPATH; echo $INCLUDE; echo $OPAL_PREFIX; echo $CC; echo $CXX; echo $FC; echo $F77; echo $F90; $HIO_HOME说明环境变量参数含义具体如下:LD_LIBRARY_PATH:动态链接库的搜索路径。PATH:可执行程序的搜索路径。CPATH:KML组件的头文件路径。INCLUDE:Hyper MPI中hmpi、hucx和xucg组件的头文件路径,以及KML组件的头文件路径。OPAL_PREFIX:Hyper MPI中hmpi组件的安装目录。CC:编译C语言程序的编译器名称,值为clang。CXX:编译C++程序的编译器名称,值为clang++。FC:编译Fortran程序的编译器名称,值为flang。F77:编译Fortran77程序的编译器名称,值为flang。F90:编译Fortran90程序的编译器名称,值为flang。HIO_HOME:HIO组件安装路径。回显信息示例:/opt/HPCKit/24.6.30/kpccl/bisheng/lib:/opt/HPCKit/24.6.30/kml/bisheng/lib/kvml/single:/opt/HPCKit/24.6.30/kml/bisheng/lib/kspblas/multi:/opt/HPCKit/24.6.30/kml/bisheng/lib/kblas/pthread:/opt/HPCKit/24.6.30/kml/bisheng/lib:/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/lib:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/lib:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/lib:/opt/HPCKit/24.6.30/compiler/bisheng/lib:/usr/local/lib /opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/bin:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/bin:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/bin:/opt/HPCKit/24.6.30/compiler/bisheng/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin /opt/HPCKit/24.6.30/kpccl/bisheng/include:/opt/HPCKit/24.6.30/kml/bisheng/include: /opt/HPCKit/24.6.30/kpccl/bisheng/include/opt/HPCKit/24.6.30/kml/bisheng/include:/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/include:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/include:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/include: /opt/HPCKit/24.6.30/hmpi/bisheng/hmpi clang clang++ flang flang flang /opt/HPCKit/24.6.30/hio使用GCC编译器编译组件时echo $LD_LIBRARY_PATH; echo $PATH; echo $CPATH; echo $INCLUDE; echo $OPAL_PREFIX; echo $CC; echo $CXX; echo $FC; echo $F77; echo $F90; $HIO_HOME说明环境变量参数含义具体如下:LD_LIBRARY_PATH:动态链接库的搜索路径。PATH:可执行程序的搜索路径。CPATH:KML组件的头文件路径。INCLUDE:Hyper MPI中hmpi、hucx和xucg组件的头文件路径,以及KML组件的头文件路径。OPAL_PREFIX:Hyper MPI中hmpi组件的安装目录。CC:编译C语言程序的编译器名称,值为gcc。CXX:编译C++程序的编译器名称,值为g++。FC:编译Fortran程序的编译器名称,值为gfortran。F77:编译Fortran77程序的编译器名称,值为gfortran。F90:编译Fortran90程序的编译器名称,值为gfortran。HIO_HOME:HIO组件安装路径。回显信息示例:/opt/HPCKit/24.6.30/kpccl/gcc/lib:/opt/HPCKit/24.6.30/kml/gcc/lib/kvml/single:/opt/HPCKit/24.6.30/kml/gcc/lib/kspblas/multi:/opt/HPCKit/24.6.30/kml/gcc/lib/kblas/pthread:/opt/HPCKit/24.6.30/kml/gcc/lib:/opt/HPCKit/24.6.30/hmpi/gcc/hmpi/lib:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/lib:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/lib:/opt/HPCKit/24.6.30/compiler/gcc/lib64:/usr/local/lib /opt/HPCKit/24.6.30/hmpi/gcc/hmpi/bin:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/bin:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/bin:/opt/HPCKit/24.6.30/compiler/gcc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin /opt/HPCKit/24.6.30/kpccl/gcc/include:/opt/HPCKit/24.6.30/kml/gcc/include: /opt/HPCKit/24.6.30/kpccl/gcc/include:/opt/HPCKit/24.6.30/kml/gcc/include:/opt/HPCKit/24.6.30/hmpi/gcc/hmpi/include:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/include:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/include: /opt/HPCKit/24.6.30/hmpi/gcc/hmpi gcc g++ gfortran gfortran gfortran /opt/HPCKit/24.6.30/hio前提条件已安装HPCKit。操作步骤使用PuTTY工具,登录HPCKit的安装节点。执行以下命令,进入HPCKit的安装目录。cd /opt说明/opt:HPCKit的安装目录,请根据实际情况替换。执行以下命令,卸载HPCKit。sh /opt/HPCKit/latest/uninstall.sh回显如下信息,表示HPCKit卸载成功,操作结束;否则,请联系华为技术支持。Start uninstall HPCKit... * modulefiles removed * kpccl removed * kml removed * hmpi removed * hio removed * compiler removed Uninstall HPCKit Success说明此处回显以安装了HPCKit全部组件并卸载为例。组件名称模块名称操作步骤Compilerbisheng/compiler/bishengmoduleecho $LD_LIBRARY_PATH; echo $PATH; echo $CC; echo $CXX; echo $FC; echo $F77; echo $F90说明环境变量参数含义具体如下:LD_LIBRARY_PATH:动态链接库的搜索路径,例如“/opt/HPCKit/24.6.30/compiler/bisheng/lib”。PATH:可执行程序的搜索路径,例如“/opt/HPCKit/24.6.30/compiler/bisheng/bin”。CC:编译C语言程序的编译器名称,值为clang。CXX:编译C++程序的编译器名称,值为clang++。FC:编译Fortran程序的编译器名称,值为flang。F77:编译Fortran77程序的编译器名称,值为flang。F90:编译Fortran90程序的编译器名称,值为flang。回显信息示例:/opt/HPCKit/24.6.30/compiler/bisheng/lib:/usr/local/lib /opt/HPCKit/24.6.30/compiler/bisheng/bin:/usr/local/shc/bin:/usr/share/Modules/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin clang clang++ flang flang flanggcc/compiler/gccmoduleecho $LD_LIBRARY_PATH; echo $PATH; echo $CC; echo $CXX; echo $FC; echo $F77; echo $F90说明环境变量参数含义具体如下:LD_LIBRARY_PATH:动态链接库的搜索路径,例如“/opt/HPCKit/24.6.30/compiler/gcc/lib64:/opt/HPCKit/24.6.30/compiler/gcc/lib”。PATH:可执行程序的搜索路径,例如“/opt/HPCKit/24.6.30/compiler/gcc/bin”。CC:编译C语言程序的编译器名称,值为gcc。CXX:编译C++程序的编译器名称,值为g++。FC:编译Fortran程序的编译器名称,值为gfortran。F77:编译Fortran77程序的编译器名称,值为gfortran。F90:编译Fortran90程序的编译器名称,值为gfortran。回显信息示例:/opt/HPCKit/24.6.30/compiler/gcc/lib64:/usr/local/lib /opt/HPCKit/24.6.30/compiler/gcc/bin:/usr/local/shc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin gcc g++ gfortran gfortran gfortranHMPIbisheng/hmpi/hmpiecho $LD_LIBRARY_PATH; echo $PATH; echo $INCLUDE; echo $OPAL_PREFIX说明环境变量参数含义具体如下:LD_LIBRARY_PATH:动态链接库的搜索路径,例如“/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/lib:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/lib:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/lib”。PATH:可执行程序的搜索路径,例如“/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/bin:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/bin:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/bin”。INCLUDE:Hyper MPI中hmpi、hucx和xucg组件的头文件目录,例如“/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/include:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/include:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/include”。OPAL_PREFIX:Hyper MPI中hmpi组件的安装目录,例如“/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi”。回显信息示例:/opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/lib:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/lib:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/lib:/usr/local/lib /opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/bin:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/bin:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin /opt/HPCKit/24.6.30/hmpi/bisheng/hmpi/include:/opt/HPCKit/24.6.30/hmpi/bisheng/hucx/include:/opt/HPCKit/24.6.30/hmpi/bisheng/xucg/include /opt/HPCKit/24.6.30/hmpi/bisheng/hmpigcc/hmpi/hmpiecho $LD_LIBRARY_PATH; echo $PATH; echo $INCLUDE; echo $OPAL_PREFIX说明环境变量参数含义具体如下:LD_LIBRARY_PATH:动态链接库的搜索路径,例如“/opt/HPCKit/24.6.30/hmpi/gcc/hmpi/lib:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/lib:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/lib”。PATH:可执行程序的搜索路径,例如“/opt/HPCKit/24.6.30/hmpi/gcc/hmpi/bin:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/bin:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/bin”。INCLUDE:Hyper MPI中hmpi、hucx和xucg组件的头文件目录,例如“/opt/HPCKit/24.6.30/hmpi/gcc/hmpi/include:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/include:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/include”。OPAL_PREFIX:Hyper MPI中hmpi组件的安装目录,例如“/opt/HPCKit/24.6.30/hmpi/gcc/hmpi”。回显信息示例:/opt/HPCKit/24.6.30/hmpi/gcc/hmpi/lib:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/lib:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/lib:/usr/local/lib /opt/HPCKit/24.6.30/hmpi/gcc/hmpi/bin:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/bin:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin /opt/HPCKit/24.6.30/hmpi/gcc/hmpi/include:/opt/HPCKit/24.6.30/hmpi/gcc/hucx/include:/opt/HPCKit/24.6.30/hmpi/gcc/xucg/include /opt/HPCKit/24.6.30/hmpi/gcc/hmpiKMLbisheng/kml/kmlecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kblas/serial-lockingecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kblas/locking /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kblas/serial-nolockingecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kblas/nolocking /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kblas/ompecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kblas/omp /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kblas/pthreadecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kblas/pthread /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kspblas/ompecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kspblas/multi /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kspblas/serialecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kspblas/single /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kvml/ompecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kvml/multi /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includebisheng/kml/kvml/serialecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/bisheng/lib/kvml/single /opt/HPCKit/24.6.30/kml/bisheng/include /opt/HPCKit/24.6.30/kml/bisheng/includegcc/kml/kmlecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kblas/serial-lockingecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kblas/locking /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kblas/serial-nolockingecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kblas/nolocking /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kblas/ompecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kblas/omp /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kblas/pthreadecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kblas/pthread /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kspblas/ompecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kspblas/multi /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kspblas/serialecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kspblas/single /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kvml/ompecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kvml/multi /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includegcc/kml/kvml/serialecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kml/gcc/lib/kvml/single /opt/HPCKit/24.6.30/kml/gcc/include /opt/HPCKit/24.6.30/kml/gcc/includeKPCCLbisheng/kpccl/kpcclecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kpccl/bisheng/lib /opt/HPCKit/24.6.30/kpccl/bisheng/include /opt/HPCKit/24.6.30/kpccl/bisheng/includegcc/kpccl/kpcclecho $LD_LIBRARY_PATH; echo $CPATH; echo $INCLUDE回显信息示例:/opt/HPCKit/24.6.30/kpccl/gcc/lib /opt/HPCKit/24.6.30/kpccl/gcc/include /opt/HPCKit/24.6.30/kpccl/gcc/includeHIOhio/hioecho $HIO_HOME回显信息示例:/opt/HPCKit/24.6.30/hio
  • [技术干货] 【DTSE Tech Talk 精选问答】NO.69丨鲲鹏DevKit,助力开发者基于鲲鹏服务器实现一站式应用开发
    想知道如何在鲲鹏平台上快速上手应用开发吗?鲲鹏DevKit告诉你答案!本期直播将聚焦鲲鹏DevKit,它集成了开发、编译、调试、调优、测试等软件开发的各个环节,帮助开发者完成基于鲲鹏服务器的一站式应用开发,提升应用开发效率,提升应用性能。直播链接:cid:link_0Q:鲲鹏DevKit 应用迁移工具支持哪些系统平台迁移?A:目前主要支持CentOS迁移到麒麟Q:鲲鹏DevKit有哪些行业应用案例?A:医疗、金融、运营商、基础科研、制造、电力、气象、交通、安平、互联网、政府、大企业Q:如何评估使用鲲鹏 DevKit 开发的应用的性能提升效果?A:评估应用性能,可以从以下几个方便入手:1,选取相关的基准测试,测量响应时间、吞吐量等指标;2,使用devkit性能采集工具,可以采集应用的性能指标,分析性能的瓶颈和改进空间;3,评估资源的利用情况,包括CPU、内存、磁盘和网络等,使用合理的分析方法,如TMA、roofline等。Q:对于新手开发者来说,鲲鹏 DevKit 的学习曲线是怎样的? 7. 它是否提供了丰富的文档和教程资源来帮助开发者快速上手?A:鲲鹏社区具有全套的DevKit学习流程和学习课程,可以根据课程顺序进行学习。地址为:https://www.hikunpeng.com/learn/courses?activeTab=1547169694099677185 文档可以参考鲲鹏社区的DevKit用户手册和最佳实践,地址为https://www.hikunpeng.com/document/detail/zh/kunpengdevps/overview/kunpengdevps.htmlQ:目标VM和Java程序在线分析的精度是如何确定的? 如何便捷存档数据便于后续相同业务对比分析?A:精度提供采集频率1ms-1000ms动态配置,可以灵活选择。在线分析和采样分析的数据支持导入导出,以方便后续相同业务对比分析。Q:鲲鹏DevKit系统性能分析工具包括哪些功能?A:性能分析工具目前包括:场景化ai调优分析、调优助手、全景分析、HPC分析、微架构分析、访存分析、进线程分析、热点函数、I/O分析、锁与等待分析、Roofline分析、资源调度分析等功能。Q:鲲鹏DevKit 系统性能分析工具中,HPC集群检查能检查哪些内容?A:通过对用户指定的MPI集群进行硬件、软件配置检查,并给出集群中各节点软硬件配置的一致度报告。检查对象支持硬件领域的CPU、GPU、互联、内存、网卡、磁盘,软件领域中的OS、Kernel、环境变量、MPI、OpenMP、HPC常用依赖库等维度。对于不符合鲲鹏平台最佳实践的配置,工具会给出优化建议。Q:鲲鹏DevKit 源码迁移支持哪些开发语言?A:ASM/C/C++/Fortran/Python/Java/Scala/GoQ:鲲鹏DevKit 系统迁移中支持哪些操作系统、中间件、数据库?A:系统:CentOS->麒麟V10中间件:Nginx,Redis,Tomcat,金蝶、东方通数据库:达梦、人大金仓Q:在线分析中如何保证系统额外开销小?采样分析的采样频率如何确定?A:在线分析支持采集频率1ms-1000ms动态配置,以更精确地捕获方法的耗时,这使得对于耗时较小的方法调用也能进行有效统计,从而提高了分析的精度。Q:与其他类似的开发工具相比,鲲鹏 DevKit 的优势在哪里?A:鲲鹏DevKit更加贴合鲲鹏平台底层,由于鲲鹏底层针对软件做了大量优化,DevKit能够更好地利用这些优化措施,完成开发调优。Q:鲲鹏DevKit Java性能分析工具主要用途是什么?A:Java性能分析工具是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具,能图形化显示Java程序的堆、线程、锁、垃圾回收等信息,收集热点函数、定位程序瓶颈点,帮助用户采取针对性优化。Q:鲲鹏DevKit 系统性能分析工具中,全景分析有什么作用?A:通过采集系统软硬件配置信息,以及系统CPU、内存、存储IO、网络IO资源的运行情况,获得对应的使用率、饱和度、错误次数等指标,以此识别系统性能瓶颈。针对部分系统指标项,根据当前已有的基准值和优化经验提供优化建议。Q:鲲鹏DevKit 亲和分析工具对平台有要求吗?A:有的,亲和分析支持鲲鹏平台Q:鲲鹏DevKit 支持哪些工具?A:目前DevKit支持VSCODE和网页端模式,囊括的开发工具包括迁移、开发、调试、亲和、调优、诊断等工具。Q:鲲鹏DevKit 是否有demo环境可以体验?A:可以通过www.hikunpeng.cm官方网站中,开发者选项里的学习选项,体验在线实验功能,提供云实验环境供开发者体验。Q:目标VM和Java程序的在线分析,如何针对不同的VM进行适配?如何提高在线分析对大型Java程序的适用性?A:java性能分析工具支持对jdk8-jdk17程序进行分析,支持的jdk包括Oracle JDK,毕昇Jdk。Q:AITunner调优是自动的吗A:是的。AITuner使用自研高性能AI调优方案,通过用户自主选择测试用例,对数据库和大数据场景进行自动优化,自动调优后给予最优参数配置,提供复杂场景下参数配置的优化建议。Q:全面调优包含哪些层面的优化,是如何协调不同层面的? 软硬件融合释放最佳性能,硬件和软件之间是如何交互协作的?A:全面调优包括:硬件、os和基础设施、应用层、数据和存储、网络等。一般协调不通层面的性能问题,可以通过分析性能瓶颈、逐层优化改进性能问题,确保每层改进都能带来整体的性能提升,监控系统性能,根据实时数据调整优化,确保各层面优化相互配合。常见的软硬件交互协作包括:硬件加速器、优化指令集、缓存优化、资源调度、反馈优化机制等。Q:是否有成功的应用迁移或开发案例供参考?A:可以参考hikunpeng网站的最佳实践章节:https://www.hikunpeng.com/document/detail/zh/kunpengdevps/handon_tutorials/bestpractice/kunpengDevKitPractice_0062.htmlQ:请问python+c+java可以同时进行性能调优吗?A:明前提供python+c的热点函数分析能力,以及单独的java和c的分析能力,可以灵活使用。Q:进程和线程之间的优先级关系应该如何分析?如何解决死锁和锁竞争问题?A:进线程的优先级需要考虑系统的调度策略、进程和线程的负载以及他们之间的依赖关系。避免死锁可以考虑:避免资源独占;确认线程申请资源时不持有其他资源;设计可抢占系统;减少循环等待链。编码时可以减少锁的粒度,使用读写锁或乐观锁提高锁的效率,设置超时机制等方式。Q:有具体的案例或者视频演示一下吗?关于性能调优方面的A:可以参考hikunpeng网站的最佳实践章节:https://www.hikunpeng.com/document/detail/zh/kunpengdevps/handon_tutorials/bestpractice/kunpengDevKitPractice_0062.htmlQ:鲲鹏DevKit 系统性能分析工具中,Agent管理有什么作用?A:Agent是负责实际运行采集插件的组件。通过将采集组件分离,可以实现分布式采集能力,方便用户部署多机采集能力。Q:调优助手给出的调优建议是基于什么模型或算法?专项分析是针对哪些特殊问题或场景开展的?A:调优助手是根据测试反馈和经验得到的优化建议。专项分析目前是对pc领域提供了独特的采集分析的方法和思路。Q:在调优过程中,如何平衡性能提升与资源消耗(如内存、CPU、网络带宽等)之间的关系?鲲鹏 DevKit 有哪些优化原则和方法?A:性能提升的目标就是提高资源利用的能力,为了平衡资源和性能就是在调优过程中关注资源的利用效率的指标。在资源消耗一定的情况下,需要提高资源利用的效率,将浪费的资源用上,将用上的资源用好。DevKit有很多分析和优化的方法,如cpu分析的TMA分析法、numa内存分析、roofline分析等。Q:那鲲鹏的性能调优可以直接在鲲鹏平台上进行性能调优吗?A:性能调优工具提供强大的采集能力,并基于采集结果和历史经验给出相关的调优建议;并且在一些场景提供了AI自动调优能力。Q:缺乏迁移经验的开发人员,应该关注哪些分析报告?A:如果是Java系统进行迁移,可以关注系统迁移的迁移结果报告;如果是其他语言,可以考虑源码迁移的迁移结果报告。Q:那对于鲲鹏平台来说,迁移什么语言主导的软件更好迁移呢?A:目前迁移Java系统更加方便迁移,因为我们针对Java系统场景做了系统迁移功能,能够端到端的实现鲲鹏迁移。Q:扫描软件安装包时,如何识别so依赖库兼容信息的准确性?有没有误判的可能?A:目前是存在误判的可能,用户可以通过手动拆包验证,或者直接执行验证去判定是否兼容,如果不兼容可以关注报告中是否存在兼容so的下载链接进行替换。Q:对于大型复杂项目的代码扫描,鲲鹏DevKit应用迁移的资源占用情况如何?是否会影响其他系统进程?A:这个取决于具体用户项目,更具用户反馈,暂时没有出现影响其他系统进程的场景。Q:扫描过程中如何确保对所有依赖库文件的扫描无遗漏?有没有特定的检查算法或者机制?A:我们针对依赖库的白名单是有定期更新机制的,但如果要确保所有依赖文件均可正常运行,需要用户执行手动测试验证。Q:请问在企业级应用中,中间件通常与其他系统组件紧密集成,自动迁移部署中间件时,如何确保与其他组件的兼容性和协同工作能力?A:自动迁移部署中间件时,我们主要确保了中间件能够正常启动,如果要确保应用和中间件的协同工作正常,需要参考迁移指导建议,针对配置文件等进行手动修改,修改完成后即可确保正确。Q:自动分析系统成分的准确性如何保证?是否存在误判或遗漏某些关键系统成分的可能性?如果出现这种情况,如何进行人工复核和修正?A:目前确实存在误报等情况,对此我们提供了系统成分修正功能,可以在扫描完成后增删改查Q:系统迁移就是说整个迁移吗还是?A:系统迁移指的是将整个Java应用程序系统进行搬迁,包括应用、中间件、数据库等。Q:迁移的目标系统,只能是openeuler,还是支持其他的linux?毕昇的make,支持c++哪些版本、java哪些版本?A:迁移的目标系统包括openEuler系的系统,如麒麟统信等常用国产OS,以及一些常用OS,详细信息参见:https://www.hikunpeng.com/document/detail/zh/kunpengdevps/userguide/usermanual/DevKit_Porting_0011.html 编译器支持版本也可参见:https://www.hikunpeng.com/document/detail/zh/kunpengdevps/userguide/usermanual/DevKit_Porting_0011.htmlQ:如何确保编译过程中的依赖项兼容鲲鹏架构?A:可以尝试使用应用迁移中的源码迁移,扫描makefile,查看是否存在不兼容编译选项。Q:如何确保在鲲鹏 DevKit 上迁移的软件与原软件在功能上完全一致?是否存在某些功能在迁移后无法正常使用的风险?A:鲲鹏DevKit迁移后的软件与原软件保持一致,除了需要使用DevKit进行迁移,还依赖用户执行手动测试,针对已有应用的测试用例进行执行,根据测试结果确认迁移后是否一致。 软件某些功能无法使用只会出现在使用了与硬件架构有关的功能中,这在实际编码中非常少,比如intel的内联函数,而这部分鲲鹏已经有替换的兼容库。Q:是否提供了专门的性能分析工具来帮助开发者识别瓶颈?A:是的。DevKit内置性能分析工具,可以帮助开发者识别性能瓶颈,达成快速调优的目标。Q:DevKit支持一站式应用开发吗?如何做好性能分析?A:鲲鹏 DevKit 确实支持一站式应用开发,从代码编写到性能调优都可以在一个环境中完成。它提供了丰富的性能分析工具,帮助开发者在开发过程中进行全面的性能分析和优化。Q:如何确保现有的x86架构上的应用程序能够顺利迁移到鲲鹏平台上?A:针对不同的语言和场景,我们有不同的解决方案,如果是Java系统,我们有系统迁移工具,确保X86的应用程序能够顺利迁移到鲲鹏平台,其他语言,我们可以使用源码迁移进行迁移工作。完成迁移后我们需要进行人工功能验证,保证应用功能正确性。Q:鲲鹏只能运行在鲲鹏CPU硬件上吗?如果我用麒麟的笔记本,比如L420,可以装IDE进行开发吗?A:鲲鹏指鲲鹏服务器,相关插件都是部署在鲲鹏服务器上。用户可以通过笔记本按照IDE远程连接服务器进行开发。Q:鲲鹏只能运行在鲲鹏CPU硬件上吗?如果我用麒麟的笔记本,比如L420,可以装IDE进行开发吗?A:鲲鹏指鲲鹏服务器,相关插件都是部署在鲲鹏服务器上。用户可以通过笔记本按照IDE远程连接服务器进行开发。Q:应用迁移过去有啥好处呢? 网络协议不一定兼容A:迁移到鲲鹏上能够使用鲲鹏软硬件结合的优势,进一步提高应用的运行速率。Q:在遇到问题时,是否有官方支持渠道或社区可以帮助解决?A:可以在www.hikungpeng.com官网社区反馈。想要了解更多鲲鹏 DevKit 相关知识,欢迎观看DTSE Tech Talk 系列技术直播
  • [公告] 【获奖公示】DTSE Tech Talk丨NO.69:鲲鹏DevKit,助力开发者基于鲲鹏服务器实现一站式应用开发
    中奖结果公示感谢各位小伙伴参与本次活动,欢迎关注华为云DTSE Tech Talk 技术直播更多活动~本次活动获奖名单如下(部分视频号抽奖用户无账号名):账号名 奖项名称 奖品名称 备注hw81541353优质提问华为云开发者定制长袖圆领卫衣yizhangl优质提问华为云开发者定制长袖圆领卫衣单人提问数>20个,且重复内容过多,不符合活动要求yili6666口令抽奖华为云开发者定制折叠雨伞口令抽奖华为云开发者定制折叠雨伞口令抽奖华为云开发者定制折叠雨伞持久观看有奖华为云开发者定制笔记本支架视频号抽奖华为云开发者定制折叠雨伞视频号抽奖华为云开发者定制折叠雨伞视频号抽奖HDC定制渔夫帽视频号抽奖HDC定制渔夫帽
  • [活动公告] 【开发者日南京站】产品体验官:通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移
    华为云开发者日·南京站来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移【活动时间】2024年10月25日-10月31【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [活动公告] 【开发者日武汉站】产品体验官:通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移
    华为云开发者日·武汉站来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移【活动时间】2024年10月16日-10月20日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [问题求助] 鲲鹏920的服务器BIOS设置里面的Cache Mode和 Stream Write Mode有介绍吗?
    现在我需要对LLC进行调优,发现BIOS里面有这些地方涉及LLC但是不知道Cache Moded和Stream Write Mode的各个选项的区别在哪里https://bbs.huaweicloud.com/forum/thread-102569-1-1.html这个帖子里有人回答了第一个问题,但是链接失效了.希望有大佬解惑!
  • [活动分享] 【线下活动火热预约中】“蜀”光闪耀 | 2024鲲鹏开发者创享日·成都站邀您参与
    2024鲲鹏开发者创享日·成都站即将于8月30日举办,活动邀请了国内顶尖技术大咖、科研带头人,知名企业技术专家,面向广大热爱编码,热衷新技术研究的开发者,进行技术解读和前沿科技分享,共同推进成都地方产业人才升级。8月30日,四川成都·首座万豪酒店诚挚邀请您拨冗出席会议,共创非凡未来!现场参会福利:福利1:精美签到伴手礼福利2:星级酒店自助午餐——五星级福利3:现场活动互动奖品报名链接:https://www.hikunpeng.com/developer/activities/details/05cc7f7929bf422ba1f35d94557672ee/signup?utm_source=hwy&utm_medium=banner&utm_campaign=bm报名时间:2024年8月26日——8月29日下午4点若无时间现场参会,亦可关注我们的创享日·成都站线上活动,礼品丰厚等你来拿!活动链接:https://www.hikunpeng.com/zh/developer/activities-pro/kunpeng-inspire-day/chengdu-two?utm_source=hwy&utm_medium=banner&utm_campaign=bm创享日·成都站四大亮点:一、专家论道分享 助力行业实践创新作为活动的重要组成部分——主论坛将在8月30日上午以线下+线上直播形式呈现。活动聚焦大咖前沿技术分享、工具发布&客户实践、鲲鹏原生技术解读,还有客户带来的核心技术挑战与创新解决方案实践分享等,共同推动成都区域伙伴CTO/技术专家、开发者等群体全面了解鲲鹏特性和应用实践,推动鲲鹏在当地国计民生行业规模应用,成为数字基础设施算力底座的首选,共同打造技术领导力。二、颁奖仪式举行 为企业创新加速赋能会上,成都鲲鹏计算产业联盟颁奖、鲲鹏原生开发启动也将在本次活动中精彩呈现,为创新者加速行业创新再添助力,同时进一步促进优秀解决方案在各行业各领域的落地融合,为企业数字化转型提供全面、可靠的技术支持,进而推动各行业的技术进步和高质量发展。三、5大分论坛同步举办 激发创新思维火花除主论坛外,本次创享日还开启成都开源生态主题大会、面向AI时代应用使能技术分论坛、鲲鹏技术汇和鲲鹏开发板集训营等5大分论坛,激发创新思维的火花,催生更多具有前瞻性的技术探讨和解决方案。四、活力课堂精彩呈现 全方位具象创新培育为了全方位、多维度为开发者提供更易获取的体验和开发资源,提供易上手、更好用的开发工具,以及更贴近开发者进阶旅程的成长体系和展示平台,与开发者聚力、同行、共创,本次创享日还开设有鲲鹏社区互动体验区、鲲鹏CodeLab技术体验区、鲲鹏技术达人挑战赛以及生态创新中心展区等,特别邀请了资深鲲鹏布道师现场指导,让现场开发者与技术大咖零距离交流。大会活动议程:
  • [获奖公告] 【开发者日专场】产品体验官:通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移
    华为云开发者日·上海站来啦!参加“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移【活动时间】2024年8月30日-9月6日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“通过鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
  • [问题求助] 鲲鹏服务器主板命名规则是什么
    鲲鹏服务器有众多主板型号,请问是否有相关命名规则,帮忙我们快速通过主板型号,大致了解主板关键特征。感谢!
  • [其他问题] 华为鲲鹏920 5220 内核4.14.0-115.el7a.0.1.aarch64 系统:centos 7.6.1810(altarch)如何安装dotnet5和dotnet7
    安装完dotnet后执行dotnet --info报错,  执行dotnet --list  又没问题 ,大概意思libicuil8n..so.50这个文件有问题,但又找不到正常文件cannot get symbol ucol_setMaxVariable_50 from libicui18n error:/lib64/libicuil8n..so.50: undefined symbol:ucol_setMaxVariable_50 Aborted
  • PostgreSQL
     本文主要介绍如何在使用openEuler或CentOS操作系统的鲲鹏服务器上编译和安装PostgreSQL,并提供了运行、卸载和备份PostgreSQL的方法和常用的数据库命令参考。 表1 PostgreSQL中的主要进程说明 进程类别  进程名称 说明 主进程 Postmaster  Postmaster是整个数据库实例的总控进程,负责启动和关闭该数据库实例。其默认监测UNIXDomain Socket和TCP/IP(Windows等,一部分的平台只监测TCP/IP)的5432端口,等待来自前端的连接处理。监测的端口号可以在PostgreSQL的设置文件postgresql.conf中修改。  会话服务进程  Postgres  子进程根据pg_hba.conf定义的安全策略来判断是否允许进行连接,根据策略,会拒绝某些特定的IP及网络,或者也可以只允许某些特定的用户或者对某些数据库进行连接。  Postgres会接受前端过来的查询,然后对数据库进行检索,最后把结果返回,有时也会对数据库进行更新。更新的数据同时还会记录在事务日志里面(PostgreSQL称为WAL日志)。这个主要是当停电、服务器宕机、重新启动的时候进行恢复处理的时候使用。另外,把日志归档保存起来,可在需要进行恢复的时候使用。在PostgreSQL 9.0以后,通过把WAL日志传送其他的PostgreSQL,可以实时的进行数据库复制,这就是所谓的“数据库复制”功能。  辅助进程  SysLogger(系统日志)  需要在Postgres.conf中logging_collection设置为on,此时主进程才会启动Syslogger辅助进程。  BgWriter(后台写)  把共享内存中的脏页写到磁盘上的进程。主要是为了提高插入、更新和删除数据的性能。  WalWriter( 预写式日志 )  在修改数据之前把修改操作记录到磁盘中,以便后面更新实时数据时就不需要数据持久化到文件中。  PgArch(归档)  WAL日志会被循环使用,PgArch在归档前会把WAL日志备份出来。通过PITR(Point in Time Recovery)技术,可以对数据库进行一次全量备份后,该技术将备份时间点之后的WAL日志通过归档进行备份,使用数据库的全量备份再加上后面产生的WAL日志,即可把数据库向前推到全量备份后的任意一个时间点。  AutoVacuum(系统自动清理)  在PostgreSQL数据库中,对表进行DELETE操作后,旧的数据并不会立即被删除,并且在更新数据时,也并不会在旧的数据上做更新,而是新生成一行数据。旧的数据只是被标识为删除状态,只有在没有并发的其他事务读到这些就数据时,它们才会被清除。这个清除工作就由AutoVacuum进程完成。  PgStat(统计收集)  做数据的统计收集工作。主要用于查询优化时的代价估算,包括一个表和索引进行了多少次的插入、更新、删除操作,磁盘块读写的次数、行的读次数。pg_statistic中存储了PgStat收集的各类信息。  CheckPoint(检查点)  检查点是系统设置的事务序列点,设置检查点保证检查点前的日志信息刷到磁盘中。  开发语言:C/C++  一句话描述:对象关系型数据库管理系统  建议的版本 建议使用的版本为“PostgreSQL 11.3”。 硬件要求 项目 说明 服务器 TaiShan 200服务器(型号2280) 处理器 华为鲲鹏920处理器 硬盘 进行性能测试时,数据目录需使用单独硬盘,即一个系统盘,一个数据盘(数据盘可选用性能较好的SATA SSD盘,NVMe SSD盘等),至少两块硬盘。 非性能测试时,直接在系统盘上建数据目录即可。 具体硬盘数量根据实际需求配置。 操作系统要求 查看环境操作系统的信息:cat /etc/*-release 查看环境处理器相关信息:lscpu  查看环境内核版本:uname -r  查看环境信息:uname -a  如果需要全新安装操作系统,可选择“Minimal Install”安装方式并勾选Development Tools套件,否则很多软件包需要手动安装。 操作系统要求如表2所示。  表2 操作系统要求 项目 版本 获取方法 CentOS  7.6 for ARM  https://mirrors.huaweicloud.com/centos-vault/altarch/7.6.1810/isos/aarch64/CentOS-7-aarch64-Everything-1810.iso  openEuler  20.03 LTS SP1 for ARM  https://repo.huaweicloud.com/openeuler/openEuler-20.03-LTS-SP1/ISO/aarch64/openEuler-20.03-LTS-SP1-everything-aarch64-dvd.iso  22.03 LTS SP1 for ARM  https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP1/ISO/aarch64/openEuler-22.03-LTS-SP1-everything-aarch64-dvd.iso  PostgreSQL  11.3  https://ftp.postgresal.org/pub/source/v11.3/postgresql-11.3.tar.gz  关闭防火墙 更新时间:2024/06/17 测试环境下通常需要关闭防火墙以避免部分网络因素影响,请根据实际情况关闭防火墙。  停止防火墙。 systemctl stop firewalld.service 关闭防火墙。 systemctl disable firewalld.service 说明 执行disable命令关闭防火墙的同时,也取消了开机自启动。  查看防火墙。 systemctl status firewalld.service 在服务器环境下,为了保障系统安全,通常会为进程分配单独的用户,以实现权限隔离。创建的组和用户都是操作系统层面的,而不是数据库层面的。 本环节创建的用户将在1中用到。  创建postgres用户(组)。 groupadd postgres useradd -g postgres postgres 设置postgres用户密码。操作过程中请根据提示两次输入相同的密码。 passwd postgres  创建数据目录以存储PostgreSQL的数据文件。 测试极限性能时,建议单独挂载IO性能更优的NVMe SSD存储介质创建PostgreSQL测试实例,避免磁盘IO对性能测试结果的影响。下文以单独挂载NVMe SSD为例,参考1~6。 非性能测试时,则跳过本章节步骤,直接执行创建数据目录并授权。 创建文件系统。以XFS为例,根据实际需求创建文件系统,其中/dev/nvme0n1可根据实际磁盘名称进行输入。 mkfs.xfs /dev/nvme0n1 若磁盘之前已做过文件系统,执行此命令会出现报错,可使用-f参数强制创建文件系统。  mkfs.xfs -f /dev/nvme0n1 创建数据目录。 mkdir /data 挂载磁盘。 mount -o noatime,nobarrier /dev/nvme0n1 /data 执行命令以下命令,进入编辑页面。 vim /etc/fstab 按“i”进入编辑模式,如下图中,添加最后一行内容。  按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。 创建数据目录以存储PostgreSQL的数据文件。 创建数据目录。 mkdir /data 修改目录权限。 chown -R postgres:postgres /data/ ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/weixin_45521613/article/details/139779727 
  • [技术干货] Greenplum
     简要介绍 Greenplum是一个面向数据仓库应用的关系型数据库,因为有良好的体系结构,所以在数据存储、高并发、高可用、线性扩展、反应速度、易用性和性价比等方面有非常明显的优势。Greenplum是一种基于PostgreSQL的分布式数据库,其采用shared-nothing架构,主机、操作系统、内存、存储都是自我控制的,不存在共享。  本质上讲Greenplum是一个关系型数据库集群,它实际上是由数个独立的数据库服务组合成的逻辑数据库。与RAC(Real Application Cluster)不同,这种数据库集群采取的是MPP(Massively Parallel Processing)架构。  关于Greenplum的更多信息请访问Greenplum官网。  一句话描述:分布式关系型数据库  建议的版本 Greenplum 5.11.3,其他版本的Greenplum编译步骤可参考本文档。 硬件要求 硬件要求如表1所示。  表1 硬件配置要求 项目  说明  服务器  TaiShan 200服务器(型号2280)  CPU  鲲鹏920 5250处理器  内存  无要求  存储  无要求  网络  能访问互联网  操作系统要求 操作系统要求如表2所示。  表2 操作系统要求 项目  版本  CentOS  8.1 for Arm  说明 如果是全新安装操作系统,可选择“Minimal Install”安装方式并勾选Development Tools套件,否则很多软件包需要手动安装。  软件要求 软件要求如表3所示。  表3 软件要求 项目  下载地址  版本  Greenplum  https://github.com/greenplum-db/gpdb  5.11.3 配置外网Yum源 备份Yum源。 cd /etc/yum.repos.d mkdir bak mv *.repo bak 下载外网Yum源。 wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo 修改Yum源。 sed -i “s/$releasever/8-stream/g” /etc/yum.repos.d/CentOS-Base.repo cat /etc/yum.repos.d/CentOS-Base.repo 使Yum源生效。 yum clean all yum makecache yum list 安装依赖包。 yum -y install curl-devel bzip2-devel python2-devel openssl-devel readline-devel perl-ExtUtils-Embed libxml2-devel openldap-devel pam pam-devel perl-devel apr-devel libevent-devel libyaml libyaml-devel libedit-devel libffi-devel bison flex flex-devel net-tools wget 设置Python软链接。 ln -s /usr/bin/python2 /usr/bin/python 下载源码。 cd /opt/tool wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz 编译安装CMake。 tar -zxvf cmake-3.5.2.tar.gz cd cmake-3.5.2 ./bootstrap make make install ln -s /usr/local/lib/libzstd.so.1.4.3 /usr/lib64/libzstd.so.1 确认CMake版本。 hash -r /usr/local/bin/cmake --version 下载源码。 cd /opt/tool git clone -b v1.4.3 https://github.com/facebook/zstd 说明 如果执行git clone命令失败,github.com替换为github.com.cnpmjs.org。  编译安装zstd。 cd zstd/ make make install ln -s /usr/local/lib/libzstd.so.1.4.3 /usr/lib64/libzstd.so.1 下载源码。 cd /opt/tool wget https://github.com/skvadrik/re2c/archive/refs/tags/2.0.3.zip 解压并安装。 unzip 2.0.3.zip cd re2c-2.0.3/ ./autogen.sh ./configure make make install 进入“/opt/”目录,下载Greenplum源码。 cd /opt/ git clone -b 5.11.3 git://github.com/greenplum-db/gpdb 执行编译。 cd gpdb ./configure --with-perl --with-python --with-libxml --prefix=/usr/local/gpdb  执行安装。 make make install 配置Shell。 source /usr/local/gpdb/greenplum_path.sh 查看安装目录。 ls /usr/local/gpdb  ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/weixin_45521613/article/details/139779791 
  • [技术干货] 鲲鹏920指令集简介---脚本移植案例
     华为鲲鹏处理器基于ARM架构。ARM是一种CPU架构,有别于Intel、AMD CPU采用的CISC复杂指令集,ARM CPU采用RISC精简指令集(Reduced Instruction Set Computer)。  传统的CISC体系由于指令集庞大,指令长度不固定,指令执行周期有长有短,使指令译码和流水线的实现在硬件上非常复杂,给芯片的设计开发和成本的降低带来了极大困难。  随着计算机技术的发展需要不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂。然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%,显然,这种结构是不太合理的。  针对这些明显的弱点,1979年美国加州大学伯克利分校提出了RISC的概念。RISC并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。  RISC结构优先选取使用频率最高的简单指令,避免复杂指令。将指令长度固定,指令格式和寻址方式种类减少。以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。  ARM架构具有更好的并发性能,匹配业务特征能耗比更佳,更加灵活丰富的选择,业界热点快速发展。  华为鲲鹏处理器兼容Armv8指令集,详细信息请参考《ARM® Architecture Reference Manual Armv8, for Armv8-A architecture profile》。  本文档详细描述了华为鲲鹏920处理器指令替换的相关案例,主要适用于使用华为鲲鹏920处理器的以下人员: -m64编译选项 更新时间:2023/09/22 告警信息:gcc: error: unrecognized command line option ‘-m64’。  可能原因 -m64是x86 64位应用编译选项,m64选项设置int为32bits及long、指针为64 bits,为AMD的x86 64架构生成代码。在Arm64平台无法支持。  处理步骤 将Arm64平台对应的编译选项设置为-mabi=lp64。 char数据类型的符号 更新时间:2023/09/22 3.0 现象描述 告警信息:warning: comparison is always false due to limitedrange of data type。  可能原因 char变量在不同CPU架构下默认符号不一致,在x86架构下为signed char,在Arm64平台为unsigned char,移植时需要指定char变量为signed char。  处理步骤 在编译选项中加入“-fsigned-char”选项,指定Arm64平台下的char为有符号数。 ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/weixin_45521613/article/details/139779876 
  • [技术干货] 二进制编译
     xaGear是一款二进制指令动态翻译软件,运行在Arm64服务器上,通过将x86的指令在运行时翻译为Arm64指令并执行,使得绝大部分x86应用无需重新编译就可运行在Arm64服务器上,实现低成本、快速迁移x86应用到Arm64服务器。  ExaGear安装过程中,更新Linux的binfmt_misc组件将x86应用的解析器注册为ExaGear,安装完成后主要有两个组件:指令翻译引擎和x86运行环境。  指令翻译引擎 ExaGear的指令翻译引擎是一个“中间件”软件解决方案,位于x86应用程序与Armv8架构服务器之间(见图1)。x86应用启动时,Linux内核通过binfmt_misc识别x86应用,并通过ExaGear的指令翻译引擎对x86进行加载执行,在运行时翻译为Arm指令并执行。对执行x86应用的用户而言,整个过程是简易且透明的,和操作Arm应用无差别。   x86运行环境 x86运行环境是ExaGear创建的一个包含所有标准库、实用程序、配置文件的x86应用执行环境,这确保了x86应用程序运行所需的基础设施组件的可用性。从技术角度讲,x86运行环境是一个特定的文件目录,包含了x86库、命令、实用程序和其它系统文件(见图2)。x86应用程序的二进制文件也必须存放于x86运行环境中。  特性: 支持多种部署方式:支持在物理机、虚拟机、容器等平台上部署; 部署简单:一键式快速安装,x86应用部署和运行与迁移前保持一致; 支持多版本guest Linux OS:目前支持CentOS 7、Ubuntu 18、Ubuntu 20,并且根据用户需求,未来可定制支持更多Linux OS发行版; 低损耗: 大多数场景的应用,翻译损耗在10%以内。 技术约束: 只支持用户态 x86应用, 不支持驱动、虚拟化平台等内核程序的翻译。 支持x86通用指令和SSE、AVX扩展指令和AVX2,不支持AVX-512指令。 当前支持的guest OS为CentOS 7、Ubuntu 18、Ubuntu 20。 已知产生内存序问题的库已在白名单列表中,“x86强内存顺序模型”设置项关闭。在需要“功能优先”的场景,可以打开设置项。具体见2.3.5(或2.4.5) - 内存顺序模型介绍。 浮点计算相关的“x86位相同精度”和“80位x86精度”设置项默认关闭。在需要绝对浮点精确的场景下,可以分别打开对应设置项。具体见2.3.5(或2.4.5) - X86位相同精度、80位 X86精度介绍。 Linux on x86应用,在运行时涉及的文件或文件夹的绝对路径的字符串长度不大于4KB。 在64KB page size的Linux系统上,部分Linux on x86应用可能存在4KB page size的兼容性问题。 不支持ExaGear for Server 和ExaGear for Docker同时部署在同一台机器上。 在ExaGear下载页,选择“软件包下载”获取软件包。  软件包名称:ExaGear_3.1.0.1  目录结构示例 ExaGear_3.1.0.1  — ExaGear_Server_for_Centos7  ------ release  — ExaGear_Server_for_Ubuntu18  ------ release  — ExaGear_Server_for_Ubuntu20  ------ release  — Exagear4docker  ------ deb  --------- release  ------ rpm  --------- release ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/weixin_45521613/article/details/139779916 
  • [技术干货] GCC for openEuler介绍
     前言 本手册用于指导用户使用GCC for openEuler构建业务场景及相关注意事项。  概述 GCC for openEuler基于开源GCC-10.3版本(https://gcc.gnu.org,2021年4月发行)开发,并进行了优化和改进,实现软硬件深度协同优化,挖掘OpenMP、SVE向量化、数学库等领域极致性能,是一种Linux下针对鲲鹏920处理器的高性能编译器。GCC for openEuler默认使用场景为TaiShan服务器、鲲鹏920处理器、Arm架构,操作系统为CentOS 7.6、openEuler 22.03、openEuler 20.03等。  功能介绍 除GCC通用功能和优化外,增加了新的功能支持,如自动反馈优化、mcmodel=medium、四精度浮点等;对中后端性能优化技术也进行了增强,包括SVE(可伸缩矢量化)、循环向量化、SLP向量化、浮点优化、内存优化、指令优化等。部分通用信息可参考GCC internal,GCC for openEuler新增优化选项参考GCC for openEuler选项支持。  关键特性 支持自动反馈优化特性,实现数据库等场景性能倍增 支持鲲鹏微架构芯片及指令优化 通过软硬协同提供相较开源GCC更高的性能 高性能计算典型应用性能深度优化 支持的编程语言 GCC是一种涵盖多种编程语言和目标处理器的编译器,GCC for openEuler聚焦于C、C++、Fortran编程语言的支持,使用gcc作为C语言的编译和驱动程序,g++作为C++语言的编译和驱动程序,gfortran作为Fortran语言的编译和驱动程序。 功能介绍 除GCC通用功能和优化外,增加了新的功能支持,如自动反馈优化、mcmodel=medium、四精度浮点等;对中后端性能优化技术也进行了增强,包括SVE(可伸缩矢量化)、循环向量化、SLP向量化、浮点优化、内存优化、指令优化等。部分通用信息可参考GCC internal,GCC for openEuler新增优化选项参考GCC for openEuler选项支持。  关键特性 支持自动反馈优化特性,实现数据库等场景性能倍增 支持鲲鹏微架构芯片及指令优化 通过软硬协同提供相较开源GCC更高的性能 高性能计算典型应用性能深度优化 支持的编程语言 GCC是一种涵盖多种编程语言和目标处理器的编译器,GCC for openEuler聚焦于C、C++、Fortran编程语言的支持,使用gcc作为C语言的编译和驱动程序,g++作为C++语言的编译和驱动程序,gfortran作为Fortran语言的编译和驱动程序。  GCC for openEuler环境依赖 更新时间:2024/02/01 暂无评分 我要评分 内存:4GB及以上 操作系统:openEuler 22.03 LTS SP2、openEuler 22.03 LTS SP1、openEuler 22.03 LTS、openEuler 20.03 LTS SP3、CentOS 7.6、Ubuntu 18.04、Ubuntu 20.04、麒麟V10、UOS 20 架构:AArch64 Glibc版本:2.17及以上 获取GCC for openEuler 更新时间:2024/02/01 暂无评分 我要评分 软件包获取 在GCC for openEuler产品页,选择“GCC for openEuler 软件包下载”获取软件包。  软件包名称:gcc-10.3.1-2023.06-aarch64-linux.tar.gz  软件包目录结构:  gcc-10.3.1-2023.06-aarch64-linux  –aarch64-linux-gnu  –bin  –include  –lib  –lib64  –libexec  –share  完整性校验 获取软件包后,需要校验软件包,确保与网站上的原始软件包一致。GCC for openEuler产品页提供sha256sum文件用于软件包的完整性校验,用户可使用以下命令生成哈希值对比确认:  sha256sum gcc-10.3.1-2023.06-aarch64-linux.tar.gz 安装GCC for openEuler 更新时间:2024/02/01 暂无评分 我要评分 这里介绍GCC for openEuler的安装过程,以下操作均使用root用户执行。  获取GCC for openEuler软件包后,将其上传到目标服务器上。 设置安装目录。 创建GCC for openEuler安装目录(这里以/opt/aarch64/compiler为例) mkdir -p /opt/aarch64/compiler 将GCC for openEuler压缩包拷贝到安装目录下: cp -rf gcc-10.3.1-2023.06-aarch64-linux.tar.gz /opt/aarch64/compiler 进入压缩包目录,执行命令解压缩软件包。 tar -xf gcc-10.3.1-2023.06-aarch64-linux.tar.gz 解压缩完成后,在当前目录下会看到名为gcc-10.3.1-2023.06-aarch64-linux的目录。  配置环境变量,有编辑/etc/profile文件和使用environment-modules工具管理环境变量(无需修改/etc/profile)两种方式。 方式1:编辑/etc/profile文件 在/etc/profile文件其末尾添加如下内容: export PATH=/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/bin:P A T H e x p o r t I N C L U D E = / o p t / a a r c h 64 / c o m p i l e r / g c c − 10.3.1 − 2023.06 − a a r c h 64 − l i n u x / i n c l u d e : PATH export INCLUDE=/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/include:PATHexportINCLUDE=/opt/aarch64/compiler/gcc−10.3.1−2023.06−aarch64−linux/include:INCLUDE export LD_LIBRARY_PATH=/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/lib64:L D L I B R A R Y P A T H 编辑完成后,执行下列命令让环境变量生效。后续重新连接到服务器后,无需重复执行下列命令,系统会自动加载该配置。 s o u r c e / e t c / p r o f i l e 须知如果您的安装目录不同,请注意修改为实际目录。请遵循安装路径在环境变量前的规则,比如下列写法会导致 G C C f o r o p e n E u l e r 无法正常加载。 e x p o r t P A T H = LD_LIBRARY_PATH 编辑完成后,执行下列命令让环境变量生效。后续重新连接到服务器后,无需重复执行下列命令,系统会自动加载该配置。 source /etc/profile 须知 如果您的安装目录不同,请注意修改为实际目录。 请遵循安装路径在环境变量前的规则,比如下列写法会导致GCC for openEuler无法正常加载。 export PATH=LD  L ​  IBRARY  P ​  ATH编辑完成后,执行下列命令让环境变量生效。后续重新连接到服务器后,无需重复执行下列命令,系统会自动加载该配置。source/etc/profile须知如果您的安装目录不同,请注意修改为实际目录。请遵循安装路径在环境变量前的规则,比如下列写法会导致GCCforopenEuler无法正常加载。exportPATH=PATH:/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/bin  方式2:使用environment-modules工具管理环境变量 创建配置文件GCC_modulefiles,内容参考如下: #%Module1.0#####################################################################  modules modulefile set version 10.3.1 setenv GCC_DIR /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux  prepend-path PATH /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/bin prepend-path INCLUDE /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/include prepend-path LD_LIBRARY_PATH /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/lib64 prepend-path MODULEPATH /opt/aarch64/moduledeps/gcc-10.3.1-2023.06-aarch64-linux  family “compiler” 需要加载GCC for openEuler环境变量时,参考如下方式执行module命令: module use path-of-GCC-configuration-files module load GCC_modulefiles 完成GCC for openEuler环境变量配置及加载后,执行下列命令验证GCC for openEuler版本: gcc -v 如果返回结果包含GCC for openEuler的version信息,则GCC for openEuler已安装成功。比如:  gcc version 10.3.1 (gcc for openEuler 2.3.4) 使用GCC for openEuler 更新时间:2024/02/01 5.0 我要评分 编译运行C程序 (这里以hello.c为例)  gcc hello.c -o hello.out ./hello.out 编译运行Fortran程序 (这里以hello.f90为例)  gfortran hello.f90 -o hello.out ./hello.out GCC for openEuler基于开源GCC开发,并进行了优化和增强,且GCC基线版本也会定时升级,版本升级会导致编译器默认行为发生变更,比如语法检查更加严格,默认选项发生变化等。本章节主要列出一些GCC for openEuler版本升级变更影响说明,以及与开源GCC的兼容性问题。 ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/weixin_45521613/article/details/139779978