#How to run heavy tasks ?

16 messages · Page 1 of 1 (latest)

devout lotus
#

I sometimes (try) to run some really heavy tasks (ai training, data or bitbake). The kind that takes all the ressources available by default.

On my latest attempt, the cpu was always at 100%, avrg load at 180 and 800 ish threads total.

I setted the thing up for 12/32 worker threads max, and still ended up hitting a bottleneck.

Is there a monitoring software or a method to find the honeyspot ensuring max efficiency ?

peak badger
midnight remnant
frank tangle
midnight remnant
devout lotus
#

Honeypot, honeyspot... Be creative 😄

ruby kestrel
devout lotus
#

So it isn't the io but too much context switching... Too much threads at once I beleive. Something I can do to prevent that except for reducing the number of workers ?

ruby kestrel
#

also is your machine multi socket?

#

you can also switch your task to SCHED_BAATCH using chrt to allow it to run for longer time slice before being preemted chrt -b -p 0 [prcess id]

#

also you can isolate heavy tasks into its cpuset controller so it reserves some cpu for that task and can prevent the rest of the os from interfering with those cores

old drift
#

you probably just want your desktop or whatever gui to remain at higher priority, nice should be able to help? what exactly are the things you're running?

ruby kestrel
#

nice only changes cpu scheduling priority, but doesnt prevent cache thrashing or stop threads from moving across cores. taskset can pin a worker's threads to specific cores or utilize cgroups for max core isolation