how to control number of tasks?

Started by andy.engelkemier, February 11, 2020, 08:54:47 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

andy.engelkemier

Since our "farm" is just computer we happen to not be utilizing, we have 36 cores that are great. The rest.....not so much.
So for renders that only have 16 tasks, they are Painfully slower when we network render them. But for renders that have 400 tasks, they are great.

I can't, for the life of me, figure out how to control how many tasks there are.

Realistically, I'd like to just define the bucket size. Because, that's what's happening, right? With a mixed render farm, smaller is going to be better so that a crappy machine doesn't get hung up on a material like cloudy plastic for an entire hour, meanwhile two other identical renders completely finish in 15 minutes each.

For an animation, that's fine. That crappy machine will do a couple buckets here and there, and make SOME contribution. But that's also throwing off my time a LOT. All of the 7K renders I did said something like 1.5hrs. But I finished something like 20 of them in a night? Well, there's not that many hours overnight. So it's really difficult to estimate timing in the current state.

So, any way to control the bucket size/number of render tasks? I'd love to fix that.

Morten Kristensen

Hi Andy,

The number of tasks is controlled by lots of factors: the type of rendering, the resolution, the number of frames for animations, the rendering options and so on. However, it shouldn't be necessary to change it.

Can you explain what type of rendering you are doing? Resolution, still image/animation/other, rendering mode and settings, number of frames if any.
Also, which version of NR are you running?

It is also important to keep in mind that if the scene is very simple and with small resolution, then NR is not always going to be faster than rendering locall due to the overhead of sending over the network, setup, and so on.

Thanks!

andy.engelkemier

It shouldn't be necessary to change, if your computers are comparable. We have some that aren't. Simple materials are fine. They get to contribute in a small way. But when it gets hung up on something like cloudy plastic for 30 minutes on one task, it throws our times off significantly.

So I want to occasionally change the bucket size, or strip size. I'm not exactly sure how tasks are distributed in keyshot. And that's for custom control. I see the other method creates significantly more tasks. We're only Just now starting to consider using it now that denoise has been added. I just have to figure out how to keep it from killing fine textures. The normal map doesn't look to include bump maps, so it blurs the heck out of brushed metal. And in plastics I want to simulate fine bump, so I'll have to test out where I can utilize it. But without denoise, the realtime always had Somewhere that would just never resolve.

So is there a way to adjust the task sizes? I'd Love to be able to tell people we just need to spend 4K on a 64core threadripper, but that' just not going to happen at the moment. So we'll keep paying for NR for now.  ;)

DMerz III


Morten Kristensen

Andy, which version of NR are you running? 9?

In 9 you can set the number of simultaneous rendering jobs to be active at any one time. It will default to 1 for backwards compatibility. Open the Network Configurator, click on the Manager Settings pane. You can set the "Number of parallel jobs:". I think that would help to set to 2-4 such that any one job won't stop rendering of other jobs.

Wrt. the number of tasks, it's a little complicated when I don't know your specific renderings in question, but you can more or less crudely predict that animations will have a task per frame, an encoding task, an archiving/finishing task. Still images are divided up into one task per region. The regions are roughly 320px tall bands, unless "regionSizeHint" or "interiorModeRegionSizeHint" (for interior mode jobs) have been changed in the config file. (If "useOldRegionSplitMethod" is changed to true in the config then it will not use bands but regions of 320x320px instead, given the size). These bands will be slightly overlapping for interior mode, caustics, or indirect illumination - blending is used in these cases to eliminate artifacts. All jobs start with a setup task.

I hope that helps, but I think the parallel jobs setting is exactly what you're looking for.

andy.engelkemier

So it's not an animation. The settings you're talking about sound like Exactly what I'm after. I'd rather use the legacy method because if one of the slower machines ends up on a strip with a really heavy material then it just sits there and Grinds Forever. Limiting those to smaller regions cause that delay to be a bit closer. So I'll try tweaking those settings (once I'm not so busy) to see what works best for our farm. And by farm I mean, utilizing a few computers that don't get much use and we upgraded a bit. There's usually a few cores left over so I'll add a few cores from my machine also (or all when it's locked obviously)