network rendering central control program (C#)

General questions about Indigo, the scene format, rendering etc...
Sukrim
Posts: 66
Joined: Wed Jan 09, 2008 6:47 am

Post by Sukrim » Mon Apr 21, 2008 6:49 am

Well, I hope nikolatesla20 had time to clean up the code over the weekend...
Next week starts in 3 1/4 hours! :D

User avatar
Russdigo
Posts: 48
Joined: Fri Apr 04, 2008 9:17 pm

Post by Russdigo » Mon Apr 21, 2008 11:11 pm

Well I can't get network rendering up and running so this program might be my only way out.

nikolatesla20
Posts: 52
Joined: Fri Mar 09, 2007 4:44 am

Post by nikolatesla20 » Tue Apr 22, 2008 8:21 am

Hi guys as usual work and life are slowing my progress, but I will try to get the basics together, and upload everything.

-niko

Russdigo, I don't know if this will fix your problem either, since you appear to have some more serious issues with network rendering and I don't know what it causing that...

Vanessa07
Posts: 312
Joined: Mon Sep 24, 2007 11:17 pm
Location: Suisse

Post by Vanessa07 » Tue Apr 22, 2008 6:51 pm

nikolatesla20

Good news :D :D

Thanks

nikolatesla20
Posts: 52
Joined: Fri Mar 09, 2007 4:44 am

Post by nikolatesla20 » Wed Apr 23, 2008 2:40 am

Ok guys here is what I have together so far. Here is the contents of the README file.



Hi all,

I was going to make a system tray icon and UI for the tracker and for the
render clients, but I don't have the time just yet, so I added the INI settings
and cleaned up a couple of things, and decided to upload this. I hope these
instructions are clear enough to understand how to use it.


In this archive you will find:

1. A folder "SourceCode_C#" containing the source code for all the programs.
this was written in C# using Visual Studio 2005.

2. A folder "MasterControl" containing the master controller program which
you run on the master rendering machine.

3. A folder "Tracker" which contains a EXE which acts as a "tracker" server
which the clients will connect to. This tracker keeps track of available
clients

4. A folder "RenderClient" which contains an EXE which acts as a remote client,
which the master controller connects to and gives commands to. The client
can also accept file uploads from the master (render files and textures, etc)



TO USE THIS PROGRAM:


1. Run the EXE tracker on any system you see fit. Note the computer name or its network
IP address. Please note also that using "localhost" will not work, you must use
the computer's real name.


2. Run the client EXE on all computers you want to act as render clients.

To use a client you must:

a. Edit the INI file to be sure the client knows where the tracker is. You can use
the IP address or the computer BIOS name.

b. Edit the INI file to tell it where Indigo.exe is on the remote client machine.



3. Now run the Master Control program on the machine you wish to be the master renderer. This
would usually be the machine that you are working on your 3d model, etc.

a. Tell the master control program which tracker to use, and also the path to Indigo.exe

b. Press "Load Clients" and the master control program will connect to the tracker and get
a list of clients

c. Use the "Upload render data" button to select an indigo scene file to upload to the clients
Once you select a file, the master control program will go thru each client and
upload the scene file (renaming it to "remoterender.xml" on the remote machine) and
also upload any textures, etc as well, to the remote machine.

Please note that files uploaded to the remote machine will keep their same path as
they came from on the master control machine. This keeps relative paths, etc, functioning
in the indigo scene. Even if Indigo is installed on D:\ drive on the remote system,
if you upload a scene from C:\indigo\testscene.xml, that is where it will be put on
the remote machine (although it will get renamed to "remoterender.xml").

d. Once all uploads are complete, simply use the Start render button to start rendering.


REMEMBER to re-upload the scene anytime you make changes to it!



-niko


P.S. FOR THOSE WITH FIREWALLS INSTALLED: PLEASE NOTE THAT THE TRACKER RUNS ON PORT 8090, AND THE CLIENTS ARE ACCESSED THRU PORT 5200.
Attachments
Indigo_Network_Renderer.zip
(135.59 KiB) Downloaded 120 times

User avatar
PureSpider
Posts: 1459
Joined: Tue Apr 08, 2008 9:37 am
Location: Karlsruhe, BW, Germany
Contact:

Post by PureSpider » Wed Apr 23, 2008 3:21 am

could you compile a linux console only version of the tracker or tell me how to do it?
cause i'd like to run the tracker on my linux root server

nikolatesla20
Posts: 52
Joined: Fri Mar 09, 2007 4:44 am

Post by nikolatesla20 » Wed Apr 23, 2008 3:50 am

Hi,

It should be possible, since this program is entirely C# .net, to use the mono project to compile it for Linux. But I have never done so before..more info at http://www.mono-project.com...


-niko

User avatar
dougal2
Developer
Posts: 2532
Joined: Wed Nov 15, 2006 8:17 am
Location: South London

Post by dougal2 » Wed Apr 23, 2008 3:57 am

I think with the appropriate Mono libs installed, you can run the .NET compiled .exe programs directly in linux.

It looks like this will work, but I've got a problem installing the Mono 2.0 libs

Code: Select all

doug@server1:~/dev/Indigo_Network_Renderer/SourceCode_C#/ServerTest1/bin/Debug$ ./ServerTest1.exe
The assembly mscorlib.dll was not found or could not be loaded.
It should have been installed in the `/usr/lib/mono/2.0/mscorlib.dll' directory.
doug@server1:~/dev/Indigo_Network_Renderer/SourceCode_C#/ServerTest1/bin/Debug$

Code: Select all

The following packages have unmet dependencies.
  mono-2.0-devel: Depends: libmono-corlib2.0-cil (>= 1.2.6) but 1.2.2.1-1etch1 is to be installed
                  Depends: libmono-system2.0-cil (>= 1.2.6) but 1.2.2.1-1etch1 is to be installed
                  Depends: libmono2.0-cil (>= 1.2.6) but 1.2.2.1-1etch1 is to be installed
E: Broken packages

User avatar
PureSpider
Posts: 1459
Joined: Tue Apr 08, 2008 9:37 am
Location: Karlsruhe, BW, Germany
Contact:

Post by PureSpider » Wed Apr 23, 2008 4:00 am

hum trying to compile it gets me this:
Program.cs(199,32): error CS0117: `System.Net.Sockets.Socket' does not contain a definition for `LingerState'

€dit:
Run your precompiled exe, now this is what i get:

Code: Select all

purespider:/home/spider/indigo# mono indigo_tracker.exe

** (indigo_tracker.exe:14263): WARNING **: The following assembly referenced from /home/spider/indigo/indigo_tracker.exe could not be loaded:
     Assembly:   System    (assemblyref_index=1)
     Version:    2.0.0.0
     Public Key: b77a5c561934e089
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/spider/indigo/).


** (indigo_tracker.exe:14263): WARNING **: Could not load file or assembly 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
Stacktrace:


Native stacktrace:

        mono [0x8183cf1]
        mono [0x816682e]
        /lib/tls/libpthread.so.0 [0x400cd660]
        mono(mono_object_new+0x18) [0x80b0534]
        mono(mono_exception_from_name_two_strings+0x44) [0x80e5995]
        mono(mono_get_exception_file_not_found2+0x4f) [0x80e5aec]
        mono [0x8103ad9]
        mono [0x810e1e0]
        mono(mono_class_vtable+0x181) [0x80ad419]
        mono(mono_object_new+0x18) [0x80b0534]
        mono(mono_exception_from_name_two_strings+0x44) [0x80e5995]
        mono(mono_get_exception_file_not_found2+0x4f) [0x80e5aec]
        mono [0x8103ad9]
        mono [0x810e1e0]
        mono(mono_class_vtable+0x181) [0x80ad419]
        mono(mono_object_new+0x18) [0x80b0534]
        mono(mono_exception_from_name_two_strings+0x44) [0x80e5995]
        mono(mono_get_exception_type_load+0x62) [0x80e5c4a]
        mono [0x810e1be]
        mono(mono_class_vtable+0x181) [0x80ad419]
        mono [0x81666c3]
        mono(mono_runtime_invoke+0x27) [0x80ab5ff]
        mono(mono_runtime_exec_main+0x142) [0x80aff59]
        mono(mono_runtime_run_main+0x276) [0x80b01ff]
        mono(mono_jit_exec+0xbd) [0x80588cd]
        mono [0x80589aa]
        mono(mono_main+0x165b) [0x805a194]
        mono [0x8057ab6]
        /lib/tls/libc.so.6(__libc_start_main+0xc8) [0x4010eea8]
        mono [0x8057a11]

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Aborted
Last edited by PureSpider on Wed Apr 23, 2008 4:09 am, edited 1 time in total.

User avatar
dougal2
Developer
Posts: 2532
Joined: Wed Nov 15, 2006 8:17 am
Location: South London

Post by dougal2 » Wed Apr 23, 2008 4:02 am

And vice versa, a .cs file i compiled in linux with mono worked in windows!

Code: Select all

D:\>hw.exe
Hello World


nikolatesla20
Posts: 52
Joined: Fri Mar 09, 2007 4:44 am

Post by nikolatesla20 » Wed Apr 23, 2008 4:04 am

Sorry bout that guys I never worked with Mono before, I checked some of the platform independence tips and one thing they said was to be careful with file path characters, looks like I do use the bad character search (looking for "\" character), in linux it's ("/") instead, so they recommend using Path.GetFileName, etc instead.

Just don't have time currently to do too much more work on it my apologies, but maybe somebody with mono experience can easily modify the code at least.

-niko

nikolatesla20
Posts: 52
Joined: Fri Mar 09, 2007 4:44 am

Post by nikolatesla20 » Wed Apr 23, 2008 4:10 am

Shoot, also the INI file saving is not portable to linux, it uses PInvoke calls, but MMoA says everything else should be fine

-niko

User avatar
PureSpider
Posts: 1459
Joined: Tue Apr 08, 2008 9:37 am
Location: Karlsruhe, BW, Germany
Contact:

Post by PureSpider » Wed Apr 23, 2008 4:11 am

dougal2:
If you're on deb or the like, try to use apt-get install libmono-corlib2.0-cil, this at least fixed the core prob on my side

nikolatesla20:
see my post above

User avatar
dougal2
Developer
Posts: 2532
Joined: Wed Nov 15, 2006 8:17 am
Location: South London

Post by dougal2 » Wed Apr 23, 2008 4:14 am

PureSpider
I would do that on another machine, but that was on my work webserver which I need to not totally break ;)
(It's also a PPC mac running debian, I dunno if it should be more compatible with an x86 machine ??)

I might try it at home later.

User avatar
PureSpider
Posts: 1459
Joined: Tue Apr 08, 2008 9:37 am
Location: Karlsruhe, BW, Germany
Contact:

Post by PureSpider » Wed Apr 23, 2008 5:08 am

Okay, apt-get install libmono-system-data2.0-cil solved at least this problem, now i get

Code: Select all

purespider:/home/spider/indigo# mono indigo_tracker.exe

** (indigo_tracker.exe:15863): WARNING **: Missing method System.Net.Sockets.Socket::set_LingerState(LingerOption) in assembly /usr/lib/mono/gac/System/2.0.0.0__b77a5c561934e089/System.dll, referenced in assembly /home/spider/indigo/indigo_tracker.exe

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Net.Sockets.Socket.set_LingerState'.

Post Reply
78 posts

Who is online

Users browsing this forum: No registered users and 3 guests