Rolled my own Distributed Rendering system for Blender

I get:
“Loading r:\jobs\LAMA3.blend.2006-9-1_21-15-15\LAMA3.blend failed: File is not a Blender file

Perhaps the .blend in the jobs directory is corrupt for some reason :confused:

Have you tried opening the file in the jobs directory manaully, the error is with blender, so the only thing I can think of is that the file was corrupted (Like you said) most probably would be during copying.
The code uses system commands to copy so on windows just uses the dos ‘COPY’ command or *nix ‘cp’ I havnt had that happen to me … yet :slight_smile: hope you can figure it out.

I don’t understand :confused:

The original .blend is OK, but the one in the Jobs directory is corrupted (can’t open it with blender because the first bytes are different). No matter wich .blend use, everyone is corrupted inside that directory.

I use WinXP64.

Any ideas?

Hmm, I dont have a WinXP64 to test, maybe the copy function is different, somehow, although shouldnt be, or maybe the perl script needs to be compiled on winXP64, although it sounds like its only the system copy command thats messed up.

Can you submit with no slaves running, just the master, then replace the .blend with the real one manually so that it has the same name as the blend in the job dir, then start a slave, that should then render, I will change the copy command to use XCOPY instead of COPY and post and update hopefully that might fix it.

I ran FarmerJoe on my networked Win XP computers last night - I really like how simple it is to setup and run. I did have a problem with not setting relative path for my textures so one of the slaves. I believe from reading previous replies to this thread that I need to unpack my blend file, save everything with relative path, and then pack it again. I will try this tonight. I also could not get the farmerjoe.exe --appserver or http://<master server ip>:<master server port> to bring up any thing. If my IP address is 192.168.0.102 and the port is 206 then using the Firefox browser I would type in:

http://192.168.0.102:206 ???

Is this correct? Also, I think I had to save the blender file before submitting the job otherwise it use the last saved model for the render. I really like FarmerJoe - very nice work!

Yes, I always store all my textures in a folder in the same directory as my blend file so that I can tell the Farmerjoe Gui to copy the textures directory;
Alternatively if you ‘Pack Data’ it should solve the problem with any absolute paths, the Farmerjoe Gui does not pack your .blend for you.

Yes that should work, as long as the Farmejoe.exe is in the same directory as your Farmerjoe.conf file.
Did you mis-type the port? should it be 2006 ? if not you should probably set it higher, ports under 1000 are usually reserved for the system eg.
206/tcp is reserved for “AppleTalk Zone Information”
Also the Appserver port is different fron the Master server, so in the conf that comes with Farmerjoe its set to 2007, try http://192.168.0.102:2007 , if you have not changed the ports, I set it to 1 more than the port for the Master.

The Farmerjoe Gui should save your blend before submitting, I will do a few tests to see if it does.

I’m currently working on fixing a few bugs and making the docs a bit better.
I’ll post here again when I have an update, but let me know any other issues you run into.

Thanks for the Feedback, I’m glad you like it.
lobo_nz

Lobo_nz,
Thanks for your help. It was my mistake. I launched r:\farmerjoe.exe --appserver on the master PC and then I was able to go to http://192.168.0.104:2007 and see the jobs. Very cool!!!

By the way, I think the “FarmerJoe” name should stay and I like the logo too with the trees on the mountains with the FarmerJoe letters.

I was able to kill a pending job sucessfully by clicking on the “X”. What does the “RT” do?

RT Resets Tasks, say if you have jobs which are rendering and one of the slaves is closed and it has tasks assigned RT will set any jobs that are listed as RENDERING back to PENDING so that another client can do them.
I will make this happen automatically … eventually, I plan to add allot more control into the web gui as I get the time.

I will make this happen automatically … eventually, I plan to add allot more control into the web gui as I get the time.

I do like the web access to the jobs running. I can check the status from my wireless laptop that is not in the room where the computers are running. Here is a question. I submitted a blender job from the master computer and the farmerjoe.conf file has the ip address of the master computer. But what happens if I submit a job from Blender using the python script from my wireless laptop? Does the Blender session that submits the job have to be on the master computer?

Another question. I have windows XP home edition and 6 computers. Windows XP only lets me map 4 network drives. Is there free program that will make network drives so that I can have the R:\ drive on all 6 machines and FarmerJoe will recognize them? (I can’t switch to Linux because my kids use the networked computers for Halo).

setup a win32 network…

one thing that wasn’t clear in the documentation (probably missed it in there) but was somthing I needed to do was to make sure all the machines involved master and slaves where all mapped to the same drive… what i did was put the farmerjoe_0.1.1. directory into my blender directory and shared the blender directory.

went to -> microsoft windows network -> workgroup -> master computer name -> select the share and right click map … map to a letter free on all systems and easy to remember in my case was “V:”. updated the conf file:
windows_root = V:\Farmerjoe_0.1.1
windows_blender =V:\blender.exe

then i went to each slave and mapped the shared blender directory to “V:” then it connected without any problems and ran!

one question… i was using the blender gui … what does “Path to Farmerjoe” do with respect to the value set in the conf file?

lastly, how do you stop a render process that is working? I had a render going that I could only figure out how to stop by killing the application, deleting out all the data in the farmerjoe directory and then recopying the files from the zip back into it :o… when i tried to get into the web application from the master iteself, it just kept loading without actually showing anything, i have checked the firewall but haven’t figured it out yet, although I am quite sure that it must be what is keeping it from loading.

nonetheless, thanks for a great application!

lastly, how do you stop a render process that is working?

I hope Lobo doesn’t mind me answering this question. First you have to run farmerjoe.exe --appserver on the Master PC, (make sure you run it from the directory with the .conf file). This will bring up a black console window. Then bring up a web browser, (on any machine on your network-very cool), and enter in the ip address and port number of you master machine as defined in the .conf file, for example: http://192.168.0.104:2007

A nice interface will come up and you can monitor your jobs, see which frames are completed, and kill jobs. It is very nice.

beautiful!

sorry to have bothered you with it… that is what i get for doing three other things while I was setting it up … i forgot i had read about that :o

thanks… works and looks great!

So does anyone know if there is recommended opensource or free program to map a network drive? I need this because Windows XP home edition only lets me do 4.

>erichsh6,
Can’t you use one of the formerly mapped drive? (in mine there is still the undeleted shared folders of dr queue, smpov (povray render farm) and now Farmer Joe…)

> Caronte,
Have you tried adding the parent directory of the jobs directory (like farmerjoe\jobs) before the word jobs in the conf file. It worked for me, though it was not in the readme documentation.

>Lobo_nz,
Thanks for this,

-I think you should put the howto that’s in the readme up on the website since it’s the most complete yet.
-I still had the long path/path with space problem.

but again, thank you!

I think the reason that worked for you is that you are putting the farmejoe directory inside another shared directory, rather than sharing the farmerjoe directory itself, this is fine and could possibly eliminate the need for 1 mapped drive too.
I will add a bit more about this into the readme as its not that clear that you can do it - thanks for pointing it out.

Thanks ray.n.baud,
I am translating the readme to html at the moment and adding some debug info.

I am interested in what the path with spaces was that diddnt work, if you can post an example that would be great.

I think I will add a log file output for all the slaves and the master so people can send me the log, it might help me understand how people have set it up and what is going wrong.

I will have a new version up by the end of the weekend.
lobo_nz

I just posted a new version with a few improvements.
http://blender.formworks.co.nz/farmerjoe/
lobo_nz

I just posted a new version with a few improvements

I read the new features. The slaves checking every 30 seconds is a great idea. Now I can have FarmerJoe auto startup on all my slaves and master computer on bootup. The computers will always be ready and waiting for me to submit a job. (I haven’t tested this yet but I bet it works). Now if I could map a network drive on more than 4 computers!

Is the limit for connections to the XP Home running the Master? so you can only have 4 slaves?
OR
Is it that you have many mapped drives on the master?

I have win2000pro & Linux so havnt run into any limitations.

You could install Ubuntu on 1 pc (If you have one that is sitting there just rendering) run the master and a slave on that, install Samba and you would be able to have as many connections as you like.

lobo_nz, have you checked your blenderartists private messages? Just after you posted version 1.1.2 (too late by a few seconds I guess :)) , and not knowing it I sent you some 1.1.1 related feedback (But I usually use last versions…) privately because I thought it was too long and boring to put here. If these pages are no use, tell me, and I won’t do it again.

Is the limit for connections to the XP Home running the Master? so you can only have 4 slaves?
OR
Is it that you have many mapped drives on the master?

The “map network drive” limits me to 4 connections. This is how I am set up. I have 6 PCs with windows XP home on my network. I have a wireless router so 4 PCs are connected to the router by cable and 2 are wireless. On the master PC I created the c:\farmerJoe directory. I enabled file sharing on this directory. Then on the master and 3 slaves I used “map network drive” to make an R:\ drive that is mapped to //master/farmerJoe. When I try to map the R:\ drive on the 5th computer, it complains that there are too many connections.
Thanks for the info on Ubuntu and Samba - that may be the route I will take.