Take the 2-minute tour ×
Blender Stack Exchange is a question and answer site for people who use Blender to create 3D graphics, animations, or games. It's 100% free, no registration required.

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!

share|improve this question
1  
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. –  splic Aug 24 at 14:55

3 Answers 3

up vote 10 down vote accepted

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.

share|improve this answer
2  
You can also use this page to "Set Affinity", where you can limit the process to specific CPUs / cores –  SztupY Aug 24 at 18:17
    
So, how much percentage of the CPU will blender use when a higher priorty process is running? –  krismath Aug 31 at 16:20
1  
@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. –  splic Sep 1 at 6:05

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

share|improve this answer
    
+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). –  Matteo Italia Aug 24 at 14:56

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

share|improve this answer
    
This isn't half of whole CPUs, it's half the number of CPUs. –  Mehrdad Aug 25 at 1:24
    
@Mehrdad hmm? What do you mean? –  iKlsR Aug 25 at 4:04
    
I mean 50% of the CPUs used will be 100% active, instead of 100% of the CPUs used being 50% active. –  Mehrdad Aug 25 at 4:05
    
@Mehrdad Yes, isn't that what the answer says and what op requested? –  iKlsR Aug 25 at 4:08
3  
@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 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. –  iKlsR Aug 25 at 4:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.