Single Threaded Workload

Yup. always gotta be that one single threaded program. In this case, appears to be frigate.

141 points · 44 comments · view on lemmy.world

44 Comments

morethanevil@lmy.mymte.de · 24 pts · 3y (9 replies)

Multithreading is almost impossible with only a few cores. It is barely enough to run Windows 🥺

You should upgrade soon ☝🏻

xtremeownage@lemmyonline.com · 11 pts · 3y (8 replies)

I know, it's horrible.

Although, I really need to get this machine added into my proxmox cluster. My cluster really does need more resources....

But, my good old unraid box just "works"... so, I don't wanna touch it lol

morethanevil@lmy.mymte.de · 6 pts · 3y (5 replies)

Can it run crysis? 🤔😸

xtremeownage@lemmyonline.com · 4 pts · 3y (4 replies)

Of course. Can also run cyberpunk!

vext01@lemmy.sdf.org · 2 pts · 3y (2 replies)

What about wolfenstein 3d?

xtremeownage@lemmyonline.com · 1 pts · 3y (1 reply)

Well, it can run doom(in dosbox), and doom proceeded wolfenstein.

vext01@lemmy.sdf.org · 1 pts · 3y

how about moonbuggy?

morethanevil@lmy.mymte.de · 1 pts · 3y

😳😳

johntash@eviltoast.org · 1 pts · 3y (1 reply)

I moved my unraid box into a vm on my proxmox server so that I could share the rest of the resources on the unraid server. I haven't had any issues so far and have the benefit of being able to create other vms on that server too

xtremeownage@lemmyonline.com · 2 pts · 3y

I have been really toying with the idea of doing so.

I just need to slap a new HDD in there for proxmox itself though.

deleted@lemmy.world · 18 pts · 3y (16 replies)

It’s mildly infuriating tbh but I understand it’s hard to implement threading for some functions.

What actually infuriates me more is some AAA titles that specifically utilize 4 threads of my 3950x 32 threads cpu.

vext01@lemmy.sdf.org · 12 pts · 3y (10 replies)

Programming with threads is much harder than using a single thread.

First your workload has to be split up in such a way that it can be distributed. That's not always possible.

The you gotta insert "synchronisation" to avoid a whole class of concurrency issues.

Hence programmers always default to a single thread unless really needed.

shadowbert@kbin.social · 7 pts · 3y (3 replies)

Of course - I get that. I'm a programmer myself.

But it does have to be said that there's little excuse for not doing it anymore for heavy applications, especially games. The tools/frameworks/engines have vastly improved, and people know (at least roughly) ahead of time what work is going to slog the CPU, especially in the case of a AAA studio.

Note: I'm only referring to relatively modern games here - anything that's older than when multithread really took off gets an automatic pass - it's not reasonable to expect someone to cater for a situation that doesn't exist yet.

vext01@lemmy.sdf.org · 5 pts · 3y

Tend to agree that these massive studios should have the resources.

douglasg14b@lemmy.world · 1 pts · 3y (1 reply)

there's little excuse for not doing it anymore for heavy applications, especially games

.... Wut. You chose one of the best examples of where multi-threaded workloads are extremely difficult and often impractical as your example of where it should definitely be used...? 🤦

Games are where it's the most difficult, nevermind enterprise workloads that can be multi-threaded on paper, while games can often not even make that work in theory. Game workloads are incredibly, almost insurmountably, difficult to multi-threaded for most teams and studios.

Not just from a technical standpoint but from a practical standpoint as well as you are significantly increasing the surface area for software defects, full of pitfalls and gotchas. Sure you can multi-thread your workload but now it actually runs slower than it would have if you never did this at all due to increased resource usage as a result of synchronization...etc

Games like factorio are rarities, where the developers had both a small game and scope, and all the time and resources they needed to produce multi-threaded solutions to their workloads. Engines like unity have ECS, which has limitations of use and comes with extra asterisks. But outside that and a few other examples actual multi-threading is a massive undertakings that may actually mean your Game cannot be delivered.

shadowbert@kbin.social · 2 pts · 3y

Difficult, yes. Impractical? Absolutely not, at least with some planning ahead. It's not trivial (and I never said it was) but it's getting both easier and more important every year.

bouh@lemmy.world · 6 pts · 3y

Programmers mostly don't know how to make multithread programs.

deleted@lemmy.world · 3 pts · 3y (4 replies)

I’m programmer myself and I understand that it’s not simple even though you can use blocking or protected collections.

I’m referring to a situation where the programmer made a function multithreaded but hard coded creating only 4 threads “to fully utilize a 4 core cpu”

agressivelyPassive@feddit.de · 6 pts · 3y (3 replies)

Multithreading in games is much more difficult because you not only have to make sure, everything is synchronized, but also that everything finishes in time. It's a bit like a RTOS in that regard. Using a known and fixed amount of threads can be a sane choice.

xtremeownage@lemmyonline.com · 1 pts · 3y (1 reply)

Yup, glad someone else understands that one.

Not much of a game developer myself- but, yea, I understand the challenges of multithreading, especially around the main loop.

If you want to learn something interesting, check out a few videos on the PS2 architecture, and the challenges around optimizing games for it. Its, very interesting.

https://www.youtube.com/watch?v=IRv_xKS4q7o

Oh, and the PS3 wasn't any better. (Worse in ways..)

https://www.youtube.com/watch?v=zW3XawAsaeU

PipedLinkBot@feddit.rocks · 2 pts · 3y

Here is an alternative Piped link(s): https://piped.video/watch?v=IRv_xKS4q7o

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I'm open-source, check me out at GitHub.

bouh@lemmy.world · 0 pts · 3y

Not always true. Not for all games. And multiplayer games already have multithreading in some way.

xtremeownage@lemmyonline.com · 3 pts · 3y

I know your pain. Although, my gaming PC is only rocking a Ryzen 7 5800x. Not, nearly as many threads... but, there are a ton of games which are only using a small fraction of the available CPU.

If I recall, Assassins' creed was pretty bad about it.... Minecraft (Especially modded) was horribly single threaded. And- more.

shadowbert@kbin.social · 3 pts · 3y (3 replies)

Heh. Classic case of being able to market your product as being "multithreaded" because is uses 2 threads? :P

Dirk@lemmy.ml · 3 pts · 3y (2 replies)

"The garbage collector runs in a second thread! This means we're fully multithreaded now! Ship to customer and advertise multithreading!"

deleted@lemmy.world · 1 pts · 3y (1 reply)

No shit. You got garbage collection?

It’ll be sold out in beta aka test in production.

Dirk@lemmy.ml · 1 pts · 3y

test in production

One of the teams in the corporation I work for even develops in production.

navi@lemmy.tespia.org · 15 pts · 3y (1 reply)

Unraid appreciation comment!

xtremeownage@lemmyonline.com · 5 pts · 3y

It's hard not to like, it just works!

marcos@lemmy.world · 10 pts · 3y (3 replies)

Nah, with just 8% of CPU load, you can't possibly have a CPU bottleneck...

xtremeownage@lemmyonline.com · 2 pts · 3y (2 replies)

Oh, no bottleneck.

But, just found it interesting out of the 64 threads on this box.... there is typically one maxed out.

marcos@lemmy.world · 1 pts · 3y (1 reply)

Oh, I was just trying to make a joke. It's not a serious commentary.

xtremeownage@lemmyonline.com · 3 pts · 3y

Apologies then, its harder to sense sarcasm here on lemmy... when people are 100% serious about going around and vandalizing cars, because people have them.... (Not- joking...)

Ocelot@lemmies.world · 5 pts · 3y (3 replies)

Getting a coral TPU should massively improve that. Worth the $$ imo

xtremeownage@lemmyonline.com · 3 pts · 3y (2 replies)

I have two of them, in that case.

I have a lot of cameras, being recorded.

Ocelot@lemmies.world · 2 pts · 3y (1 reply)

Considering I have 8 HD cameras and my coral is barely breaking a sweat. wow.

Have you tried lowering the detection framerate?

xtremeownage@lemmyonline.com · 2 pts · 3y

Its not the detection process using CPU.

but, rather, gortc.

SubPrimeBadger@lemmynsfw.com · 2 pts · 3y (4 replies)

Xeon gang in the house. I picked up an HPE with an E5-2650 v4 on eBay with 64GB memory and some spinning disks for $180. Best investment I have made. It’s the z640 tower so pretty quiet and doesn’t need a rack. Core count has made my life a whole lot easier.

xtremeownage@lemmyonline.com · 2 pts · 3y (3 replies)

My only complaint, when I doubled my ram from 128g to 256g of ddr4... it added another 100w of power usage. :-(

shadowbert@kbin.social · 3 pts · 3y (2 replies)

Surely there's no way that's just the ram... did you also double your workload or something?

wax@lemmy.world · 2 pts · 3y

A possible explanation is that the new ram sticks requires another memory channel to be active

xtremeownage@lemmyonline.com · 2 pts · 3y

Every ddr4 ram module (8g of ram), uses around 3w. I have 256g of it.

That is 32 modules * 3 = 96 watts.

From Crucial: https://www.crucial.com/support/articles-faq-memory/how-much-power-does-memory-use#:~:text=As%20a%20rule%20of%20thumb,the%20voltage%20beyond%20XMP%20settings.

This is also ECC server ram, might be safe to say, it takes a bit more too.