吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 6384|回复: 7

[求助] [已解决]matlab调用zemax串口的多核并行运算的方法

[复制链接]
  • TA的每日心情
    开心
    2024-9-15 15:36
  • 签到天数: 1435 天

    [LV.10]以坛为家III

    86

    主题

    270

    回帖

    25

    积分

    新手

    积分
    25
    发表于 2021-11-26 20:15 | 显示全部楼层 |阅读模式
    本帖最后由 oy87188 于 2021-11-28 19:07 编辑

    尊敬的各位大佬,本人是zemax小白,在初学matlab调用zemax的时候发现计算的时候都是单核运算,速度比较慢,不知道能否用于多核运算提高计算速度呢?还有就是该如何将多核运算或者提速的代码写进去到调用语句中呢?还望各位大佬多多指点。
    最佳答案
    2022-6-28 20:37
    nocolor 发表于 2022-1-5 17:34
    没怎么用过matlab调用zemax的api,不过matlab中除了parfor这种多线程循环,像普通的for也是单线程计算的。

    matlab强大的功能在于数组运算,基本上简单的计算一般不会去用for循环的。简化程序,运算部分全部用matalab矩阵运算,岂不更快。

    评分

    参与人数 1金币 +2 收起 理由
    little华 + 2

    查看全部评分

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-4 13:38
  • 签到天数: 225 天

    [LV.7]常住居民III

    1

    主题

    11

    回帖

    2

    积分

    小白

    积分
    2
    发表于 2022-1-5 17:34 | 显示全部楼层

    回帖奖励 +1 枚金币

    没怎么用过matlab调用zemax的api,不过matlab中除了parfor这种多线程循环,像普通的for也是单线程计算的。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-8-24 11:04
  • 签到天数: 511 天

    [LV.9]以坛为家II

    3

    主题

    85

    回帖

    55

    积分

    入门

    积分
    55

    论坛忠实支持者

    发表于 2022-1-6 11:54 | 显示全部楼层
    用parfor会报错,好像不行
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-15 15:36
  • 签到天数: 1435 天

    [LV.10]以坛为家III

    86

    主题

    270

    回帖

    25

    积分

    新手

    积分
    25
     楼主| 发表于 2022-1-6 16:51 | 显示全部楼层
    感谢大神们的指点,之前我也用过parfor,但是运算了几十秒以后又回到单核心的运算了,不太行
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情

    2024-11-26 14:44
  • 签到天数: 1086 天

    [LV.10]以坛为家III

    27

    主题

    192

    回帖

    22

    积分

    新手

    积分
    22
    发表于 2022-6-28 20:37 | 显示全部楼层    本楼为最佳答案   
    nocolor 发表于 2022-1-5 17:34
    没怎么用过matlab调用zemax的api,不过matlab中除了parfor这种多线程循环,像普通的for也是单线程计算的。

    matlab强大的功能在于数组运算,基本上简单的计算一般不会去用for循环的。简化程序,运算部分全部用matalab矩阵运算,岂不更快。
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-10-20 09:45
  • 签到天数: 235 天

    [LV.7]常住居民III

    1

    主题

    31

    回帖

    6

    积分

    小白

    积分
    6
    发表于 2022-6-29 09:29 | 显示全部楼层
    同意楼上,之前用matlab连接zemax作遍历计算的时候也比较慢,想用parallel pool一直报错,后面尽量用矩阵运算,把循环次数多的放在里循环里,运算速度快了很多

    评分

    参与人数 1金币 +1 收起 理由
    oy87188 + 1 很给力!

    查看全部评分

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-15 15:36
  • 签到天数: 1435 天

    [LV.10]以坛为家III

    86

    主题

    270

    回帖

    25

    积分

    新手

    积分
    25
     楼主| 发表于 2022-6-29 14:59 | 显示全部楼层
    Falm 发表于 2022-6-29 09:29
    同意楼上,之前用matlab连接zemax作遍历计算的时候也比较慢,想用parallel pool一直报错,后面尽量用矩阵运 ...

    感谢大神的指点,不知道用C或者pathon调用是否也存在这个问题?能否提高数据交换利用的效率?
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-10-20 09:45
  • 签到天数: 235 天

    [LV.7]常住居民III

    1

    主题

    31

    回帖

    6

    积分

    小白

    积分
    6
    发表于 2022-7-1 09:03 | 显示全部楼层
    oy87188 发表于 2022-6-29 14:59
    感谢大神的指点,不知道用C或者pathon调用是否也存在这个问题?能否提高数据交换利用的效率?

    只用matlab调用过,其他两个没用过。就从语言本身来说,matlab数值计算功能强大,但python的循环调用结构比matlab出色
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2024-11-28 06:33 , Processed in 0.140625 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表