matlab 查看电脑系统性能(CPU,GPU),并开启并行运算

判断电脑的系统性能,并开启并行运算

%--------------------------------------------------------------------------
clear;clc;close all

% Find capabilities of computer so we can best utilize them.

% Find if gpu is present
ngpus=gpuDeviceCount;
disp([num2str(ngpus) ' GPUs found'])
if ngpus>0
    lgpu=1;
    disp('GPU found')
    useGPU='yes';
else
    lgpu=0;
    disp('No GPU found')
    useGPU='no';
end

% Find number of cores
ncores=feature('numCores');
disp([num2str(ncores) ' cores found'])

% Find number of cpus
import java.lang.*;
r=Runtime.getRuntime;
ncpus=r.availableProcessors;
disp([num2str(ncpus) ' cpus found'])

if ncpus>1
    useParallel='yes';
else
    useParallel='no';
end

[archstr,maxsize,endian]=computer;
disp([...
    'This is a ' archstr ...
    ' computer that can have up to ' num2str(maxsize) ...
    ' elements in a matlab array and uses ' endian ...
    ' byte ordering.'...
    ])

% Set up the size of the parallel pool if necessary
npool=ncores;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Opening parallel pool 开启方法1
CoreNum=npool; %调用的处理器个数
if matlabpool('size')<=0  %之前没有打开
    matlabpool('open','local',CoreNum);
else  %之前已经打开
    disp('matlab pool already started');
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
方法二,直接替换 %Opening parallel pool 下面的代码即可
% Opening parallel pool
if ncpus>1
tic
disp(‘Opening parallel pool’)

% first check if there is a current pool
poolobj=gcp('nocreate');

% If there is no pool create one
if isempty(poolobj)
    command=['parpool(' num2str(npool) ');'];
    disp(command);
    eval(command);
else
    poolsize= poolobj.NumWorkers;
    disp(['A pool of ' poolsize ' workers already exists.'])
end

% Set parallel options
paroptions = statset('UseParallel',true);
toc

end
“`
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

你可能感兴趣的:(matlab,并行运算)