0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Why Julia?同元软控科学计算环境Syslab助推Julia开源社区发展

华声电子网 来源:华声电子网 作者:华声电子网 2023-01-05 17:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

自发布基于 Julia 的科学计算环境 MWORKS.Syslab 以来,同元软控在科学计算语言、多语言统一编译和融合、AI机器学习等技术方向上开展了深入研究。任何技术的发展都离不开良好的生态,依赖生态并建设生态,是同元软控所坚持的发展理念。2022 年,同元软控跟 Julia 开源社区开展了多层次的合作,包括发起开源项目和开源赞助等。

本期,我们来盘点一下同元软控在 Julia 编程语言方面的一些社区工作。

一、JuliaCN 2022 报告盘点

Julia 中文社区组织的冬季会议于2022年12月3日至12月9日举行,国内使用 Julia 的开发者聚集在一起分享与 Julia 有关的技术报告。作为 JuliaCN 的黄金赞助商,同元软控在这次会议中给予了大力支持,并在这次会议贡献了 6 场精彩的报告。

下面对每场报告的内容进行概述,对相关内容感兴趣的朋友可以直接观看 B 站视频了解更多内容。

1、同元软控与 Julia

我们(同元软控)非常看好 Julia 的发展,也会持续不断地与 Julia 社区一起勇攀未来的高峰。

报告人:郭俊峰 (产品总监)

这个报告向社区介绍了同元软控发展历程,以及同元软控为什么选择 Julia 作为科学计算基础语言,报告就 CPS(信息物理融合系统)的发展做了简要探讨,纵观国际科学计算软件的发展,都发端于数学计算,然后走向广泛的科学计算并最终走向系统仿真,三大数学软件:MathWorks、 WOLFRAM 和 Maple 无不如此。同元深耕系统建模 20 年,在系统建模技术上积累深厚,需要寻找跟系统建模相匹配的下一代科学计算语言。Julia语言恰好在各方面都符合 CPS 对科学计算的诉求:动态、高性能、开源而且面向未来。

pYYBAGO2nCSAZ95KAAIEAWiSya0387.png

报告分享了 Modelica 和 Julia 现阶段的融合进展,更对未来做了展望。同元软控坚定的看好 Julia 的发展,也希望跟 Julia 社区一起推动科学计算工具和生态的发展。

2、新手教程:写出糟糕好的 Julia 代码的N种思路

Julia 可以写出极其高效的代码,但这需要经过一定的观念转变与编程训练。

报告人:陈久宁

Julia 初学者关于 Julia 最大的困惑可能在于 “为什么 Julia 声称很快,但是我随便试着把我旧的 Python/MATLAB 代码翻译过来之后发现并不快,甚至比 Python/MATLAB 还慢”。这个教程的目的是为了介绍那些 Julia 与其他语言在使用上最核心的差异。这个教程的内容取材于陈久宁在同元软控日常代码评审中的频繁发现的问题,这些问题背后实际上是那些高级 Julia 开发者必知必会的一些内容。

poYBAGO2nCWAauX6AAFNDG5wMqI241.png

这个教程当天收到了一位社区中 Julia 初学者的高度评价:“一个 Julia 基础语法不全会的人,这场报告竟然听懂了。Julia 性能很大程度上需要人来操作:固定类型、不可变结构体等等... 说实话不听这一场,我可能就会按照其他语言那样去学习,不去提升 Julia 性能了。”

3、TyMLang.jl:将 MATLAB 代码导入 Julia 生态

你可以在 Julia 下执行 .m 文件,而这完全不需要 MathWorks。

报告人:赵王宏楦

MATLAB 是迄今为止最具影响力的数值计算集成开发环境,它在工程领域遗留了大量代码资产,在各行各业的老一代专业人员中有相当高的普及度。随着时代发展,MATLAB 在以深度学习为代表的新兴科学计算分支中呈现明显的颓势;而 Julia 语言作为一个面向未来的科学计算语言,同时很好地继承 Python 等语言的历史遗产,具有非常广阔的发展空间。

我们希望 MATLAB 的老用户,和他们的部分代码资产能参与到新一代生态的发展中来。正因如此,我们破除万难,在 Julia 中实现了一个高度兼容 MATLAB 的编程语言——同元软控 M 语言。使用同元软控 M 语言,可以让那些掌握 MATLAB 技巧的工程师和科学家快速投入到最新的科学计算生态中工作,让他们访问并应用 Julia 生态中那些新颖的技术和工具。

4、JNumPy:使用 Julia为 Python/Numpy 编写扩展模块

对于 Python 社区来说,JNumpy 是一个更好的 C/Numba 方案——更少的代码封装和更高的性能。

报告人:宋家豪

本次报告向社区介绍了由同元软控开发的 JNumPy 工具库,首先介绍了 JNumPy 的使用场景,即提供高效且易用的封装工具,将 Julia 代码以封装成 Python 库,使得 Python 用户能够调用 Julia 得到更好的计算性能。报告演示了使用 JNumPy 封装 Julia 代码的示例,JNumPy 的使用方法,Julia 和 Python 之间的数据转换规则,性能对比,以及未来优化的工作方向等。

由于 JNumPy 在启动速度,运行速度,跨平台支持等特性上相比其他 Python 调用 Julia 的方案 (PyCall, PythonCall) 具有明显的优势,在追求性能以及工程化的应用场景下,JNumPy 提供了目前最强大的解决方案。

5、TyPlot: 使用 Julia 实现自定义绘图模块

同元基于自身需求开发的一个绘图框架。

报告人:陈志强

向社区介绍了同元软控在数据可视化方面的迫切需求,引出了图形库开发的必要性。从如何开发图形库、现有的技术调研、图形库最终的开发目标介绍了图形库的背景。

pYYBAGO2nCaACfAjAAI1a_6OYKY365.png

这个报告主要介绍了同元软控图形库已具备的能力,包括丰富的图形种类,友好的交互界面以及一体化的用户体验。选取了专业库的几个典型应用,直观的展示了图形库对复杂图形的支持能力。报告最后提出了图形库进一步发展方向,从能用变成好用、二维辐射三维、常用绘图扩展到专业图形绘图、离线绘图到实时绘图、桌面绘图到网页绘图。

6、为什么我推荐使用 Julia ?—— 可组合性与生成函数

在 Julia 中 1 + 1 > 2 的场景随处可见 —— 更少的代码、更好的可读性、更高的效率。

报告人:陈久宁

今年在 Julia 社区最出圈的一篇博客大概是 Yuri 的“为什么我不再推荐使用 Julia”,一针见血地指出了 Julia 的可组合性在正确性方面的风险。在这个报告中,我们介绍了一个同元内部通信工具箱的一个核心组件及其设计思路——用不到 300 行代码实现在 Galois 域上的数值计算中得到超越 MATLAB 的 C 代码 1000 倍的性能优势。

poYBAGO2nCeAGgOZAAFlcE44o9U248.png

这一组件背后的核心思路在于:1) 利用 Julia 生成函数带来的无运行时开销的泛型支持,以及更重要的 2) Julia 的可组合性。围绕性能和可组合性这两个核心特征设计的 Julia 允许我们用更少的代码、更清晰的编程实现和更少的硬编码假设来完成日常编码工作的需求,而这是我们始终推荐 Julia 的原因。相比而言,Yuri 文章指出的是一个普遍但并不关键的场景——它只会出现在实验性代码阶段。

二、Julia 社区贡献

2022年,同元软控开源的 Julia 相关工具箱或组件一共有三个,均存放在GitHub: Suzhou-TongYuan项目下。

1、JNumpy: julia-numpy

作者:赵王宏楦、宋家豪

JNumPy 是同元软控针对 Python 调用Julia语言问题给出的一个工程化的解决方案。在所有 Python 调用 Julia 的方案中,JNumPy 以启动速度最快、运行速度遥遥领先、支持跨平台及特殊的 Python 发行版、具有编译可移植性、对 NumPy 类型兼容性最佳、严格可控的类型转换关系等特点脱颖而出。在较为“严肃”的 Python 调用 Julia 工程中,JNumPy 是将 Julia 数据及函数暴露给 Python 的最佳选择。

2、ObjectOriented.jl

作者:赵王宏楦

ObjectOriented.jl 是同元软控为 Julia 语言实现的一套完整的、机制性 (mechanical) 的面向对象宏库,能够让用户以贴近 Python 的语法进行面向对象编程,以访问诸如继承/多继承、getter/setter,接口编程等功能。

pYYBAGO2nCeAfRPtAADHBbSrLLw146.png

由于该库是 Julia 中第一个完整实现常见面向对象特性的库,在向社区征求命名意见时,被一致认同冠以 ObjectOriented.jl 这个明显具有生态主导地位的名字。

3、UnzipLoops.jl

作者:陈久宁、赵王宏楦

针对以下这类将广播结果拆分到不同矩阵的典型需求,UnzipLoops.jl 给出了社区中最高效的解决方案:

poYBAGO2nCiALVstAAEGnlxAC2w418.png

在给出高效方案的同时,UnzipLoops 是一个零依赖的轻量包——源代码仅仅不到100行。

三、寄语

2022年是同元软控跟 Julia 开源社区合作的元年。同元软控坚定看好 Julia 的发展,也坚定地将Julia作为下一代科学计算环境的支撑语言。同元软控会持续跟 Julia 社区开展多层次合作,也欢迎 Julia 社区以及有志于建设开源科学计算生态的同道中人,一起推进 Julia社区和科学计算环境Syslab的发展,让中国在新一代科学计算中做出更大的贡献与成就。


审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子
    +关注

    关注

    32

    文章

    2038

    浏览量

    93820
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74358
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【乾芯QXS320F开发板试用】之julia分形测试

    计算一个简单的数学分形:Julia集。 这种数学对象的生成算法非常简单:对于复平面的每个点,我们对一个定义序列的发散速度进行估计。该序列的Julia集方程为: zn+1 = zn2 + c 对于复平面
    发表于 12-15 02:48

    通动力成为openEuler社区首批全球化先锋伙伴

    11月14—15日,操作系统大会&openEuler Summit 2025在北京隆重举行。本次大会由开放原子开源欧拉社区协同通动力等数十家产业伙伴共同举办,旨在汇聚全球产业界力量,打造极具创新力的操作系统,加速全球基础软件
    的头像 发表于 11-19 17:25 849次阅读

    国际亮相浙江开源鸿蒙生态发展大会

    2025年10月16日,由浙江省经信厅主办的首届浙江开源鸿蒙生态发展大会在温州国际云软件谷成功举办。作为鸿蒙生态核心共建者,中国际受邀参会,与浙江省政产学研用各界精英,聚焦开源鸿蒙与
    的头像 发表于 10-18 15:51 1106次阅读

    通动力携手openEuler推动开源生态全球化发展

    8月29日,开放原子开源基金会园区行在重庆召开。开放原子开源基金会openEuler社区作为开源社区代表参会,
    的头像 发表于 09-01 11:39 787次阅读

    国际出席华为昇腾计算产业发展峰会

    今天,昇腾计算产业发展峰会在北京召开。作为人工智能产业的重要参与者与华为核心合作伙伴,中国际受邀出席本次峰会,与众多AI领军企业、合作伙伴、高校及科研机构代表齐聚一堂,共同见证华为昇腾系列关键技术
    的头像 发表于 08-07 18:14 1735次阅读

    开源鸿蒙出席地方开源生态建设圆桌交流会

    社区发展、技术演进、行业落地、版本迭代及地方政策联动方面取得的关键成果,并呼吁更多地方加速政企办公应用鸿蒙化,推动开源生态落地、促进区域经济发展、提升产业竞争力。
    的头像 发表于 07-28 17:41 995次阅读

    开源鸿蒙持续取得显著成果

    和落地实践。会上,开源鸿蒙项目群工作委员会委员、华为终端BG软件部副总裁章晓峰发表了题为《乘风破浪,共创开源鸿蒙未来》的主题演讲,全面阐述了开源鸿蒙在社区发展、行业落地、版本迭代及人才
    的头像 发表于 07-28 17:39 1054次阅读

    首批成员单位加入开放原子电鸿开源社区

    ,论坛汇聚能源企业、科研机构及生态企业等电力产业链上下游核心力量,共谋开源社区发展蓝图,共商电力行业数字化转型路径,为新型电力系统建设注入开源动能。
    的头像 发表于 07-28 17:35 1047次阅读

    北京国际开源社区取得积极进展

    近日,2025开放原子开源生态大会开幕式上,北京国际开源社区交出两年建设答卷。开源中国、统信软件、深开鸿、北京人形机器人创新中心等十家企业获授北京国际
    的头像 发表于 07-28 17:05 1191次阅读

    开放原子旋武开源社区正式成立

    近日,在2025开放原子开源生态大会开幕式上,开放原子旋武开源社区正式宣告成立。
    的头像 发表于 07-28 17:01 1190次阅读

    开放原子电鸿开源社区正式成立

    在能源革命与数字技术深度融合的背景下,我国电力行业开源生态建设迈出关键一步。近日,在2025开放原子开源生态大会开幕式上,开放原子电鸿开源社区正式启动,并同步发起“
    的头像 发表于 07-28 17:00 1075次阅读

    开源科学计算与系统建模分论坛即将召开

    2025开放原子开源生态大会即将于7月23-24日在北京国家会议中心二期盛大启幕。作为大会重要组成部分,开源科学计算与系统建模(openSCS)分论坛将于7月24日上午9:00在会议室
    的头像 发表于 07-21 17:48 1310次阅读

    华为亮相2025开源鸿蒙开发者大会

    近日,开源鸿蒙开发者大会2025(以下简称大会)在深圳成功举办。大会以开源鸿蒙5.1 Release版本发布为契机,聚焦开源鸿蒙技术革新和社区发展,全面呈现“Powered
    的头像 发表于 05-29 09:07 1449次阅读

    通动力以开源鸿蒙技术助力数字经济高质量发展

    。顺应时代趋势,通动力凭借深厚的技术积累和持续创新能力,坚定不移推进自主化战略,旗下子公司鸿湖万联担纲开源战略排头兵,积极引领开源鸿蒙生态建设,助推创新突破与产业落地。
    的头像 发表于 05-12 14:55 1054次阅读

    openKylin社区会员突破1000家

    开源技术驱动全球创新的时代浪潮中,OpenAtom openKylin(简称“openKylin”)开源操作系统社区再迎重大里程碑——企业会员突破1000家。此次会员突破1000家,是社区发
    的头像 发表于 04-25 13:05 1209次阅读