21
$\begingroup$

I need to render a very computer-intensive scene using cycles and for some reasons, I decided to use my home computer (i5 3.30 Ghz, 10 GB RAM, 2TB Hard Drive) to render it. However, the problem is that many people needs to use this computer. So, being generous and feeling responsible, I want to know whether there is a way to configure blender so that it uses only half of the total CPU. (Currently, it is using 100% all the time).

Thanks!

$\endgroup$
1
  • 1
    $\begingroup$ Limiting the CPU to 50% is an unnecessary handicap and there are better ways of rendering in the background; see my and Petr's answers for clarification. $\endgroup$
    – splic
    Commented Aug 24, 2014 at 14:55

5 Answers 5

20
$\begingroup$

If you are using Windows, I would suggest (in line with Petr's answer) lowering Blender's priority.

Rather than limiting Blender to 50% and leaving 50% available for other programs, this lets Blender use all of the CPU not being used by other programs (meaning it will run near 100% if it's the only program running).

Press Ctrl+Alt+Del to open the Task Manager, click to the Processes tab, right-click on Blender, highlight Set Priority, select Below Normal, then accept the dialogue by clicking Change Priority.

screenshot

NB: When you close and re-open Blender it will automatically be set back to Normal priority so you have to change this every time you want to run it in the background.

Avoid making more drastic priority changes without understanding the effects.

$\endgroup$
4
  • 2
    $\begingroup$ You can also use this page to "Set Affinity", where you can limit the process to specific CPUs / cores $\endgroup$
    – SztupY
    Commented Aug 24, 2014 at 18:17
  • $\begingroup$ So, how much percentage of the CPU will blender use when a higher priorty process is running? $\endgroup$
    – krismath
    Commented Aug 31, 2014 at 16:20
  • 2
    $\begingroup$ @krismath Blender will use however much CPU is leftover from the other processes. For example if Chrome is the only program I have open and it's using 32% then Blender will use 68%. If I have a video game running at 100% then Blender will get 0% until I close the game. This means that the CPU is always running at 100%; Blender uses what is available. $\endgroup$
    – splic
    Commented Sep 1, 2014 at 6:05
  • $\begingroup$ I've found that setting it to Below Normal still lags the CPU when using the operating system and other items. I felt it was best to set the priority to Below Normal. This gives me the ability to use my cursor, type, open web browsers and surf thus giving me the ability to do most other items while leaving my rendering in the background. Any CPU cycles not used by me and my browsing are then taken by the rendering. $\endgroup$
    – Dale
    Commented May 20, 2016 at 9:24
18
$\begingroup$

While it's often more efficient to leave this to the Operating System, to answer your question specifically with a method that works, look under the Performance Panel in the Render Settings. It should be set to use the max amount of CPU threads by default, click Fixed and set it to half of however many threads your CPU has. It might look a bit different for BI and Cycles but the Threads part is what you want.

Obviously, you need a CPU with multiple cores for this to work. If you are on a single core machine, altering the value under Fixed will have no effect and your machine will also not use more threads that the value in Auto-detect.

Performance Panel

$\endgroup$
7
  • $\begingroup$ This isn't half of whole CPUs, it's half the number of CPUs. $\endgroup$
    – user541686
    Commented Aug 25, 2014 at 1:24
  • 1
    $\begingroup$ I mean 50% of the CPUs used will be 100% active, instead of 100% of the CPUs used being 50% active. $\endgroup$
    – user541686
    Commented Aug 25, 2014 at 4:05
  • 1
    $\begingroup$ @Mehrdad Yes, isn't that what the answer says and what op requested? $\endgroup$
    – iKlsR
    Commented Aug 25, 2014 at 4:08
  • 4
    $\begingroup$ @Mehrdad I highly doubt that anyone who has a shred of computer knowledge (technical enough to use Blender at least) would ask how to multitask (in the context being discussed here) on a single core machine and I also don't think there are any single core i5 processors running at 3.3ghz. Also, on a single core machine, threads would be set to 1 in auto-detect and still be 1 even if the value is changed under Fixed. $\endgroup$
    – iKlsR
    Commented Aug 25, 2014 at 4:17
  • 1
    $\begingroup$ I guess. Good point about the i5. $\endgroup$
    – user541686
    Commented Aug 25, 2014 at 4:29
17
$\begingroup$

I'd like to add some advice not specific to Blender, if you're running it on Linux.

  1. There is a program cpulimit available (AKA LimitCPU) for many standard distibutions:

    LimitCPU is a program to throttle the CPU cycles used by other applications. LimitCPU will monitor a process and make sure its CPU usage stays at or below a given percentage. This can be used to make sure your system has plenty of CPU cycles available for other tasks

  2. A tool called schedtool allows to set various scheduling parameters of running programs (or running programs with these parameters). In your case using -D to set SCHED_IDLEPRIO would be useful:

    SCHED_BATCH was designed for non-interactive, CPU-bound applications. [...] can be interrupted anytime by other processes in other classes to guaratee interaction of the system. Processes in this class are selected last but may result in a considerable speed-up (up to 300%). [...]

    [...]

    SCHED_IDLEPRIO is similar to SCHED_BATCH, but was explicitely designed to consume only the time the CPU is idle. [...]

    So running Blender in this scheduling class would ensure that it consumes only the (and all the available) idle CPU cycles.

  3. You can also can use the kernel's built-in nice scheduling, which comes with all major Linux distributions, like this:

nice 19 blender                # Start blender with low priority
renice 19 -p $(pidof blender)  # Modify a running blender

Some desktop environments also allow you to set this graphically. For example, in KDE, press Ctrl+Esc to launch the activity manager, and then F8 (or Right Click -> Priority) to change the priority of a process:

Changing process priority in the KDE System Activity monitor

$\endgroup$
2
  • 1
    $\begingroup$ +1 for idle priority, I used it several years ago when doing folding@home and it worked like a charm - the computer was always responsive, but it chewed 99% of CPU when otherwise idle (i.e. most of time). $\endgroup$ Commented Aug 24, 2014 at 14:56
  • $\begingroup$ By the way, nice also works on Mac, as it's Unix-based. $\endgroup$
    – SilverWolf
    Commented Aug 22, 2018 at 11:55
1
$\begingroup$

For an OS X based solution Appriority is an option.
Also for most *nix based systems, including OS X, there is nice & renice via the terminal.

$\endgroup$
1
$\begingroup$

You can close it, core(s). example if you close core 1 and 2, it will only with work core 3and4 this make %50 use. For this setting in windows 10, you can go Task Manager>Details>right click(blender)>Set affinity. I will use this setting for many years.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .