> [!abstract] Summary
> Notes on the current farm configuration issues and a proposed reconfiguration by Loris Eck. Core idea: assign each project group a dedicated pool with an even RAM distribution, use a shared fallback "all" pool for idle time, and create RAM-based groups for smarter task routing.
---
# Current Behavior
## Pools
- First pool = project group pool
- Second pool = RAM tier required to render the job
## Groups
Not very useful in current config — only used for GPU rendering.
## Problems
> [!bug] Known issues with the current setup
> - **Uneven pool distribution** — only machines explicitly assigned to a group's pool serve that group.
> - **Job misrouting** — Deadline sometimes assigns jobs to other groups' pools before the artist's own pool.
> - **RAM pool penalty** — selecting a low-RAM pool (e.g. 16 GB) causes jobs to be sent to slower machines first, which is counter-productive.
---
# Proposed New Behavior — by Loris Eck
## Pools
- **First pool** = divide the farm machines evenly across project groups, and assign each set to the corresponding group's pool. Try to maintain an even distribution of high/mid/low RAM machines per group.
- **Second pool** = create an **"all"** fallback pool. If a group's pool is idle, other groups can claim those machines — avoiding wasted compute overnight.
## Groups
- Create groups **based on RAM tier**. This way, selecting 32 GB ensures the job only runs on machines with 32 GB or more, while still respecting pool priority order.
- Keep a **GPU group** containing only machines with a capable graphics card (e.g. RTX 3060 or higher).
## Priority Hierarchy (Multi-Tier Pools)
> [!tip] Recommended pool priority structure
> This pattern allows clean priority tiers without blocking lower-priority work from running on idle machines.
Create a tiered pool system:
1. **Project group pool** — top priority, reserved for that group's active renders.
2. **Secondary group pool** (optional) — lower priority than project pools, higher than "all". Useful for a secondary cohort of artists who should get access before the global fallback.
3. **"all" pool** — lowest priority fallback. Any idle machine can be claimed by any group.
Artists assign their group pool as **primary** and the next tier as **secondary**. This means:
- Their group has top priority on their machines.
- If their pool is idle, the next tier picks up those machines.
- If nothing is in the queue, the "all" pool catches remaining idle capacity.
---
# Open Questions
> [!question] To investigate
> - **Farm denoiser** — should target workers within the project group's pool specifically.
> - **Dedicated Nuke workers** — worth evaluating whether compositing jobs should have isolated workers.