如何在 Linux Matlab 中获得用于矩阵计算的空闲交换内存?
How to Get Free Swap Memory for Matrix Computation in Linux Matlab?
情况:估计你是否可以在 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 中释放 Ram 内存
%
[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 的第二次迭代
Suever 的命令给了我 29.2 GB,这与 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(设置与线程 How to Allocate More Space to Swap and Increase its Size Greater than Ram? 相同)
固态硬盘: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')
要计算矩阵占用多少内存,请使用数据类型的大小并乘以元素数作为第一个近似值。
情况:估计你是否可以在 Linux Matlab
中使用 Ram 和 Swap 计算大矩阵
我需要 Mem
和 Swap
的总和,在 Linux
free -m
对应的值
total used free shared buff/cache available
Mem: 7925 3114 3646 308 1164 4220
Swap: 28610 32 28578
在 Matlab 中释放 Ram 内存
%
[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 的第二次迭代
Suever 的命令给了我 29.2 GB,这与 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(设置与线程 How to Allocate More Space to Swap and Increase its Size Greater than Ram? 相同)
固态硬盘: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')
要计算矩阵占用多少内存,请使用数据类型的大小并乘以元素数作为第一个近似值。