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

    文章

    1882

    浏览量

    89379
  • 代码
    +关注

    关注

    30

    文章

    4786

    浏览量

    68569
收藏 人收藏

    评论

    相关推荐

    黄鹤开源社区正式发布

    近日,在2024开放原子开发者大会暨首届开源技术学术大会开幕式上,基于开放原子开源基金会旗下AtomGit开源协作平台搭建的黄鹤开源社区正式
    的头像 发表于 12-23 11:33 202次阅读

    deepin荣获2024年度开源社区

    近日,由中国科协科学技术传播中心、中国计算机学会、中国通信学会和中国科学院软件研究所联合主办、CSDN 承办的 2024 年开源创新榜评选活动圆满落幕。经过严格的评选过程,deepin
    的头像 发表于 12-20 15:13 232次阅读

    deepin社区落地开源生态发展合作倡议

    )五大操作系统开源社区联合发起的开源生态发展合作倡议,deepin(深度)社区在操作系统构建工程落地上已有重要进展,彰显了 deepin(深
    的头像 发表于 12-17 09:35 164次阅读

    OpenHarmony人才生态大会南向生态社区发展论坛在武汉圆满举办

    11月27日,OpenHarmony人才生态大会2024在武汉隆重举行。当日下午的 OpenHarmony南向生态社区发展论坛(以下简称“论坛”)上,众多社区伙伴、企业代表、技术专家与优秀开发者齐聚,深度分享OpenHarmony硬件生态与人才建设经验,为其
    的头像 发表于 11-29 10:06 172次阅读
    OpenHarmony人才生态大会南向生态<b class='flag-5'>社区发展</b>论坛在武汉圆满举办

    OpenHarmony人才生态大会南向生态社区发展论坛在武汉圆满举办

    11月27日,OpenHarmony人才生态大会2024在武汉隆重举行。当日下午的 OpenHarmony南向生态社区发展论坛(以下简称“论坛”)上,众多社区伙伴、企业代表、技术专家与优秀开发者齐聚
    发表于 11-29 09:54

    香蕉派开源社区与矽昌通信共推BPI-Wifi5 低成本路由器开源方案

    和其他网络环境。由Banana Pi 开源硬件社区与矽昌通信联合推出,采用开源方式运作,所有的软件都公开在Github上,开发者与用户可以自由编译自己的软件。 BPI-Wifi5 Ro
    发表于 11-28 10:37

    通动力荣膺2024年度openEuler社区突出贡献单位

    近日,主题为“以智能 致世界”的操作系统大会2024在北京中关村国际创新中心举办,大会由openEuler社区和全球计算联盟主办,通动力参与协办。作为开放原子开源基金会白金捐赠人
    的头像 发表于 11-20 11:50 363次阅读

    Arm加入OpenCloudOS操作系统开源社区

    基于 Arm 架构的应用。近期,Arm 加入 OpenCloudOS 操作系统开源社区,共同推进开源云操作系统的发展。 Arm 作为全球领先的计算
    的头像 发表于 11-15 11:34 348次阅读

    通动力子公司鸿湖万联重磅发布SwanLinkOS 5,擘画开源鸿蒙AI PC新篇章

    计算机)强势推出搭载SwanLinkOS5的开源鸿蒙AIPC和开源鸿蒙智能交互平板等革命性产品。以“开源鸿蒙+AI”为核心技术,推动新质生产力发展
    的头像 发表于 09-03 11:37 555次阅读
    <b class='flag-5'>软</b>通动力子公司鸿湖万联重磅发布SwanLinkOS 5,擘画<b class='flag-5'>开源</b>鸿蒙AI PC新篇章

    龙芯开源技术社区--BSP源码等资料汇集地

    龙芯开源技术社区: https://gitee.com/open-loongarch
    发表于 06-12 16:51

    国际签署CLA,正式加入OpenCloudOS操作系统开源社区

    近日,中国际签署 CLA(Contributor License Agreement 贡献者许可协议),正式加入 OpenCloudOS 操作系统开源社区
    的头像 发表于 04-15 11:42 692次阅读

    从MATLAB到MWORKS,科学计算与系统建模仿真平台的中国选项

    一、控:敢担重任,研制中国自主的科学计算与系统建模仿真平台 “中国需要自主的科学
    的头像 发表于 03-11 13:06 592次阅读

    OpenHarmony社区运营报告(2023年12月)

    /master/zh-cn/release-notes/OpenHarmony-v4.1-beta1.md 五、社区活动 1、公共活动 2023 年 12 月 16 日,由开放原子开源基金会主办、通动力
    发表于 01-10 15:44

    希望2024年能够多多学习,祝社区发展蒸蒸日上

    希望2024年能够多多学习,祝社区发展蒸蒸日上!
    发表于 01-04 08:20

    睿思芯科携手开源社区共筑未来RISC-V生态

    近年来,RISC-V已成全球瞩目的新型架构,随着RISC-V企业与开源社区紧密合作,其影响力正不断拓展——从 IoT设备、车辆到服务器等高性能领域,这个精简、开源的指令集架构正被开发出更多计算
    的头像 发表于 12-29 10:10 579次阅读
    睿思芯科携手<b class='flag-5'>开源</b><b class='flag-5'>社区</b>共筑未来RISC-V生态