Announcement

Collapse
No announcement yet.

maintaining Vray builds with workstations and the render frarm?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • maintaining Vray builds with workstations and the render frarm?

    Hey Everyone,

    I'm just curious how often everyone updates their installation to the latest nightly build and what are the different ways to roll those builds out to workstations and the render farm?

    silent batch scripts for installation? network installation with ENV variables? please be specific if you don't mind. And pros and cons for said method.

    Just doing a bit of research before we go down a certain road.

    thanks!

    Andy

  • #2
    We have a batch script for farm install, it didn't take too much too write it. We generally keep the farm on release builds, but occasionally up it to a nightly when a feature is needed. Most workstations are on service pack, but a few are kept up with nightlies for artists that are on top of it, and into testing. I can probably send you the batch script if you like. I'm sure it needs occasional editing, as install features change tho.

    Comment


    • #3
      have you ever had issues with rendering becoming inconsistent. for example if i have my workstation with the latest nightly and i save my file and then render on the renderfarm with the older release build.

      does this cause you problems or inconsistencies? for example if you use a new feature thats not available in the older release? we have noticed a few odd things but im perpetually too busy to nail anything concrete down. most problematic is if we upgrade our workstations the DR doesnt work with the older builds.

      Comment


      • #4
        we're just rolling out vray and are gearing up for our first production with it... so that's why I asked about how other peeps are doing it. In short... I don't have an answer for your question!

        Andy

        Comment


        • #5
          we do network installs here.
          It's probably pretty hacked, because we are not as nerdy as we should be, but this is what we do.

          we set the $BUCK_VRAY_BUILD as a windows environment variable, so different machines can have different builds if nesicairy.
          usually just 1 or 2 for testing, then we roll it out by changing the envars on every machine. It would probably be better to do this on a per job basis at maya start up, and not with an environment variable,
          but... there is always something to do.


          pushVrayToNetwork.bat
          (used after a local install to push out vray to the network)(this may be missing some things, it's been a while since I've personally done it.)
          Code:
          xcopy /E /Y /I "C:\Program Files\Autodesk\Maya2009\vray" "...\net_modules\$BUCK_VRAY_BUILD"
          mkdir "...\net_modules\$BUCK_VRAY_BUILD\rendererDesc"
          copy /Y "C:\Program Files\Autodesk\Maya2009\bin\rendererDesc\vrayRenderer.xml" "...\net_modules\$BUCK_VRAY_BUILD\rendererDesc\vrayRenderer.xml"
          copy /Y "C:\Program Files\Autodesk\Maya2009\scripts\others\unifiedRenderGlobalsWindow.mel" "...\scripts\vray\$BUCK_VRAY_BUILD\unifiedRenderGlobalsWindow.mel"
          copy /Y "C:\Program Files\Autodesk\Maya2009\scripts\others\createMayaSoftwareCommonGlobalsTab.mel" "...\scripts\vray\$BUCK_VRAY_BUILD\createMayaSoftwareCommonGlobalsTab.mel"
          copy /Y "C:\Program Files\Autodesk\Maya2009\scripts\others\shouldAppearInNodeCreateUI.mel" "...\scripts\vray\$BUCK_VRAY_BUILD\shouldAppearInNodeCreateUI.mel"
          copy /Y "C:\Program Files\Autodesk\Maya2009\bin\vray.dll" "...\net_modules\$BUCK_VRAY_BUILD\bin\vray.dll"
          copy /Y "C:\Program Files\Autodesk\Maya2009\bin\libmmd.dll" "...\net_modules\$BUCK_VRAY_BUILD\bin\libmmd.dll"
          copy /Y "C:\Program Files\Autodesk\Maya2009\bin\dte_wrapper.dll" "...\net_modules\$BUCK_VRAY_BUILD\bin\dte_wrapper.dll"
          
          REM dr extras
          mkdir "...\net_modules\vray\bin_dr"
          xcopy /E /Y /I "...\net_modules\$BUCK_VRAY_BUILD\bin" "...\net_modules\$BUCK_VRAY_BUILD\bin_dr"
          copy /Y "C:\Program Files\Autodesk\Maya2009\vray\bin\vray.dll" "...\net_modules\$BUCK_VRAY_BUILD\bin_dr\vray.dll"
          
          xcopy /E /Y /I "C:\Program Files\Chaos Group\V-Ray\Maya 2009 for x64\docs" "...\net_modules\$BUCK_VRAY_BUILD\docs"
          
          pause

          maya.env
          Code:
          MAYA_PLUG_IN_PATH = .../net_modules/$BUCK_VRAY_BUILD/;.../net_modules/$BUCK_VRAY_BUILD/plug-ins/;
          MAYA_MODULE_PATH = .../net_modules/;.../net_modules/$BUCK_VRAY_BUILD/
          MAYA_SCRIPT_PATH = .../vray/$BUCK_VRAY_BUILD;

          userSetup.mel
          Code:
          if(`about -b` == 0) {
          	sysFile -copy (`getenv USERPROFILE` + "/My Documents/maya/server_list.tmp") ($BUCK_mayaPrefsDir + "bin/" + $BUCK_mayaPrefsDir + "_DR/vray_DR_server_list.tmp");
          	sysFile -copy (`getenv USERPROFILE` + "/My Documents/maya/server_status.tmp") ($BUCK_mayaPrefsDir + "bin/" + $BUCK_mayaPrefsDir + "_DR/vray_DR_server_status.tmp");
          }
          putenv "VRAY_VFB_HISTORY" "1";
          if(`filetest -e "c:/useLocalVray.txt"` == 0) {
          	putenv "VRAY_FOR_MAYA2009_MAIN_x64" ($BUCK_mayaPrefsDir + "net_modules/"+ $BUCK_vRayBuild);
          	putenv "VRAY_FOR_MAYA2009_PLUGINS_x64" ($BUCK_mayaPrefsDir + "net_modules/" + $BUCK_vRayBuild + "/vrayplugins");
          	$currPath = `getenv PATH`;
          	$currpath = $BUCK_mayaPrefsDir + "net_modules/" + $BUCK_vRayBuild + "/bin/;" + $currPath;
          	putenv "PATH" $currpath;
          }

          Comment


          • #6
            Hey guys,

            I am trying to implement a similar thing by creating a install script that will install a build over all our machines automatically without me having to manually log into each node and install it.

            My question is how you guys get around the fact that the installer needs manual input? Like pressing next, setting the path etc?

            From the examples are you guys just installing it on your workstation and then your scripts just copy the directories/environment variables etc created on your workstation to your render nodes, rather than actually running the install on each machine?

            Vlado is there a silent install option, so install can be done via command line?

            Cheers,

            Rich

            Comment


            • #7
              We do it by manually installing vray on a single machine. We then copy those files (its really only the maya/vray folder and a couple of files from the maya/bin folder) to the shared network drive. At render time userSetup.mel (also on the shared drive) syncs all our plugins with the slave machines (copies across anything that needs to be changed, usually based on date). In this way we can easily switch between builds at any time. In theory, two or more jobs can run on the farm concurrently, each using a different build. This creates some overhead with files being copied around, but in practice we don't switch back and forth that often.

              Comment


              • #8
                Hey David,

                Thanks for the info. Does sounds a bit messy for my liking I think but that is only because I cannot think off the top of my head how to quickly set that up.

                We do a lot of distributed render i.e one frame rendering on multiple machines. Would your setup allow us to do that? Would the render slave service be installed on each machine properly?

                Many thanks,

                Rich

                Comment


                • #9
                  Originally posted by chuckie7413 View Post
                  Vlado is there a silent install option, so install can be done via command line?
                  Yep, there is.

                  Create an .xml file with contents similar to the one below, where you can specify the values for the various installer variables. If a variable is missing, a default value will be used (f.e. if the MAYAROOT variable is missing, it will be taken from the registry information about the Maya installation).

                  Then you can run the installer with the command:

                  Code:
                  vray_adv_150SP1_maya2011_x64.exe -gui=0 -configFile="xml_file.xml" -quiet=1
                  Obviously, replace the name of the installer .exe with the actual one that you want to run. The -gui=0 option tells it to run in command line mode; the -configFile option specifies the path and file name to a .xml from which the values of the various installer variables are read; the -quiet option tells it to run without prompting the user for input. If you omit the -quiet option, the installer will prompt you to confirm each variable (probably a good idea to run it this way while testing).

                  Below is an example .xml file, here is a description of the variables:

                  MAYAROOT - this is the root Maya folder;
                  STDROOT - this is the folder where various other files will be installed (documentation, SDK etc);
                  MODULEDEST - the Maya modules folder;
                  PLUGINS - this is the folder where V-Ray specific Maya-related stuff will be installed (scripts, plugins etc);
                  OPEN_CHANGELOG - this is 1 to open the changelog after the installation and 0 if you don't want it to open;
                  INSTALL_TYPE - 0 is full install (workstation, includes SDK); 1 is standalone only;

                  Example .xml file:
                  Code:
                          <DefValues>
                              <Value Name="MAYAROOT" DataType="value">D:\Maya2011_x64\</Value>
                              <Value Name="STDROOT" DataType="value">C:\Program Files\Chaos Group\V-Ray\Maya 2011 for x64</Value>
                              <Value Name="MODULEDEST" DataType="value">D:\Maya2011_x64/modules</Value>
                              <Value Name="PLUGINS" DataType="value">D:\Maya2011_x64/vray</Value>
                              <Value Name="OPEN_CHANGELOG" DataType="value">0</Value>
                          </DefValues>
                  If there is a previous build of V-Ray for Maya installed, it will be automatically removed before the new files are copied.

                  Best regards,
                  Vlado
                  Last edited by vlado; 01-03-2011, 06:10 AM.
                  I only act like I know everything, Rogers.

                  Comment


                  • #10
                    Brilliant!! Thanks Vlado.

                    I checked the install pdf but do not think any mention of this installation option. Think it would be good to add this in the docs if not already done for other maybe?

                    Will test this out and let you know how I get on.

                    Cheers,

                    Rich

                    Comment


                    • #11
                      Originally posted by chuckie7413 View Post
                      I checked the install pdf but do not think any mention of this installation option. Think it would be good to add this in the docs if not already done for other maybe?
                      Well, it is really for people who know what they are doing

                      Best regards,
                      Vlado
                      I only act like I know everything, Rogers.

                      Comment


                      • #12
                        So you are implying I do not know what I am doing!! Hehe. (your not wrong )

                        Cheers,

                        Rich

                        Comment


                        • #13
                          We do a lot of distributed render i.e one frame rendering on multiple machines. Would your setup allow us to do that? Would the render slave service be installed on each machine properly?
                          @ chuckie7413
                          Its not as messy as it sounds, and I cant see why it would not work with distributed rendering, but I've never tried it. You'd have to figure out a way to start the service after swapping builds, but these days with mel and python both at our disposal, there should be a way.

                          Anyway, sounds like Vlado has given you a more direct answer to your original question.

                          cheers

                          Comment


                          • #14
                            Originally posted by djx View Post
                            @ chuckie7413
                            Its not as messy as it sounds, and I cant see why it would not work with distributed rendering, but I've never tried it. You'd have to figure out a way to start the service after swapping builds, but these days with mel and python both at our disposal, there should be a way.

                            Anyway, sounds like Vlado has given you a more direct answer to your original question.

                            cheers
                            Hey David,

                            I am sure it is not messy at all. I am just not that script literate.

                            Really appreciate you sharing your workflow though.

                            Many thanks,

                            Rich

                            Comment


                            • #15
                              I'm trying to wrap my head around how to achieve having the latest stable version installed as well as the latest nightly build. This doesn't seem to work though – as you really can't specify more than one path to vray.exe in the PATH environment variable. If you specify more than one path, the machine will end up always using just one of them.

                              Am I right?

                              Cheers!
                              Best Regards,
                              Fredrik

                              Comment

                              Working...
                              X