情况:估计是否可以在Linux Matlab中使用Ram和Swap计算大矩阵
我需要Mem
和Swap
的总和,这是Linux 中标题total下free -m
的相应值
total used free shared buff/cache available
Mem: 7925 3114 3646 308 1164 4220
Swap: 28610 32 28578
利用在Matlab中实现自由内存
% http://stackoverflow.com/a/12350678/54964
[r,w] = unix('free | grep Mem');
stats = str2double(regexp(w, '[0-9]*', 'match'));
memsize = stats(1)/1e6;
freeRamMem = (stats(3)+stats(end))/1e6;
Matlab中的自由交换内存:。。。
Matlab的内存需求与矩阵大小的关系:。。。
测试翻毛皮的第二次迭代
Suever的命令给了我29.2GB,这与free
的输出相对应,所以是正确的
$ free
total used free shared buff/cache available
Mem: 8115460 4445520 1956672 350692 1713268 3024604
Swap: 29297656 33028 29264628
系统:Linux Ubuntu 16.04 64位
Linux内核:4.6
Linux内核选项:wl、zswap
Matlab:2016a
硬件:Macbook Air 2013中期
内存:8 GB
交换:SSD上的28 Gb(像在线程中一样设置如何分配更多空间进行交换并将其大小增加到大于Ram?)
SSD:128 GB
您只需对发布的代码进行轻微修改即可获得掉期金额。
function freeMem = freeMemory(type)
[r, w] = unix(['free | grep ', type]);
stats = str2double(regexp(w, '[0-9]*', 'match'));
memsize = stats(1)/1e6;
if numel(stats) > 3
freeMem = (stats(3)+stats(end))/1e6;
else
freeMem = stats(3)/1e6;
end
end
totalFree = freeMemory('Mem') + freeMemory('Swap')
要计算矩阵占用的内存量,请使用数据类型的大小并乘以元素数作为第一近似值。