Loki Render 0.7.0 released!

@SunBurn

It doesn’t sound like your network setup would cause problems.

If you haven’t already, please try using the latest version on SF and see if that solves your auto-discovery problems.

Ok, I’ll try an Amazon test later today, just 1 last thing, can I manually specify the IP address of the master via command line for the grunts? Easier to just have a master with an Elastic IP (reuseable IP) and create an image of the grunt machines once it’s setup :slight_smile:

Edit: And what ports does Loki require, Windows firewall just has java as an entry, not Loki so I’m not sure which one to open on Amazon

Edit 2: I can’t get a grunt to launch, it’s not recognising the blender app (In Ubuntu) here is a screenshot of the error:


Hey samuraidanieru! Ok so the new version is working much better! However I’m still getting some crashes. Not entirely sure what’s causing them, but I got screenshots for you to take a look at (In order of appearance):




Here’s what the master looked like at the time of the errors:


After I get either one of these errors, I have to close the master and recreate the render job for it to start up again. Also, Feature Request How difficult would it be to add the function to re-render specific, completed, frames? Could you add a way to manually mark frames as failed or something?

I also noticed: When anything causes a grunt to crash, the temp file is left behind which causes another subsequent crash on the same frame until the temp file is deleted.

Last but not least: I’ve been watching the temp folders and it appears that sometimes a frame completes correctly on a grunt, however it becomes empty once it’s transferred to the output location (kinda related to adding the option to re-render specific frames).

So far these issues have only been observed on a scene with over 175,000 faces and approximately half of them are freestyle edges. I’m curious though, how you get the render times to go so low? Within Blender, frame 1 renders in 3 minutes, command line it renders in ~2 minutes, however through Loki, it’s coming out in under 30 seconds?!? So confused, and now wanting to find your secrets in attempts to speed up test renders!!

-David

Hi, there are some problems on Mac (OSX Yosemite) when I use it as grunt.
Do not allow me to use blender as executable.


And as master Mac can not find the grunt I have on another computer (win 7) in my network.

zeealpal, I figured out your ec2 problem.
2 steps:

  1. “chmod +x ./…/blender”
  2. Even if you’re using Blender 7.72b downloaded from blender.org, it needs shared libraries that are easiest to get by simply “sudo apt-get install blender”

Ok, so that’s all taken care of, blender is installed on ec2 and Loki.jar can see it… new problem: how does one dictate the master’s IP address via command line on ec2?

-David

Thanks for your reply. If it helps, I run Blender with the following command line: C:\Windows\System32\cmd.exe /c start /Low D:\Blender_2.72_stable\blender.exe. This forces both blender.exe and blender-app.exe to run at the priority level set (here is the “/Low” argument).

@DMRadford, thanks, that does appear to start loki, now I just need to be able to pass an IP address, decided to use a Windows instance as RDP’ing is far easier, and the manager only costs 20c/hour.

Will see if I can get it to work myself :slight_smile:

Edit no luck, am interested in command line IP specification, as well as which ports I need open :slight_smile:

@zeealpal. I got it another step closer. On a local Ubuntu install, launch loki and configure it to your external ip address. Navigate to /home/<user>/.loki and upload the loki config file somewhere (anywhere that gives you a direct download link of the file). In ec2, “cd /home/ubuntu/.loki/” then “wget [url to config]”. After that, “java -jar loki.jar ./Blender/blender” should get it going.

Make sure your router is configured to forward port 53914 to the computer that will be running the Loki Master (and make sure the master is running of course).

Also not a bad idea to upload blender configs with auto-run scripts enabled, as well as any addons you may need :wink:

Now to just get loki to launch at startup instead of having to ssh into each instance!

-David

P.S. This could make Loki a much more viable (and easier) option than Brenda when it comes to ec2 render farms for Blender. Especially since it circumvents needing S3 and the costs involved with that. Not to mention the ability to add projects directly from your workstation instead of having to add them via command line.

Thanks, I’ll give that a go, will need to install an Ubuntu VM again first.

Shouldn’t be hard to setup a simple startup script, and simply use an Elastic IP for the master, that way the master will always have the same IP, so new instances launched off an image won’t need any new config :slight_smile:

Why run the master on ec2? Then you have to set up storage, transfer projects, yuck! Run the master on your local workstation, much easier. I just did a bunch of renders last night where I was using 4 PC’s at my house and 3 more on the other side of the state at my mom’s shop. I just directed the remote grunts to my external IP address and forwarded the port to my workstation. Worked perfectly since Loki handles file transfers automatically. I’m also running renders right now using ec2 instances as grunts with the master running on my local machine.

I’ve been trying to get a startup script working. I can’t seem to get it to work at all.

Here’s what I’m trying:
Bash script, startup.sh, placed in /etc/init.d/

#! /bin/bash/
java -jar loki.jar "./Blender/blender"

update-rc.d startup.sh defaults
sudo chmod +x /etc/init.d/startup.sh

From what I can tell, that should do the trick right? What am I missing?

-David

GOT IT FULLY WORKING ON AMAZON EC2!!!

A bit of a pain to figure out, but I got it! Loki auto launches when each instance boots and correctly connects to the master running on my local machine. It should be noted that this current setup ONLY works for blend files where everything can be packed. It will NOT work when using image sequence animated textures or videos. Though, I’m sure there would be a way to set it up with Amazon S3 to get around these circumstances.

-David

phew! Having a hard time keeping up with y’all, but I’ll do what I can:-)

You can now! Just pass the master IP as an argument when you launch Loki from the command line. I just added this functionality in version 0.7.1.

The master listens on port 53914 for grunts to connect. the master then establishes the actual communication stream on another random socket. It does this for each grunt that connects. So unblocking 53914 is the easy part, accomodating the random port is a little harder:-
Probably what I could do is define a port range that Loki is confined to using, then you can unblock the port range in your firewall. Yet another item on the TODO list:-)

Edit 2: I can’t get a grunt to launch, it’s not recognising the blender app (In Ubuntu) here is a screenshot of the error:
[ATTACH=CONFIG]343786[/ATTACH][/QUOTE]
Sounds like a good call by DMRadford on executable permissions for this one.

I just added this functionality to version 0.7.1. Just pass the IP as an argument.

You’re moving faster than I can keep up;-)

That’s awesome you’ve got Loki up and running on a hybrid farm: some amazon grunts, remote grunts, and a local master! Very cool, and thanks for sharing. If you feel so inclined, please feel free to write up a ‘Howto’ page on the wiki, so other Loki users can benefit from your experience/knowledge!

In regards to costs on Amazon, I haven’t used them so I don’t know for sure, but don’t they also charge for bandwidth? If that’s the case, whether you run the master locally or upload everything into storage, you’ll get to pay one way or another!

In case any of you missed my update on the first post of this thread, tile rendering has been enabled again!

A big thanks to Gustavo Alejandro Moreno Martínez who coded the update to make tile rendering work with the latest Blender releases.

(And my apologies for taking so long to do it!)

I’ve tested and merged Gustavo’s code into version 0.7.1, which is now on SF.

Also in this version, it’s now possible to pass the master IP address to loki grunt via the command line.

I’ve run the new version through the rounds, but as usual, there may be some bugs lurking, so please let me know how it goes.

Yep. This is going to generally hold true for any use case that’s in auto file transfer mode. Loki only shuffles the blend file around, so you have to pack everything you want into it. There are cases where this just isn’t sufficient, which is why I add the ‘disable auto-file transfer’ option to version 0.7.0. In those cases, you need to set up some kind of distributed file system yourself, whether it be a Windows share, NFS, lustre, or whatever.

Hi Scigor,
Thanks for reporting this. I have no access to a Mac to take a closer look at this, so I have a few suggestions for you to try:

  1. Does the blender file have executable permission? Can you launch blender directly, yourself?

  2. Try launching Loki from a terminal, then you can see more of Loki’s ‘log chatter’ and maybe get some more clues.

I’ll make up a tutorial soon. But just to make some mouths water, I recorded the render times of a project I’m working on :slight_smile:

The scene is very light so it does render fast already. However, it should also be noted that on my workstation (AMD FX-4350 quad core), each frame takes 1.5 and 4 seconds respectively and I’m using the free t2.micro ec2 instances (single core, 1GB Ram).

This video has not been sped up, it is in real-time.
Enjoy :slight_smile:

PS.
On a side note: Is there a logical reason I can’t get composites to render on a network? I’ve tried on my local network with Loki as well as NetRender, 2 Win8 PC’s, shared network space for content and output. Doesn’t work, output images are always just black.

Glad to help.

  1. Yes, I can launch blender directly. No problems with permission.

  2. From terminal don’t start, and give me this error:


You have to right-click and “show package contents” on blender app, the go to Contents/MacOS/blender, which is the executable. On OSX .app files are packaged programs.