Setting default priority for matlabpool processes

9 views (last 30 days)
I ran my program, which has a resource heavy function call in a parfor loop, and I noticed my system started to hang frequently. I went into task manager and turned down the priority of every matlab process to alleviate the issue. I was wondering if there was a way to set the default process priority to a different (in my case lower) value. I would still like to do work while my code is running, since it will be going for at least a few hours, and if I need to run it again later, I don't want to have to set them one-by-one in taskman every time.

Answers (3)

Matt Bigelow
Matt Bigelow on 7 May 2018
I know this thread is old, but putting the following in a poolStartup.m script (see poolStartup - the file can also be on the MATLAB path) might be a convenient way to solve this:
if ispc
[~,~] = system(['wmic process where processid=' ...
num2str(feature('getpid')) ' call setpriority "below normal"']);
end
Using the getpid feature instead of putting in a process name ensures just your workers get a priority change and not your user session and not anyone else's MATLAB sessions or workers (if you're on a machine with multiple users and you have permission to change their process priorities).

Edric Ellis
Edric Ellis on 11 Oct 2013
Edited: Edric Ellis on 11 Oct 2013
I assume you're running on windows - you could try using this file exchange submission: http://www.mathworks.com/matlabcentral/fileexchange/1841 and call it within an SPMD block.
  1 Comment
Matthew Cordaro
Matthew Cordaro on 11 Oct 2013
That would be useful if I felt like compiling every time. Maybe they should consider this for a future version. Thanks for the tip.

Sign in to comment.


JonasBGood
JonasBGood on 26 Jun 2014
I stumbled upon this problem as well. For me (using win7) the system command wmic helps:
matlabpool open
cmd_str = 'wmic process where name="MATLAB.exe" CALL setpriority 64';
[~,~] = system(cmd_str);
This reduces the priority af ALL matlab instances on your local machine to 'low'. The number defines the priority:
idle: 64, below normal: 16384, normal: 32, above normal: 32768, high priority: 128, real time: 256

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!