MWORKS.Syslab首次推出时已实现基于Julia语言的科学计算环境,尽管如此,仍有大量工程师团队坚持使用M语言相关软件。除了使用习惯和学习语言等问题,更深层的原因在于大量历史代码资产复用的问题。为了解决这一关键问题,同元软控在后续版本的Syslab中持续进化,不断克服挑战。当前,Syslab已发展为一款以Julia语言为主,同时兼容M语言,支持Julia与M、Python等编程语言相互调用的新一代科学计算环境。
回顾历史,同元软控于2022年推出Syslab的首个版本,当时尚未支持M语言兼容功能,但相关技术预研已同步展开。2023年,推出M语言兼容工具,实现了M与Julia的互调用。到2024年,M语言兼容工具不断优化,已支持代码调试、搜索路径、MEX机制等功能,支持的函数数量从最初的361个扩展到1260个,并成功通过了某产业龙头企业220+个应用案例验证,实现了70万行存量M代码的复用。2025年初,正式将M语言兼容工具升级为M语言计算环境,内核性能大幅提升,M语言IDE完整支持,内置的M函数数量已达到1681个。Syslab兼容M语言的历程充满挑战与收获,在此衷心感谢各位用户、合作伙伴对同元软控的信任与支持!
第二期直播“M语言计算环境重磅更新”已于1月10日圆满结束。如果您错过这场直播也不用担心,我们整理了完整的直播回放,以及文字版更新概览,帮助您深入了解Syslab 2025a M语言计算环境的魅力所在。
直播回放
【直播回放】第二期:M语言计算环境重磅更新
文字版更新概览
在Syslab 2025a版本中,M语言计算环境从内核层、函数层、交互层进行了不同程度的升级,概览如下。
01 更完备的M语言计算环境
1.创新和管理代码节
支持插入分节符、运行节、根据分节符生成大纲
2.编辑区易用性改进
M函数转到定义、代码补全、函数悬停提示
3.M工作区变量展示优化
M工作区变量的表格视图,支撑层级展开
M工作区变量支持展示高维数组
02 兼容性不断增强
1.函数兼容
持续更新函数库,目前支持1681个M函数,打开《Syslab使用手册》,点击“多语言编程环境”下的“M语言兼容工具”即可查看当前支持的M函数
2.语法兼容
支持classdef的类定义语法,点操作调用类函数
支持与MATLAB兼容的32位浮点数复数及整数复数
支持与MATLAB兼容的饱和运算规则,优化图像处理领域的代码兼容性
03 内核重构,性能更强
M语言兼容工具自发布以来,不少用户诟病其“for循环”执行速度慢,那么“MATLAB为什么这么快?”,因此,性能优化成为突破M语言兼容的瓶颈。经研究,MATLAB在性能优化上的主要措施有COW优化、内存优化、算法优化、JIT编译、算子融合、多线程等。通过持续的技术攻关与深入优化,本次发布的M语言计算环境在内核上进行了全面升级,性能接近MATLAB,主要优化了以下两方面:
- 全新的对象模型
实现COW(Copy-On-Write,写入时拷贝)优化,全局精准追踪数据引用,大量减少拷贝操作。
- 全新的M语言解释器
重构解释器,大幅降低函数调用开销。
【示例】
1.全新的对象模型
实现COW优化,全局精准追踪数据引用,大量减少拷贝操作
COW优化实现
全新的对象模型
2.全新的M语言解释器
全新重构解释器,大幅度降低函数调用开销,明显看到了25a在函数调用、变量查找、向量化运算和标量运算等方面上的性能优化。
【示例】支持复杂MATLAB工程的兼容运行
以Delta-Sigma 为例,它是通信行业较为著名的开源工具箱,支持Delta-Sigma模拟器的合成、模拟、实现和动态,能够用来计算Delta-Sigma 模拟器的NTF(噪声传输函数)和STF(信号传输函数),并进行调节。Delta-Sigma工具箱用到了基础、数学、图形、APP、控制系统、优化、信号处理的一些算法函数,共 3.4 万行代码,具有一定的工程规模和代码复杂度。
备注:Delta-Sigma 示例性能提升
Syslab/M语言计算环境发展到现在,功能基本完备,性能不断接近MATLAB 。未来,同元软控会进一步完善边缘语义,提供更多M语言函数,持续改进IDE,给用户带来无缝衔接的丝滑切换新体验!
下期预告
MWORKS 2025a发布系列第三期直播“Sysplorer 2025a演进革新”将于1月13日19:00开始。届时,我们将深入探讨Sysplorer 2025a的全新功能和技术革新,展示其在用户体验上、性能等方面的提升。诚邀大家准时观看,一起见证Sysplorer的创新演进!
内测邀请
Syslab 2025a已开启内测申请,诚邀大家试用反馈,可扫描下方二维码申请。
同元软控官网将于春节之后提供MWORKS 2025a新版本试用,期待您去体验,去发现!如果您在使用过程中遇到任何问题,或者有任何您认为可以提升产品质量的建议,欢迎您通过MoHub社区(https://mohub.net/home)发帖联系我们。