Ваш код, как написано, использует "локальный" тип кластера в MATLAB.Это предназначено для работы на ядрах одной машины.Если вы хотите работать в «реальном» кластере, вам нужно отправить задание (или запустить parpool
), используя профиль кластера, который отправляет на MATLAB Parallel Server кластер.
Например, если вы хотите использовать существующий кластер с запущенным SLURM, вы должны следовать инструкциям здесь , чтобы установить вещи, а затем здесь , чтобы настроить профиль кластера.Если у вас есть профиль кластера такого типа, вы можете отправить задание batch
для запуска там следующим образом:
clus = parcluster('my slurm profile');
j = batch(@myFunction, 3, {in1, in2}, 'Pool', 36); % 3 is nargout for myFunction
Или вы можете запустить интерактивный пул на своем клиенте, обращающемся к кластеру, например:так
parpool('my slurm profile', 36);