Page 1 of 2
Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 21:51
by Caydr
AMD is upping the ante to 6, and shortly after, 12 cores per CPU... starting this summer iirc. Intel won't be far behind, if behind at all. There's talk of 64-core processors within 5 years in the rumor mill. When the processor-related calculations are the #1 thing holding Spring back, and you've got 5, then 11, then 63 other cores completely idle save for OS-related things, you need to refocus your priorities away from "it would be nice if..." things to "give the average person a higher framerate than they get in Crysis".
I've amply demonstrated in the past that the GPU is basically idle compared to all the work the one poor core does. GEM betas get the same framerates as AA, despite a hundredfold increase in both geometric and texture detail, and this remains the same even as you reach the 500-unit level. And it's not as if this is all because I've got some godlike computer - my GPU is roughly on a par with other, more modern GPUs, which cost less than $200.
I'm totally confident there are ways of offloading things onto other cores that haven't been explored, besides just rewriting the engine from scratch and other doomsday scenarios certain devs tell us are coming if we want more modern code. We're adding more and more "extras" to the code, which is just increasing the eventual difficulty of the process of making the game multi-processor compatible.
It's going to be ugly no matter how we look at it, but it's going to be a lot uglier come 5 years from now when we've got CPUs sitting 98.4% idle and the game still running at 15 FPS or something if you try to move more than a few units at a time.
We're at a state now where no matter what upgrades you buy, and regardless of how much money you spend, Spring cannot run faster. The entire game is held back by the CPU, and CPUs don't seem to be getting faster, they're just getting more cores.
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:01
by Gnomre
Excellent job reading the development forum
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:09
by Caydr
I do not read the dev forum on a daily basis, so I can only go by what I see happening there at this moment, and the direction the engine has been heading over the course of the last year or so.

Moreover, upon checking the changelog - which, as I understood it, was designed for logging changes - there has been nothing done in this direction since the last version was put up:
http://spring.clan-sy.com/websvn/filede ... rev=0&sc=0
I have only my eyes to guide me and I do not, at this moment, see anything which is readily-apparent to do with multithreaded development. Of course, it would have to be readily apparent because I am a talentless hack. As I do not wish to intrude upon intelligent discussion, I posted here rather than the development area. I do not know the jargon of this sort of thing, so I do apologize if I've wasted your time by forcing you to read my thread, especially as I have posted it in this den of trusted knowledge and intelligent debate.
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:20
by SinbadEV
What Caydr Said minus the drama +1
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:21
by tombom
SMP = multi threading
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:22
by lurker
Also, look at the actual commit log and you'll see a branch dedicated to mulitithreading.
I am looking forward to these 128 core processors.
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:28
by Caydr
I do get dramatic sometimes, don't I. I feel frustration when people reply to long, thoughtful posts with a single line of incorrect and unhelpful text.
"Commit log" is too complex for my feeble, chimpanzee-like brain. I am but a layman, and not a very bright one at that. Were I a tool, I would probably be a hammer, a blunt instrument only good for nailing. Do we no longer use the changelog?
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:43
by rattle
For public releases, yes.
Re: Multi-threaded Spring needs more priority
Posted: 19 Apr 2008, 22:54
by Caydr
If it is only for public releases, why does the changelog currently contain some changes for the next version? Not saying you're wrong, but it's very misleading for something so important to only be used *sometimes*. I thought the devs would either use it or not use it, not somewhere in-between.
Historically the changelog has been updated as progress is made... many of you perhaps weren't around back then, but I relied on it to allow me to have AA use the latest features immediately after a new release was made, sometimes even having features built-in to a release which the engine wouldn't recognize until the new version was out.
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 00:32
by rattle
You're welcome to help keeping the changelog up-to-date, or tricking someone literate into doing it with false promises/free candy etc.
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 00:52
by REVENGE
It seems that this is being actively worked on in the dev forum, though I wonder how many devs actually continue to work on Spring engine code in the first place...

Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 01:34
by FLOZi
Once again, Caydr proves his incredible intelligence.
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 01:37
by Caydr
"Multi-threaded Spring needs more priority"
not
"Multi-threaded Spring needs to be started"
Once again, FLOZi proves his incredible intelligence.
(note that my starting post has not been edited in hours, so no, I didn't change it)
Yes, "Multi-threaded Spring needs more priority" is the topic title, and that's what it's about. Needing more priority. It could have half the dev team working on it, it could have 1 person working on it, but in my view, as I have not seen any visible evidence that progress is being made since it was initially discussed quite a long time ago, I believe it needs to be a higher priority. After asking several of my MSN contacts if they had heard anything recently about it, and periodically checking the dev forum, this is the conclusion I came to.
REGARDLESS of whether it's being worked on, my point is it needs to be considered a priority, a "Blocker" issue, something that must not be forgotten in the way that things like the UI, useless/broken tags, and a dozen other things have been left behind.
Don't say that just because I'm not omniscient I'm dumb. There is no timeline or roadmap for this project - THAT I CAN EASILY FIND - so it might as well not exist even if it does. How am I supposed to know that something's being actively worked on if the only people who know are the ones that are "on the inside"? There's no "here's what's going on", no "here's what's happening in the next version", no "here's what we want to do in the future", no "here's the sort of people we're looking for". How can we attract developers and expand as a community if there's no way of knowing what's going on?
Just where the heck do you think this project is going if the only way to know what's happening tomorrow is based on whether or not some random developer decides he wants to do something or not? Where do you see us in a year if the only things that get worked on are things people think would be nice? People show up and say, "hey look at this thing I made". That's nice, and a lot of cool stuff has come to Spring that way, but would it not be more constructive if that effort was directed at something that's an actual need, not a want?
Do you get what I'm saying here or is this going to be fodder for another cheap "caydr's dumb" joke anyone could come up with? "let's ignore his ideas because they are inherently inferior, he let his mod go to shit lol" Is it going to be fart jokes next? Is this really the best you can come up with in a thread about a serious topic like this? How can there be anything but unanimous agreement on something like this?
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 03:33
by [Krogoth86]
Well I support the request for more changes on the actual performance. I would take another step though:
It shouldn't be just about multi-threading but if you're at it you might want to rethink certain parts. With that said - yeah you could give the particle effects an own thread but it would make much more sense to make them calculated by the GPU in the first place. So go ahead and make what I think Argh was talking about in another thread and that is do a new, alternative particle (etc.) system which uses the GPU. Would be wonderful if the recent CEGs could be converted somehow but if not then not. It's just about getting more modern and not continuing to build on top of a tech-standard from 1997...
That way features like Keyframe / Bones Animation & stuff (all GPU calculated) should make it into Spring as I think things like that are pretty important features especially when not looking at TA-like mods with big Mechs & Tanks running around but at things with organic units (not only would more complex animations just not look good but also creating them is a pain with the current system)...
I'm glad to see at least some small steps in that direction being taken like zervers SMP approaches and that integration of the Horde3D renderer (although I don't know if that's still being developed)...
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 06:56
by Ixoran
Caydr is DUMB!
Kidding, But man, Multithreading started a month ago almost, and I caught the thread in like two days.
They gave it a SVn branch... and everything.
It's even slated for .78 I think...
You can even test it.
The problem is, A lot of the engine screams "DON'T FREAKING THREAD ME! I'LL REBEL AND CRASH UP EVERYTHING" So devoting half the team (Especially when not everyone on the team may even know how to thread) is a waste.... I mean, I'd rather have one person working on it, and the rest of the team fixing everything else.
Zerver seems to know what he's doing, the Dev team is helping him a good deal, and he' s making quick progress.
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 07:27
by SwiftSpear
Spring doesn't really have the luxury of forcing developers to do stuff for us. We can call something "priority" but that doesn't actually make any developer start working on it.
As Ixoran stated. It's not an issue of man power. It's really an issue of expertise. Coders take projects based on how well they can complete them. We have someone working on SMP right now, and they are doing a good job... and while I'd love to have a bigger team working on it, it's simply not reasonable to try to make people with a poor understanding of threading stop working on things they actually can contribute to the project, and enjoy doing, so they can beat their head against a brick wall doing something they don't understand.
That's why this project has wish lists instead of roadmaps.
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 15:59
by Caydr
Have you considered making a "Jobs" page? Someone who comes here isn't going to know "SMP" means "multi-threaded spring project", for instance, so they might not know that their expertise is needed. I think the engine development in general needs a lot more transparency in that way... Even if you're only going to have wish lists, they should be more easily visible, not buried in a thread somewhere.
rattle wrote:You're welcome to help keeping the changelog up-to-date, or tricking someone literate into doing it with false promises/free candy etc.
I just might be willing to do that soon. I've been nagging for the weekend shift for the last 6 months, and my benefactors tell me the day is close at hand.

Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 18:24
by lurker
Ixoran wrote:It's even slated for .78 I think...
That has so little meaning I heartily approve!
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 21:01
by Felix the Cat
Caydr wrote: Someone who comes here isn't going to know "SMP" means "multi-threaded spring project", for instance, so they might not know that their expertise is needed.
If you don't know that "SMP" = "multi-threading", then your expertise is probably not needed in that department.
Re: Multi-threaded Spring needs more priority
Posted: 20 Apr 2008, 21:41
by imbaczek
Well IMHO if you don't know that SMP==multithreading, you aren't qualified to do either. Converse is not true.