Hello,
I am a programmer, and am trying to write a tool to facilitate distributed simulations on our renderfarm - more specifically to send simulation slices to be cached in parallel on nodes on our Tractor render farm.
Tractor handles queueing and prioritizing for our render and cache jobs, and I would prefer not setting up another render farm. So I would rather not use HQueue for queuing simulation slices. I prefer to queue my slices using our existing Tractor setup that would run python snippets in parallel that execute each slice.
As per the article on distributed simulations [www.sidefx.com], it is easy to just set the $CLUSTER/$SLICE variable so save_slices knows which slice to save.
However, what do I need to do to facilitate the communication between nodes that are simulating the slices in parallel? How do I setup the tracker service, and then link this service with each slice task, when I am not using hqueue for queuing?
Thank you in advance for your help with this.
Sliced simulation jobs on a renderfarm without hqueue
983 2 2-
- amalhotra
- Member
- 16 posts
- Joined: 9月 2017
- オフライン
-
- tamte
- Member
- 9698 posts
- Joined: 7月 2007
- オフライン
You can try watching this, while older, it may still contain some useful info
Especially the end where Jeff explain how the sim tracker works without the use of Hqueue by running simtracker.py
https://www.sidefx.com/tutorials/h15-masterclass-distributed-simulations/ [www.sidefx.com]
Especially the end where Jeff explain how the sim tracker works without the use of Hqueue by running simtracker.py
https://www.sidefx.com/tutorials/h15-masterclass-distributed-simulations/ [www.sidefx.com]
Tomas Slancik
CG Supervisor
Framestore, NY
CG Supervisor
Framestore, NY
-
- amalhotra
- Member
- 16 posts
- Joined: 9月 2017
- オフライン
Thanks! I was able to make it work with the video.
Just to help others with the issue, (1) run simtracker.py on one node, (2) set the DISTRIBUTE_xxxx_CONTROLS node's tracker address to the hostname of this node (also fill the port appropriately) and save the houdini scene and (3) run the slices on other nodes from that modified scene file.
Im still trying to figure out what is the best way to send simtracker the quit signal (code for quitting is provided in the simtracker.py code comments).
Can I assume that all slices will end at the same time, so that they all can attempt to send the "quit" in to simtracker? Or do I need another process tracking all the slices and waiting for them all to finish, and then send simtracker the "quit" (PAINFUL to implement with Tractor).
Just to help others with the issue, (1) run simtracker.py on one node, (2) set the DISTRIBUTE_xxxx_CONTROLS node's tracker address to the hostname of this node (also fill the port appropriately) and save the houdini scene and (3) run the slices on other nodes from that modified scene file.
Im still trying to figure out what is the best way to send simtracker the quit signal (code for quitting is provided in the simtracker.py code comments).
Can I assume that all slices will end at the same time, so that they all can attempt to send the "quit" in to simtracker? Or do I need another process tracking all the slices and waiting for them all to finish, and then send simtracker the "quit" (PAINFUL to implement with Tractor).
Edited by amalhotra - 2025年7月28日 08:03:32
-
- Quick Links

