网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月22日漏签0天
matlab吧 关注:291,718贴子:1,658,102
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 6回复贴,共1页
<<返回matlab吧
>0< 加载中...

请教,matlab怎么清除并行进程池的变量

  • 只看楼主
  • 收藏

  • 回复
  • 潜意识の失异
  • 1L喂熊
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
示例代码如下:
%% test Parfor
clc,clear,close all;
p = gcp('nocreate');
if isempty(p)
p = parpool('local');
else
delete(p);
p = parpool('local');
end
for i = 1:100000000
tic
a = zeros(1000,100);
for k = 1:100
parfor j = 1:1000
a(j,k) = rand(1,10000)*rand(10000,1);
end
end
toc
end
***************************************************************************************************
由于原来程序中用来符号变量,所以并行池选择了‘local’
如以上示例代码,运行过程中每个进程的内存不断增加,效率越来越低,就像不会自动释放内存一样,
请教如何删除这部分内存!!
下图分别为运行之后和运行之前的内存占用。



  • 潜意识の失异
  • 1L喂熊
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
非并行的循环不会产生这个问题,
Threads的parfor也不会产生这个问题。
实在不行就只能并行一定次数之后
delete(gcp);parpool('local')
但是这样就太浪费时间了!!!!!
主要是用于程序中的正演方程速度太慢,不用并行迭代一次要1700s半个多小时,吐血!!!


2025-06-22 12:03:26
广告
  • 潜意识の失异
  • 1L喂熊
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有没大神遇到过这个问题啊,求助!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


  • 胡乱取个昵称
  • 我勒个去
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不太懂用parfor做并行方式循环是怎么一回事,目前理解为j不是按1到10000的变化。所以 根据你的最后目的,直接用函数生成随机矩阵应该就可以吧


  • JJJJ2019
  • 1L喂熊
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你好,请问你最后是怎么解决这个问题的,我现在是用C#调用matlab生成的DLL,当matlab中使用parfor内存一直在增加,不是用parfor一切正常。能否指教一下,非常感谢!


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回matlab吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示