ranimate Host directive

Hello list,

I am having folder specification difficulties setting up a test ranimate across multiple computers (using samba)

My test.ran files is:
RIF= test.rif
DIRECTORY= animation_process_network
VIEWFILE= anim.vf
DISKSPACE= 100
#host= localhost 1 ~/test/current/animation_process_network masteruser
host= remote 1 ~/test/test/current/animation_process_network testuser
TRANSFER= ran2tiff -W 0.7 -h -z frame*.hdr

Notes:
1. Assume the remote workstation is called remote
2. The remote username is testuser
3. The master usernmae is masteruser
4. I have commented out the localuser host as this works
5. ssh has been set up using RSA keys pairings
   Setup ssh key pairs:
   On the host system: ssh-keygen -t rsa (use enter for no passhrase)
   ssh-copy-id -i /home/masteruser/.ssh/id_rsa.pub testuser@remote
6. Samba mount:
   ssh testuser@remote
   smbmount //master/masteruser ~/test -o username=masteruser

On the host system I start the process with:
ranimate test.ran >& animation_process_network/anim.err

The anim.err file shows:
Process started on remote
remote: Error output from: rpict @animation_process_network/render.opt -vp -505.575 812.796 321.761 -vd 0.608355 -0.458502 -0.436495 -vu 0.396724 -0.283029 0.873215 -vh 56.547 -vv 41.1546 -w0 -o animation_process_network/frame%03d.unf -x 3708 -y 1644 -S 1 octrees/test.oct < animation_process_network/anim.vf
bash: line 0: cd: ~masteruser: No such file or directory
bash: animation_process_network/anim.vf: No such file or directory
ranimate: error rendering frames 1 through 3

1. What is confusing is where does the 'masteruser' come from (it is the username on the master workstation) when processing on the remote workstation the username is testuser!
2. Is the 'local directory' parameter on the host line (parameter 3) suppose to point to the same folder as the test.ran file is located (ie the same location as in the localhost line). Obviously on the remote workstation this folder 'smbmount' at some point x in the local filesystem.
3. The rpict command when run on the remote workstation works quite happily in the same folder.

I am using Linux - specifically Kubuntu 9.10 and radiance-3R9+20090811-1 (latest version)

Regards
Terrance Mc Minn

Hi Terrance!

host= remote 1 ~/test/test/current/animation_process_network testuser

Can you replace the ~ by the absolute path? I guess that the home
directory get resolved on the master and not one the slave nodes of your
rendering cluster. Would be worth trying, unfortunately I cannot test it
right now.

Cheers, Lars.

Hi Terrance,

I remember having to deal with this a while back, but I do not recall exactly the solution. Nevertheless here are a couple of things to look at:

   1. ssh - you may need to set the environment for ssh, when used this
      way (eg ssh command_to_run) it does not use the PATH information
      found for your standard login shell, you can set the correct PATH
      and RAYPATH. This is done in an "environment" file for ssh, check
      the man page for ssh for further information.
   2. host specification
         1. explicit path in hosts specification- I think that you might
            want try specifying an explicit path (rather than ~) to the
            location where the host needs to look for the animation
            related files. Not sure if it makes a difference, you may
            need to try out the following as tests:
               1. relative to user home dir - ../../../path_to_render_dir
               2. path from root - /path_to_render_dir
         2. mount point - I seem to recall that the easiest thing to do
            is have the mount point and user be the same on master and
            slave nodes. So if you are mounting to /RENDER which is what
            your slave (render host) nodes see then you should have this
            in your path on the master node. This way you can just cd to
            /RENDER on the master node and run ranimate job.ranim and
            have master and slave nodes seeing the same directory
            hierarchy. And this way you do not need to specify path or
            user in the host specification, eg host= render-host 1
            rather than host= render-host 1 path_to_render_dir alt_user
         3. different users - wouldn't it be easier to just have the
            same user replicated onto the slave nodes?
   3. samba - I am not sure about this, I have never really been clear
      on the difference between the file locking protocols between samba
      and NFS, I guess I will be interested to hear if this works or
      note, however you may end up needing to use NFS.

Hope this helps.

-Jack

···

--
# Jack de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

Terrance McMinn wrote:

Hello list,

I am having folder specification difficulties setting up a test ranimate across multiple computers (using samba)

My test.ran files is:
RIF= test.rif
DIRECTORY= animation_process_network
VIEWFILE= anim.vf
DISKSPACE= 100
#host= localhost 1 ~/test/current/animation_process_network masteruser
host= remote 1 ~/test/test/current/animation_process_network testuser
TRANSFER= ran2tiff -W 0.7 -h -z frame*.hdr

Notes:
1. Assume the remote workstation is called remote
2. The remote username is testuser
3. The master usernmae is masteruser
4. I have commented out the localuser host as this works
5. ssh has been set up using RSA keys pairings
   Setup ssh key pairs:
   On the host system: ssh-keygen -t rsa (use enter for no passhrase)
   ssh-copy-id -i /home/masteruser/.ssh/id_rsa.pub testuser@remote
6. Samba mount:
   ssh testuser@remote
   smbmount //master/masteruser ~/test -o username=masteruser

On the host system I start the process with:
ranimate test.ran >& animation_process_network/anim.err

The anim.err file shows:
Process started on remote
remote: Error output from: rpict @animation_process_network/render.opt -vp -505.575 812.796 321.761 -vd 0.608355 -0.458502 -0.436495 -vu 0.396724 -0.283029 0.873215 -vh 56.547 -vv 41.1546 -w0 -o animation_process_network/frame%03d.unf -x 3708 -y 1644 -S 1 octrees/test.oct < animation_process_network/anim.vf
bash: line 0: cd: ~masteruser: No such file or directory
bash: animation_process_network/anim.vf: No such file or directory
ranimate: error rendering frames 1 through 3

1. What is confusing is where does the 'masteruser' come from (it is the username on the master workstation) when processing on the remote workstation the username is testuser!
2. Is the 'local directory' parameter on the host line (parameter 3) suppose to point to the same folder as the test.ran file is located (ie the same location as in the localhost line). Obviously on the remote workstation this folder 'smbmount' at some point x in the local filesystem.
3. The rpict command when run on the remote workstation works quite happily in the same folder.

I am using Linux - specifically Kubuntu 9.10 and radiance-3R9+20090811-1 (latest version)

Regards
Terrance Mc Minn

------------------------------------------------------------------------

_______________________________________________
Radiance-general mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/radiance-general

Thanks to both Lars and Jack for your suggestions.

I will try your suggestions tonight.

   1. The different users are a pain - but not always easily resolved.
      It seems that ranimate was designed to handle different users (at
      least by the provision of the host username parameter) though I
      have not looked at the source code.
   2. I had the same errors to a different remote workstation with the
      same user name just a different folder location due to the mount
      command!
   3. I suspected there might be a 'environment' error with ssh not
      running the .bashrc - will check that out. From the errors, it
      appears that the rpict program was found and run - maybe this is a
      bogus error. Will check tonight after resolving the ssh 'environment'.

···

--

Regards

Terrance Mc Minn

I have been experiencing errors when attempting to use ranimate across multple host computers. Specifically if the remote host does not have the same user name accounts.

extracted from the .ran file:
host= localhost 1 /export/ranimate/current muser
host= remote1 1 /export/ranimate/current
host= remote2 1 /export/ranimate/current ruser

where muser is the user account name where the ranimate command is issued and ruser is the user name on the remote2 computer.

The ranimate man page states:

*host*
    A host to use for command execution. This variable may be assigned a
    host name, followed by an optional number of parallel processes,
    followed by an optional directory (relative to the user's home
    directory on that machine), followed by an alternate user name.
    Multiple /host/ assignments may appear. It is not advisable to
    specify more than one process on a single-CPU host, as this just
    tends to slow things down. The default value is "localhost", which
    starts a single process in the current directory of the local machine.

clearly it seems that the intended operation is to work from the users account

However when the fourth parameter is used eg remote user name, ranimate only users this in the ssh command and reverts to the master user name in the cd commands (The user name on the master computer that initiated the ranimate process). This can be seen in the dump from remote 2 using the ps x command:

ruser 4403 1.0 0.1 4712 1700 ? Ss 15:58 0:00 bash -c cd ~muser ; cd /export/ranimate/current ; pfilt -1 -e -2 -x 1854 -y 822 -pa 1 animat
ruser 4404 3.0 0.0 2052 788 ? D 15:58 0:00 pfilt -1 -e -2 -x 1854 -y 822 -pa 1 animation_process_network/frame022.unf

Is this behaviour the intended process or a missing issue in the man pages.

It should also be noted that as soon as a dummy account is made on the remote2 computer under the name of muser, everything continues as expected (without any changes to the ran file - that is still using the ruser parameter)!

···

--

Regards

Terrance Mc Minn

Hi Terrance,

This is the as-designed behavior for ranimate. The basic assumption is that you have an NFS-shared filesystem or the like where user names are preserved. Therefore, even if you are logging in as a different user on the remote machine, it assumes you want to execute ranimate in the originating user's home directory, and you have set up directory and file permissions accordingly. I suppose I should add a check on the remote directory, and if a full path is given, forego the cd to the originating home directory.

The recommended workaround if this is not the case is to write your own remote ssh-replacement and do whatever custom things you want done with that, assigning the RSH variable in the .ran file.

-Greg

···

From: Terrance Mc Minn <[email protected]>
Date: March 14, 2010 12:42:37 AM PST

I have been experiencing errors when attempting to use ranimate across multple host computers. Specifically if the remote host does not have the same user name accounts.

extracted from the .ran file:
host= localhost 1 /export/ranimate/current muser
host= remote1 1 /export/ranimate/current
host= remote2 1 /export/ranimate/current ruser

where muser is the user account name where the ranimate command is issued and ruser is the user name on the remote2 computer.

The ranimate man page states:
host
A host to use for command execution. This variable may be assigned a host name, followed by an optional number of parallel processes, followed by an optional directory (relative to the user's home directory on that machine), followed by an alternate user name. Multiple host assignments may appear. It is not advisable to specify more than one process on a single-CPU host, as this just tends to slow things down. The default value is "localhost", which starts a single process in the current directory of the local machine.
clearly it seems that the intended operation is to work from the users account

However when the fourth parameter is used eg remote user name, ranimate only users this in the ssh command and reverts to the master user name in the cd commands (The user name on the master computer that initiated the ranimate process). This can be seen in the dump from remote 2 using the ps x command:

ruser 4403 1.0 0.1 4712 1700 ? Ss 15:58 0:00 bash -c cd ~muser ; cd /export/ranimate/current ; pfilt -1 -e -2 -x 1854 -y 822 -pa 1 animat
ruser 4404 3.0 0.0 2052 788 ? D 15:58 0:00 pfilt -1 -e -2 -x 1854 -y 822 -pa 1 animation_process_network/frame022.unf

Is this behaviour the intended process or a missing issue in the man pages.

It should also be noted that as soon as a dummy account is made on the remote2 computer under the name of muser, everything continues as expected (without any changes to the ran file - that is still using the ruser parameter)!

--

Regards

Terrance Mc Minn