Ограничить параллельный инструментарий Matlab для использования всех ядер - PullRequest
2 голосов
/ 11 марта 2011

Есть ли возможный способ запретить доступ Matlab ко всем ядрам? Сейчас на машине их 8, но я хочу сократить использование Matlab до 3 на пользователя, чтобы один пользователь не запускал работу на всех 8, что замедляет работу других.

У меня нет лицензии на сервер распределенных вычислений ... просто старый набор инструментов для параллельных процессов

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

Нет никакого способа принудительно установить строгое ограничение в MATLAB, но вы можете установить свойство " ClusterSize " локального планировщика. К сожалению, это должно быть сделано для каждого пользователя. Кроме этого, вам нужно будет использовать функцию ОС, но я не уверен, существует ли такая вещь.

2 голосов
/ 11 марта 2011

Вы можете добровольно ограничить количество работников, используемых для работы, установив свойство MaximumNumberOfWorkers объекта работы перед его отправкой.

jobMgr = findResource(...appropriate parameters for your job manager here...);
job = createJob(jobMgr);

set(job, 'MaximumNumberOfWorkers', 3);

% create some tasks and add them to the job here

submit(job);
waitForState(job, 'finished');
results = getAllOutputArguments(job);
0 голосов
/ 11 марта 2011

Когда вы говорите для каждого пользователя, подразумеваете ли вы, что несколько пользователей могут одновременно отправлять запросы на этот компьютер?Это, безусловно, усложнит ситуацию, поскольку у меня есть пример кода, который может раскрыть некоторые команды, с которыми вы не знакомы, и которые помогут вам достичь вашей цели.

Этот код я использую, чтобы использовать как можно больше ядердо 8.

ncores = функция ('numCores');nworkers = min (8, ncores);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...