写点什么

编译型语言成迁移钉子户?鲲鹏迁移有妙招

凯强

  • 2020-07-24
  • 本文字数:1881 字

    阅读完需:约 6 分钟

编译型语言成迁移钉子户?鲲鹏迁移有妙招


编译型语言在开发过程中并不少见,比如 C/C++更是大学里就要学到的语言。其采用专门的编译器针对特定平台将某种高级语言源代码一次性“翻译”成可被平台硬件执行的机器指令和操作数,进而将其包装成该平台所能识别的可执行性程序的格式。经过编译生成的可执行性程序即便脱离开发环境,也可以在特定的平台上独立运行。


不过,编译型语言虽然通过运行效率较高,但却有着一个比较麻烦的弱点,那就是其程序由于已经编译成特定平台上的机器码,所以通常无法移植到其他平台上运行。可在当下,随着大数据和智能化浪潮的汹涌,不少企业对于算力的渴望达到新的峰值,从 x86 平台迁移到鲲鹏等新的算力平台上也并不少见,这时编译型语言就变成了名副其实的钉子户,迁移流程会复杂太多。


一般来讲,编译型语言在移植时,必须将源代码复制到新平台上,针对新平台进行修改,至少也需要采用新平台上的编译器重新编译。而基于鲲鹏处理器的打造的计算平台在迁移时则获得了很多针对性的优化,并提供了大量的迁移工具,帮助开发者简化迁移流程。


在迁移时,其编译构建流程大体可以有这几步。首先在在获取源代码之后,选择所需的编译环境,安装编译器 gcc 等;根据源码的编译脚本生成 Makefile 文件,再用 Makefile 编译生成可持续文件;担任如果代码之中有依赖 x86 平台的 SO 库,那么这部分的依赖库是需要重新编译替换的;在编译完成之后进行安装部署,之后进入到实际的系统之中进行测试。


由于编译型语言的特殊性,其在迁移时,还有很多需要注意的点。由于鲲鹏平台和 x86 平台的差异,在 x86 下 -m64 代码的主要功能是将应用程序编译为 64 位,对应到鲲鹏上是用 -mabi=lp64 的编译选项,其需要在脚本中修改;gcc 编译器所自带的 x86 编译选项就是 x86_64,对应到鲲鹏平台上是 aarch64,对编译宏下的代码需要机箱内对应的移植;而 Builtin 函数是编译器自带的函数,需要移植的普通 builtin 函数并不多,大部分需移植的 builtin 函数集中在 SSE intrinsic 函数内;SSE Intrinsic 函数,涉及到向量化预算加速技术,如果有开源工程可以直接应用。


由此可见,编译型语言在迁移时虽然复杂,但却并非无迹可寻。而如果你想探索更多迁移过程中的技术细节,7 月 30 日《鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区宣讲会》将在线为你揭晓。此次宣讲会中,不仅会有鲲鹏技术专家讲解应用代码迁移过程中的细节问题,还将为各位开发者讲述鲲鹏应用创新大赛的赛题和参赛技巧。


鲲鹏应用创新大赛 2020 在全国开设了 13+1 个赛区,总奖金高达 260 万,四川赛区设置了“金融”、“政府”、 “大数据”、“ARM 原生应用”和“开放命题”5 个赛题,奖金总额也达到了 32 万。如果你想与各路好手同台竞技,探索开发过程中技术奥秘,那么千万要记得在 7 月 30 日关注《鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区宣讲会》。

直播议程(四川赛区)

  • 14:00~14:05 主持人介绍

  • 14:05~15:35 鲲鹏应用代码迁移指导

  • 15:35~15:50 鲲鹏应用创新大赛介绍

  • 15:50~16:20 鲲鹏应用创新大赛答疑

比赛介绍

鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区已经开始备战。为贯彻落实成都市鲲鹏产业发展的战略部署,支持四川中小企业数字化转型,匹配鲲鹏产业发展的人才需求,四川鲲鹏生态创新中心与华为技术有限公司成都工业学院面向四川开发者开展鲲鹏应用创新比赛活动,激发创新潜力,培养鲲鹏产业发展所需的基于鲲鹏生态的软件适配、迁移、软件开发、解决方案孵化等能力,加速鲲鹏产业融合型人才培养、加速构建以鲲鹏为底座的覆盖全产业链的千亿级计算产业。


本赛事奖项激励总额 32 万,“金融”、“政府”、 “大数据”、“ARM 原生应用”和“开放命题”5 个赛题,各赛题奖项设置详情如下:


  • 一等奖:4 个团队(每赛题 1 个团队),每团队奖励:3 万现金;

  • 二等奖:4 个团队(每赛题 1 个团队),每团队奖励:2 万现金;

  • 三等奖:4 个团队(每赛题 1 个团队),每团队奖励:1 万现金;


其中“ARM 原生应用”赛题设置一等奖(1 个团队),团队奖励: 2 万现金


此外,针对高校评选最佳实践奖、最佳创新奖、最佳成果奖共 3 个团队(每个奖项 1 个团队),获奖团队成员各奖励一部华为手机 Mate30。

报名方式

目前,本次大赛的报名渠道已经全面开放,所有的有意参赛者均可在 8 月 15 日 18 时前报名并提交作品。如果你对此次比赛还有所疑惑,或者还想进一步了解此次比赛的相关信息,欢迎在 7 月 30 日《鲲鹏展翅 创客天府•鲲鹏应用创新大赛 2020 四川赛区宣讲会》与讲师进行提问和互动,点击下方链接或扫描海报二维码即可报名参与了哦!


https://competition.huaweicloud.com/information/1000041276/introduction



2020-07-24 14:48966

评论

发布
暂无评论
发现更多内容

阿里云 RTC QoS 弱网对抗之变分辨率编码

阿里云CloudImagine

阿里云 WebRTC 分辨率 视频编解码 视频云

如何抓住新社交风口下的音视频通讯大潮?

融云 RongCloud

后端选择java,还是python?

cdhqyj

Java Python 后端 计算机 语言

建立自己的领导风格

石云升

领导力 28天写作 职场经验 管理经验 4月日更

HBase底层读写过程

五分钟学大数据

HBase 4月日更

为什么要用 Redis 实现事务的 ACID

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

有趣的技术知识 3 | GitHub超火科学上网加速器!

Java_若依框架教程

翻墙 佛跳墙 科学上网

Java程序员都要懂得知识点:原始数据类型

华为云开发者联盟

Java 字符串 StringBuffer 原始数据类型 布尔类型

激光雷达(LiDAR)技术

澳鹏Appen

人工智能 大数据 智能驾驶 激光雷达 点云标注

已拿到8个Offer!阿里巴巴Java面试参考指南(泰山版)

钟奕礼

Java 编程 程序员 架构 面试

Github连夜下架!阿里新产Java全栈面试突击小册太香了

Java架构之路

Java 程序员 架构 面试 编程语言

区块链版「滴滴+Uber」,让出行带来收益

CECBC

移动互联网

入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)

Java 编程 程序员 架构 面试

基于区块链技术的建筑供应链金融创新

CECBC

区块链

3.2 Go语言从入门到精通:包管理工具之GOPATH

xcbeyond

Go 语言 4月日更

阿凡提EGGNETWORK恒价通证+加密社交催生新玩法 EFTalk

币圈那点事

一体化智能安全防御 京东云星盾安全加速正式发布

京东科技开发者

互联网 网络安全

1800 美金?Apache ShardingSphere 带薪远程实习招募啦!| 2021 Google 编程之夏

京东科技开发者

Apache 开源 ShardingSphere

给你看一个开发和运维的效率加速器!

BinTools图尔兹

DevOps 运维 运维工程师 dba 数据库管理工具

找到适合您的数字化转型策略的3个步骤

龙归科技

数字化转型 企业

嘉楠科技发布勘智K210-MicroPython 无需寄存器手册就能上手开发

Android AAC音频硬编解码你知道多少?

Engineer-Jsp

为什么拥有云原生数据平台对电信公司很重要?

VoltDB

云原生 5G VoltDB 电信

架构实战营模块一作业

日照时间长

架构实战营

漫画Nginx的subfilter

运维研习社

nginx 4月日更

构建用户安全评级,UGC智能化审核应用实践

爱奇艺技术产品团队

人工智能

Github上堪称最全的面试题库(Java岗)到底有多香

钟奕礼

Java 编程 程序员 架构 面试

公安重点人员管控系统搭建,智慧派出所系统

C/C++ Linux后端进BAT的学习路线(腾讯官方认证)丨Linux服务器开发

Linux服务器开发

腾讯 后端 Linux服务器开发 BAT

架构实战营-模块一作业

西伯利亚鼯鼠

架构实战营

数字货币,已成为理解现代经济不可排斥的一个因素

CECBC

数字经济

编译型语言成迁移钉子户?鲲鹏迁移有妙招_语言 & 开发_InfoQ精选文章