判断电脑的系统性能,并开启并行运算
%--------------------------------------------------------------------------
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>0lgpu=1;disp('GPU found')useGPU='yes';
elselgpu=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>1useParallel='yes';
elseuseParallel='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);
elsepoolsize= poolobj.NumWorkers;disp(['A pool of ' poolsize ' workers already exists.'])
end% Set parallel options
paroptions = statset('UseParallel',true);
toc
end
“`
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%