render farm: Loki Render 0.6.0 released

Greetings!
Loki Render let’s you distribute your rendering across several computers.

I just finished version 0.6.0 which supports tile rendering, transparent network file handling, and some other cool stuff. You can run it on Windows, Linux, or whatever since it runs on Java.

You can get it here:

http://loki-render.berlios.de/

It’s been a lot of fun to work on and I hope it’s useful to you all. Let me know how it works for you:)

thankyou, finally i dont have to setup shares!

Its working just fine here. Is it possible to select which scene tho?

Hi Slaw,
You’re welcome:-) Yes, you can render whatever scene you want in your blend file. Just select the scene you want to render from within Blender and save to file before you create the job in Loki.

Cheers.

First of all… thx for Loki Render.

I have two machines, win xp and linux. win xp is master and grunt, linux is grunt.
win xp doesn’t see linux (grunt), why? Have I to open some port or setting firewall (in win xp and/or linux)?

Th!

Hi proghettolab,
Yes, it sounds like a firewall problem to me too. I would look at the Windows system first. The first time I ran Loki on my Vista laptop, a firewall ‘unblock?’ dialog came up. I don’t know how it works on XP, but I would imagine it’s similar. This article talks about how to add firewall exceptions on XP. To see what ports Loki is using, go into File > Preferences > local master.

Hope that helps, and good luck!

Hi samuraidanieru,

after reading your advices, today I tried to use loki.
When I click on exe it returns this message: “Loki render is already running on this computer”.
How is it possible? Computer is started for the first time!!!
I seen in task manager, but no tasks is called loki or similar.

Thx!

Hi,
Loki was probably killed in a bad way so it didn’t have a chance to cleanup and exit normally.

You can only run one instance of Loki at a time on a computer. The way it insures this is by creating a ‘lock’ file in it’s config folder while it’s running. Normally it will delete the file when you exit, but if Loki was killed in an bad way (e.g. killed from task manager, etc) then it didn’t have a chance to delete the file.

The file is called ‘.runningLock’ and is found in the folder:

/<YourUserHomeDir>/.loki/

So on Linux it would be something like:

/home/daniel/.loki/.runningLock

or on Vista:

c:\Users\daniel.loki.runningLock

Just delete the .runningLock file and then try again, and it should work fine:-) To avoid the problem in the future, just make sure you shutdown loki from within Loki, or before you shutdown your computer.

Hope that helps!

Ok, all goes well!

Only one last thing…
Loki wants that files I use for UVmap was in ./loki folder. Why loki doesn’t use the images in the directory where is blender file?

Hi,
When you create a new job, Loki caches it’s own copy of the blend file, but it doesn’t know what external files the blend file needs, so just pack your blend file right before you create the job, and all the needed files are bundled up in the blend file, which it sends to the grunts when they render:)

What you’re doing will work, but it’s a lot of unnecessary extra hassle for you. Packing is much better because then it’s like a snapshot when you create the job; the state of the blend file and all it’s external files is ‘saved’ for the job. You can then continue work on the files, modifying them without worrying about affecting the job output.

Hope that helps and glad it’s working for you!

Hi samuraidanieru, fine so far with linux and windows 7 but, the master show 2 or 4 cores. My clients render only one core the windows 7 client only 50% from one core.
It would nice if all cores render, is this possible?

By mib

Hi,
Yes, you can definitely utilize all the cores on each system. This is configured in Blender when you have you’re blend file open. Hit F10 to go to the ‘Render’ section, then in the ‘Output’ tab, make sure the little car is selected. When this option is selected, blender will automatically select the amount of threads based on how many cores/processors are on the system. Then save your blend file, and create a new job with this blend file as your project file. That should be it!

Note that not all of the steps that the render process goes through are multi-threaded, just the main render portion. You can see this on a multi-core system if you watch processor activity; things like SSS preprocess only run one thread, but when it hits the main rendering portion all your cores should be utilized if you specified so in your blend file.

Hope that helps!

Thank you for reply, it was still a mistake in the .blend.
I try another one and it works fanastic even with blender 2.5 and that increases the rendertime up to 2x - 10x.:smiley:

So i use your software at work with 12 core2duo, hehehe.

Thanks in advance, mib

Samuraidanieru, amazing work one of the best render farm for blender!

ONE SIMPLE FEATURE REQUEST, (MAY BE NOT):

“Each workstation, has de ability to run 2 o three instances of blender”:yes::o

I mean may be you won’t beieve, but i have a scene that renders in 130 seconds, with 4 threads (i have a quad core cpu), if a push it to 8 threads, it renders in 127 seconds so no diference. But when i execute and put another instance of blender in the same machine, each instance of blender renders in 176 seconds!! :smiley:
So runing two instances of blender i render 50% faster :D:D:D:D:D:D:D

…thats because i render 2 scenes in the same .blend and heavy compositions, and some parts of the frame rendering dosen’t take the full use of the cpu, thats when the other instance of blender take advantage of it, so it is quite logical.

So i would really like to use this amazing render manager, but it dosen’t allow me to run more instances.

Thanks Samuraidanieru for your excelent work!:slight_smile:

Hej Agus3D,
lol! Yeah, I do understand why it would be faster! I’ve noticed that certain parts of the render process aren’t multi-threaded, which means any extra cores will sit idle during that time, so I suppose running several instances at the same time could give a performance increase:-)

I have to say though, It makes me cringe writing a workaround in software ‘X’ to accomodate a shortcoming in software ‘Y’. Ideally, the blender dev team could re-write the single-thread portions of the render process to be multi-threaded, then you could run one blender instance, knowing that you were using all your cores to the fullest. That’s also better because then you avoid unnecessary context switching between many running threads. I know very little about the blender internal render process. I think we should talk to them first, find out it’s doable, and if they think they have time.

Sometime this week I’ll try and post in the dev forum and ask them about it, and we’ll see if anybody responds and what they say. Or if you want to ask them, go for it!

Glad to hear Loki is working well for you! I put a lot of hard work into it:-) It would be fun to hear more about how you’re using it and how it’s fitting into your workflow.

Thanks for Lokirender!

I don’t have renderfarm, but mu home network will do just fine (three comps do three times the work(! This is very useful little program, thanks for investing your time into it!

Riste

Thank you!! Is it possible to make HALT feature? To switch all network computers off. Piovra network renderfarm has/had one. It was written on python. There is a screenshot: http://www.idstudio.it/piovra/screenshot_eng.php There is a halt/halt all button :).
Lokirender works fine, I suppose to use it for my projects.

Just a question, I have a Linux server with no monitor, keyboard or anything else attached to it. It’s just a webserver and file server. Does Loki work from the command line like that so I can set up a headless server for rendering jobs?

Hello!
I’m on os x 10.5.8. I can’t run lokiRender_061.jar, it say bad version. But java is fully installed on apple computers…
I ran the launchLoki.sh on terminal but it print this massage:

Exception in thread “main” java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)

I need help, please!

@eversimo – Java 1.6 is required.

Check out: http://loki-render.berlios.de/index.php/forum/8-installation-and-setup/44-loki-on-mac-os-x-105 – should look familiar. :yes:

Basically, you need to install the Java update, then enable 1.6 for applications, then put in the direct path to the blender binary.

I had the exact same experience. It is a bit hacky to get it started first time on the OSX, but it should be once off (and there is a bug report to fix it!). :slight_smile:

(neo)dabbler.

Hi,
I’ll try and answer some of your questions:

Is it possible to make HALT feature?

I’ll define ‘halt’ as immediately kill the current tasks? Yes, I just used a different word, ‘abort’. Two ways to do it:

  • When you have a job selected, you can right-click and select ‘remove’ which, if the job is running, asks you if you want to abort the jobs’ tasks, then remove.
  • From the jobs menu you can select ‘abort all and stop queue’.

Aborting is pretty severe because you’re killing the render process and losing the progress that’s been made up to that point. Of course sometimes this is what you want, but I didn’t put a big ‘abort’ button on the main GUI window because in most cases you can probably just stop the queue, which lets the current tasks finish, but doesn’t assign any more.

To switch all network computers off

You mean to actually shut the computers down? No.

Just a question, I have a Linux server with no monitor, keyboard or anything else attached to it. It’s just a webserver and file server. Does Loki work from the command line like that so I can set up a headless server for rendering jobs?

The current version doesn’t support controlling the master from a terminal. If you’re running a Linux server without a GUI, you could always launch the application via X windows and interact with the master’s gui on one of your grunts (that does have a graphical environment)I’ve tried that and it worked fine. If you need more details let me know.

To support a headless master, I’d need to de-couple the master GUI w/ the master engine underneath, push all the interaction through a socket, then I could introduce a new role, (perhaps ‘monitor’?) that you could start, connect over the network with a headless master, etc…probably not any time soon though.

I’m on os x 10.5.8. I can’t run lokiRender…

I don’t have access to a Mac, so we’re hitting more problems there. Like dabbler said, make sure you have java 1.6.0 installed and being used by your apps, then manually paste or type the path in the file chooser and it should work fine. Once you’ve provided the correct path to your blender file it won’t ask you again. We’ll hopefully have some fixes in the next release to make life easier for Mac users:)