并行编程的工具箱关闭

160(30天)
侯赛因
侯赛因 2015年2月20日
我有一个matlab代码结构类似于以下
i = 1:10
一些代码
parforj = 1:10
成本(i, j) =函数宏指令(myfunction SomeParameter);
结束
结束
这段代码运行时间一天因为@myfunction是昂贵的计算。我的问题是,一旦我在并行编程开始运行代码,但一段时间后自动就会闲置。平行池已经在一旦达到“parfor”,但就闲置在我= 2 !你可以看到它在并行计算状态栏更低的底部角落使用3出4核(Im)
2的评论
侯赛因
侯赛因 2015年2月21日
我纠正我的问题。parpool不关闭在我= 2,它实际上成为闲置。为我= 1:1没问题但下次(i = 3)变得闲置。

登录置评。

答案(3)

Edric埃利斯
Edric埃利斯 2015年2月23日
你可以禁用 IdleTimeout 平行池的行为两种方式之一:
  1. 打开“平行偏好”(可以通过MATLAB桌面的图标在角落左下角)和取消选中对应的复选框“关闭和删除平行池后空闲……”。这将适用于所有未来池。
  2. 显式禁用IdleTimeout对于一个给定的池通过调用类似
parpool (4“IdleTimeout”正)
1评论
戴奥
戴奥 2018年8月6日
嗨Edric,我不认为迈克的问题IdleTimeout有关,因为它不是一个与时间相关的问题,而是iteration-related。我像他遇到同样的问题,并行处理闲置一旦我完成第一次迭代(几秒钟,所以不是IdleTimeout-related)从第二个迭代开始,平行的空闲。我用fmincon选项“UseParallel”设置为true。知道为什么第一次迭代后的优化成为系列?谢谢。

登录置评。


Sardar Azari
Sardar Azari 2018年10月13日
我有戴奥完全相同的问题。你找到解决方案了吗?金宝搏官方网站
2的评论
Yantao沈
Yantao沈 2019年1月18日
我已经对R2017b完全相同的问题

登录置评。


Raimundas Steponavicius
Raimundas Steponavicius 2021年2月11日
我也有一个类似的问题。我使用fmincon大问题(近一百万变量),以下选项/设置:
选择= optimoptions (“fmincon”,“算法”,“内点”,“海赛”,“lbfgs”,“SubproblemAlgorithm”,“重心”,“InitBarrierParam”,1“InitTrustRegionRadius”,sqrt(长度(x0)) * 1 e - 3,);
每次迭代并行池就闲置了一段时间,这个迭代之间空转时间与迭代逐渐增加。我不知道为什么以及如何处理这个。
我试过不同版本的MATLAB (R2016b、R2018b R2020a和R2020b),但同样的问题依然存在。
任何答案的这是为什么和如何解决这个问题?
1评论
Somayeh g . Esfahani
Somayeh g . Esfahani 2023年3月1日
编辑:Somayeh g . Esfahani 2023年3月1日
我没有任何问题与2018年和设置“UseParalell”,但是其他版本也有类似的问题。串行模式代码运行的射程,但是当直线选项返回下列错误:
错误使用fcnvectorizer
必须表示为一个字符串标量函数来评估,
特征向量,或function_handle对象。
错误makeState(第69行)
分数= fcnvectorizer (state.Population (initScoreProvided + 2:,:), FitnessFcn, 1,……
错误galincon(24)行
状态= makeState (GenomeLength FitnessFcn、迭代、output.problemtype选项);
错误ga(第416行)
[x, fval exitFlag、输出人口,分数)= galincon (FitnessFcn,据nvar,…
错误main_ga_WT_no2nh4zeroatBC_11feb_matlab2022b(29)行
[问,上交所,exitflag、输出fin_popul,分数)= ga (fnc_GA 4[]、[][],[],磅,乌兰巴托,[],选项);
引起的:
在用户提供的适应度函数评价失败。遗传算法
不能继续下去。
我用遗传算法,我需要运行在直线到下一代在合理的时间框架。不幸的是,这听起来像一个错误在matlab的新版本。

登录置评。

类别

找到更多的在并行for循环(parfor)帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!