MWORKS 2025a 直播回顾 | 第二期:M语言计算环境重磅更新

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)发帖联系我们。

### MWorks 编译时 `collect2.exe` 出现 `ld returned 1 exit status` 错误解决方案 当遇到 `collect2.exe: error: ld returned 1 exit status` 这类链接错误时,通常意味着编译过程中存在未解析的符号或其他链接问题。以下是几种常见的排查方法: #### 1. 检查依赖库路径配置 确保所有的外部库文件路径已正确设置。可以通过修改环境变量或项目配置文件来添加这些路径。 对于 Linux 平台上的 MWORKS.Syslab,在安装包所在目录打开终端并执行如下命令赋予脚本可执行权限[^1]: ```bash chmod +x MWORKS.Syslab-2024a_SP1-x86_64-0.11.2.run ``` 如果使用的是 Miniforge3 创建的 Python 环境,则需确认该环境中已经安装了必要的开发工具链以及对应的版本号是否匹配目标平台需求[^2]。 #### 2. 验证编译器与链接器选项一致性 检查 Makefile 或 CMakeLists.txt 文件中的编译参数设定,特别是 `-L`, `-l` 参数后面跟的具体库名及其顺序;另外还要注意不同阶段使用的优化级别 (`O0~O3`) 是否一致。 #### 3. 清理构建缓存重新尝试 有时旧的对象文件可能会干扰新的编译过程,建议先清理整个项目的中间产物再重试: ```makefile make clean && make all ``` #### 4. 更新或回滚特定组件至稳定版 某些情况下可能是由于第三方插件或者自定义模块引入了不兼容的变化所引起的冲突。可以考虑暂时禁用可疑部分或将它们更新/降级到更稳定的发布版本。 #### 5. 查看详细的日志输出寻找线索 增加更多的调试信息有助于定位具体失败位置。可以在调用 g++ / gcc 命令时加上 `-v` 开关查看完整的预处理、汇编和链接流程,并仔细分析其中提示的信息。 以上措施能够帮助解决大部分由链接器引发的问题。不过需要注意的是,实际操作还需结合具体的工程结构和个人经验灵活调整策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值