Расчет производительности кода Matlab. Как отключить несколько ядер на ПК для оценки производительности кода - PullRequest
2 голосов
/ 09 декабря 2011

Я запускаю код на MATLAB.Я использую Parallel Computing Toolkit.Я использую SPMD.У меня есть 8 ядер на моем ПК.Я хочу запустить свой код сначала на 1 ядре, посмотреть время, а затем запустить мой код на 2 ядрах, посмотреть время и так далее.Как я могу отключить / включить некоторые ядра моей машины?

Спасибо

Ответы [ 2 ]

3 голосов
/ 09 декабря 2011

Команда maxNumCompThreads возвращает максимальное количество вычислительных потоков, которое может использовать копия MATLAB, выполняющая команду. Тем не менее, рабочие MATLAB, созданные matlabpool, являются однопоточными. Попробуйте это подтвердить:

matlabpool open 2
parfor i = 1:2
    warning('off','MATLAB:maxNumCompThreads:Deprecated')
    maxNumCompThreads
    warning('on','MATLAB:maxNumCompThreads:Deprecated')
end
ans =
     1
ans =
     1

Если вы хотите рассчитать время выполнения кода на все большем количестве ядер, попробуйте что-то вроде:

matlabpool open 1
runmycode
matlabpool close
matlabpool open 2
runmycode
matlabpool close
matlabpool open 3
runmycode

и т.д.. до matlabpool open 8.

1 голос
/ 09 декабря 2011

Вы можете использовать:

maxNumCompThreads(1)

Это депортировано, но отлично работает на всех языках, которые я тестировал до Matlab 2011a.

...