multithreading and optimisation

HI, I was just wondering why multithreading for cloth and fluids wasn’t added to the official release of 2.46. For people like me who don’t have the knowledge to build our own version it would be a massive benefit. Even if there were two official versions at blender.org, one with multithreading and without it would help.

On a related note does the official blender releases have any sort of optimisation? It seems you can get quite an increase in performance by using certain compiler switches such as OpenMP, profile guided optimization, SSE2, LAA, I have no idea what these mean but if they improve blender and your system supports it it seems daft not to use them.

The only way i’ve found around this is to use unofficial builds but it seems very hard to track down one with all the relevant optimisations and that doesn’t miss out anything that was included in the official release. Also there’s no guarantee that the same person will release an update when the next version of blender is released. So an official build would be nice.

Regards

The reason OpenMP support was not included is because they need MSVC Pro to compile it for windows, which cost money. They are in the process of getting licenses, so if you want to donate them, I’m sure they’d like it.

As for the optimization, I believe there is basic optimization turned on in the official blender. Remember that Blender has to run on many systems, so there is a limit to the amount of optimization you can do. If you want optimized builds, you can go to graphicall, and if you don’t like waiting, then you should try to learn to compile yourself.

Ah I see, I thought there must have been a good reason not to include it as standard, maybe 2.47/2.50.
Thanks for the info.

in addition to what egan wrote, you also need an even more expensive version (something like MSVC enterprise version) if you want to do profiling. One license of that costs several thousand dollars. (not worth it in my not-so-humble opinion)

Of course you can do profiling, OpenMP, and SIMD opts via gcc for free.

Too bad that the windows version of GCC doesn’t support OpenMP yet (not even 4.2.2 alpha).

/Nathan

Can’t you cross compile with gcc and mingw for win from linux? or is it mingw that doesn’t support it?

MingW GCC doesn’t support it.

/Nathan

gcc only supports OpenMP when the target uses pthreads. There is a pthreads library for windows, so technically you could build blender with gcc using OpenMP if the target was a win32 build that used pthreads.

But at that point, I’d have to say that perhaps you should just give up the windows habbit and install linux.

Technically you still can’t, since mingw gcc doesn’t support OpenMP.

/Nathan

In this case, I would have preffered an general OpenMP-enabled official build with a special Windows-only exception built which doesn’t include it. After all, why should all others suffer for the inferiority of the gratis dev tools on windows?

Well, the code has to have support for OpenMP coded into it. It’s not just a switch you turn on when compiling. To my knowledge, there is no OpenMP code in blender’s source. (I may be wrong though)

It’s not something complex to implement, but you do have to add code so that the compiler knows what to do.

Anyone know any tutorials on compiling Blender with OpenMP on linux?

I tried out a windows version from Graphicall.org, but it was from a few months back.

I wanna try and compile with the current SVN or Apricot build.

NM:

Found instructions here

http://blenderartists.org/forum/showpost.php?p=1128487&postcount=7

For some reason this build I made crashes whenever I open the file browser. :confuse:

Anyone know how to benchmark so I can see if I did it right?