Hi Charles,
In our local pool, we give each machine one "IoHeavy" resource and ask users whose jobs are disk IO heavy to use "request_ioheavy = 1" in their jobs. Here's a post from the archive with more details:
Maybe you could do something similar, where you give your machines a number of "simulation resources" and "rendering resources" depending on the machine's total resources, and then have your users request these resources for these types of jobs? E.g. to allow 10% of CPUs to be available at a time for simulation jobs and 20% of CPUs to be available at a time for rendering jobs:
MACHINE_RESOURCE_Simulation = INT(0.1 * $(DETECTED_CPUS))
MACHINE_RESOURCE_Rendering = INT(0.2 * $(DETECTED_CPUS))
Then jobs could specify either request_simulation = 1 or request_rendering = 1 (or you could even have submit transforms add RequestSimulation = 1 or RequestRendering = 1 to the jobs if you think you can classify these jobs in your access point config).
Jason