blender in a muti processor system

I’ve just built an system in which to run Blender,these are the specs:

Tyan Thunder N3600B S2927G2NR-E
2x AMD Opteron 6-Core “Istanbul” 2435 2.6Ghz processors
2x 4GB Kingston DDR2 667 PC2 5300 ECC Registered RAM (1 per processor)
PNY Quadro FX 3500 256MB 256-bit GDDR3

Currently i have Windows 7 installed, Ive noticed when running blender 2.49 64-bit, that only 1 of the 12 cores gets used to perform interface updates, only 8 are used to perform render operations, however during softbody and fluid calculations it uses all 12 cores for calculation, and only one core to update the interface for each frame.

i was wondering if there is a way to get the render to use all 12 cores, or if there is a way for the interface to use more than one core. or is it just what the program is limited to?

look under the render options. There is a space there named “threads” it should automatically detect all of your cores, if not they included a manual over ride.
Press control U if you have to manually change it, that way you will not have to do it every time you use blender.

Ok i found the threards under render options, however it looks like the max is 8 threads.:frowning:

…which will change soon enough.
in the meantime, you can look for a build with more threads allowed on graphicall.

YOu can also run multiple instances of blender. so you can have one instance render frames 1-99 and the other instance of blender render frames 99-200. it can still save you a lot of time, just give each instance only 6 cores to work with.

Ok thats to good idea Taco, i had not thought of that.

SpaceTug, how would i know if a build had support for multiple threads on the interface?

Another thought,
Render with 8 cores, and use the other 4 to model in blender, or paint some of your models in Zbrush.
Zbrush is very fast with 4 cores.

although, as a professional this is not so good… render times are no longer excuses to take a break. You can be rendering and working at the same time.

If you are into making batch scripts in windows or unix scripts in linux there is a way to force the affinity of which ever application runs.

So you can make a script for Zbrush+blender, or blender and blender. The OS will not flipflop back and fourth between cores when there are lag times in your work.
something like
affinity blender.exe = 0,1,2,3 will give blender 4 cores, and only allow it to dwell in those cores, so if you are running other applications like Zbrush or after effects you wont get choppy performance when you stop moving the mouse for a few seconds and the program goes into “idle” status.

You made a cool system, I am green with envy right now :slight_smile:

I thought they fixed that 8 core max thing…

Not too hard to change if you are willing/able to compile it yourself.

well i assigned 8 specific cores to blender leaving the other 4 for whatever. i hope they boost the thread amount in the next version.

also noticed that when setting up effects like fluid or softbodies on hi-poly objects it only uses one core to apply the setting resulting wait times of up to a couple min when changing effect settings. is there a way to get more cores in on this function?

Multicore is only for rendering, and a few other things , like hair particles and such. Some features do not support SMP (symmetric multiprocessing).

Use the term SMP… for some people, it makes a real difference. like saying “Gooder” rather than “better”. Or “Gooses” rather than “Geese”.

also to get better performance, check out the AFFINITY command I was talking about. When blender is not using SMP the os might decide to use that unused core for another applications or the OS’s tasks. the AFFINITY command will make sure things are bottled up.
mainly important when rendering. most applications do not support SMP at all, but the OS will use an idle core still, rather than setting the new application to its own affinity.

C:\WINDOWS\system32\cmd.exe /C start /AFFINITY 2 “c:\Program Files\Blender Foundation\Blender\blender.exe”

above is how to properly use it even in a shortcut so you do not need to learn how to make batch or CMD files to launch blender.
to seperate the cores it is either a “:” or a “,” but most likely a “;”.
Google- affinity command windows for more information.

The task manager also can assign affinity, rightclick on the application then choose affinity.
you can only assign 1 core at a time that way though.

or(if windows cli isn’t a complete idiot, like usual), just type ‘affinity /?’ and it’ll give you a list of flags, what the command does, and how the flag works(at least, it does that in a shell prompt, the ones before the os starts)

Well, you where close Affinity is actually a swithch for the start or launch command:

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/i] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/AFFINITY <hex affinity>] [/WAIT] [/b] [command/program]

    "title"     Title to display in  window title bar.
    path        Starting directory
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application
    I           The new environment will be the original environment passed
                to the cmd.exe and not the current environment.
    MIN         Start window minimized
    MAX         Start window maximized
    SEPARATE    Start 16-bit Windows program in separate memory space
    SHARED      Start 16-bit Windows program in shared memory space
    LOW         Start application in the IDLE priority class
    NORMAL      Start application in the NORMAL priority class
    HIGH        Start application in the HIGH priority class
    REALTIME    Start application in the REALTIME priority class
    ABOVENORMAL Start application in the ABOVENORMAL priority class
    BELOWNORMAL Start application in the BELOWNORMAL priority class
    AFFINITY    The new application will have the specified processor
                affinity mask, expressed as a hexadecimal number.
    WAIT        Start application and wait for it to terminate

I called it a command too, you have to use it with start or launch command as a switch.

sorry I have been using Linux for too long :stuck_out_tongue: