最终,我决定将代码迁出x86架构!
1 从大型机到 x86 架构,计算的下一个拐点在哪?
- 多核,性能提升 20%,云应用支持度更好,更灵活;
- 支持 8 个 DDR 通道,传统 CPU 仅 6 个,吞吐率提升 25%;
- SOC 芯片,一颗芯片四合一,包含 CPU、南桥、网卡和 SAS 控制器,效能提升 30%;
- 集成压缩、加密、重删等硬件加速引擎的处理器,大大提升应用的性能,释放更多 CPU 算力。
2 跨平台软件迁移实践
- 软件工程构建文件中包含 -march 与 -mtune 编译参数,如果提示参数不兼容,则需要调整,可能兼容的调整后参数为:-march=ARMv8.1-a -tune=tsv110
- 编译时遇到找不到函数、缺少库文件等错误,安装对应的鲲鹏平台兼容的依赖库,安装方法同 x86 服务器
- 开源项目库不支持 ARM 架构,这种情况较少,一般发生在较旧的项目代码;解决方法包括:修改代码,寻求替代组件等
- 编译时提示代码错误,可能需要根据平台差异修改部分代码,例如平台类型相关宏定义
- 汇编程序和 C/C++ 源代码中内联汇编需要重写,ARM 和 x86 架构指令集不兼容。
- 扫描工具:Dependency Advisor,检查用户软件资源包二进制文件,并评估可移植性;检查指定的用户软件安装路径下的二进制文件,并评估可移植性;检查用户软件 C/C++ 源码、软件构建工程文件,并评估可移植性;向用户提供软件移植报告,提供移植工作量评估;支持命令行方式和 Web 两种工作模式。
- 移植工具:Porting Advisor,检查用户软件 C/C++ 软件构建工程文件,并提供修改建议;检查用户软件 C/C++ 源码,并提供修改建议;检查用户软件中 x86 汇编代码,并提供修改建议;支持命令行和 Web 两种访问方式;提供一键式移植软件到鲲鹏平台;支持用户 RPM、DEB 软件包重构。
- 性能优化工具:Tuning Kit,支持安全可靠的升级回退功能;支持系统性能数据采集和分析,包括:CPU、内存、磁盘 IO、网络 IO,根据现有积累的经验,对已经明确的指标给出基准参考值和优化建议;支持 Java 程序性能分析;支持和 Porting & Dependency Advisor 同时部署在同一台机器。
- 加速库:从底层算力进一步提升应用软件性能,glibc 基础库目前已经在鲲鹏开源社区开源,优化了 16 个最常用的接口,相当于 Intel 优化范围的 10%;HMPP 适配接口数 501 个,占 IPP 信号库接口的 38.5%,占 IPP 库总接口的 11%,对标 Intel IPP 完成功能测试。
3 移植完成,一切才刚刚开始
- 高校教研扶持:面向高校,提供 1 亿人民币的扶持金额,包括人才培养,云资源及样机支持,同时华为与教育部签署 3 年协议投入 10 亿人民币,共同推进人才的培养。
- 初创企业及开发人员扶持:面向初创企业及个体开发人员,以云资源及线下活动的方式发放 1 亿人民币的补助,每家初创公司最高可获得 75 万人民币的云券。
- 合作伙伴发展扶持:面向合作伙伴,提供 6 亿人民币的扶持总额,其中 3 亿人民币一次性研发费用补贴,3 亿人民币的云资源。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kubernetes Ingress简单入门
本文转载自Rancher Labs 不知道你是否注意到一个奇怪的现象,尽管Kubernetes Ingress API仍然处于beta状态,但是已经有许多公司使用它来暴露Kubernetes服务。从事相关项目的工程师表示,Kubernetes Ingress API越来越有可能摘下其beta标签。实际上,Kubernetes Ingress API处于beta状态已经持续了几年的时间,准确来说,是在2015年秋季开始进入该阶段的。但是,漫长的beta阶段可以让Kubernetes贡献者有时间来完善规范并使其与已经搭建好的实施软件(HAProxy、NGINX、Traefik等)保持一致,从而使API标准化以反映最常见并且有需求的功能。 随着该功能GA的临近,那么现在应该是一个合适的时机可以帮助新手快速了解Ingress的工作方式。简而言之,Ingress是一个规则,可以绘制出在集群内部的服务如何弥合鸿沟,暴露到客户可以使用它的外部世界。同时,称为Ingress controller的代理在集群网络的边缘进行侦听(监视要添加的规则),并将每个服务映射到特定的URL路径或域名以供公众使用。在...
- 下一篇
Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD
一.相关介绍 Dockerfile:关于Dockerfile的使用说明,我在文章《 让.NetCore程序跑在任何有docker的地方》中有说到,这里不在赘述,需要的可以先看下,本文主要介绍Jenkinsfile结合dockerfile配合使用,自动构建.NetCore应用程序。 Jenkinsfile :Jenkinsfile 是 Jenkins 2.x 或更高版本核心特性 Pipeline(流水线) 的脚本,或者说对于Jenkins 流水线的定义被写在一个叫Jenkinsfile的文本文件中,该文件可以被提交到项目的源代码的控制仓库。这是"流水线即代码"的基础; 将CD 流水线作为应用程序的一部分,像其他代码一样进行版本化和审查。 创建 `Jenkinsfile`并提交它到源代码控制中提供了以下几个好处: 自动地为所有分支创建流水线构建过程并拉取请求。 在流水线上代码复查/迭代 (以及剩余的源代码)。 对流水线进行审计跟踪。 该流水线的真正的源代码 , 可以被项目的多个成员查看和编辑。 Jenkinsfile 能使用两种语法进行编写,分别是“声明式”和“脚本化”,二者语法都是 DS...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境