Asking a program to look at the compiled program (or even the source code) and do this for you relies on the same lack of understanding as asking someone "Why won't the computer do what I want?" - the computer never does what you want, only what you tell it to. Even the different parts of DF's code that could be run in parallel currently are not and will interface in ways that no program can magically figure out for you.
I think this is an oversimplification, if I'm remembering my Op Sys class correctly, which I'm not at all sure of.
Actually, he's pretty close. It is extremely difficult to figure out
programmatically what code is serial (requires the results of previous code) and what code can be safely parallelized. A person can look at it and go "this, right here--this can be parallelized easily", but the heuristics to make a computer do so...not so much. There are techniques to do it, but (there be a pattern here!) they invariably require the source code.
(A pet interest of mine is compiler design, so I've been exposed to an unhealthy amount about this stuff.
)
Splitting the processes DF does (if that is even necessary) might require access to code that has not previously been available to players, and we may need Toady's help. If that is so, then let's go there with it.
The point of this is to enable DF to utilize our computers' true potential without the need to rewrite the whole program. A program-specific emulator. Not a universal tool.
It seems obvious to me that I have already stated the possible need for access to the source code. You're right, I don't know a lot about what I am proposing. From what you say, access or at the very least close cooperation would be absolutely necessary. So be it, if this is in any way feasible with the source code then let's ask for it. If it's not possible either way then sure I'll forget it. But let's not dismiss it out of hand based on things that may or may not be the case (Toady/Threetoe never agreeing to such a thing).
I was actually looking for something to interpret the processes and feed DF information that it would normally need to manually cycle through. Not work the whole program on a multi-thread base. But most likely this would require non-existant output and non-existant input options. Outsourcing just the stocks database, causing DF to feed the info to a separate process and retrieve it from said process would cut the load tremendously, would it not?
DF can sequentially request info from the program rather than calculating it itself as it does now. The "emulator" would just be an interface. I do realize now that it might be the wrong term for such a program, but I dont' know a better one. The emulator would cause DF to believe xy was happening, when in fact z was performing the functions of xy separately. The same could be done with pathing, but that would be insanely problematic and likely to produce a headache just contemplating, but those are the two major drags besides job priority checks. Allowing us to set our own job priorities for dwarves and groups would probably cut lag in large forts by a ton as well. This problem could be circumvented by outsourcing the Jobs menu and feature to a separate program.
As I'm looking at it now, it definitely requires full cooperation from Toady. One thing it does not require is a rewrite of the program.
Really. Where are the credentials you're bringing to the table that say you know this? Do you tell your mechanic that no, he's wrong, just throw an extra set of wheels on it and it'll go faster? Because that's pretty much what you're doing here.
I've built monolithic single-threaded applications before and, uh,
none of it's even remotely done this way, ever. The information-service architecture you're trying to suggest would almost certainly require even
more restructuring than just manually parallelizing what's already there! Don't conflate this with stuff like the DF pathing library--that is being developed in a vacuum in hopes that Toady can later on integrate it
himself (and they're doing fine work, I love reading that thread--I haven't posted there because algorithm grinding isn't my specialty, I don't have the head for it).
...No. Just...no
This isn't TVtropes, around here were support our ideas.
Really? You do? You, specifically, do? I couldn't tell from your half-redigested repetition of something that wasn't even relevant!
I'm not derailing this thread to indulge you and I won't reply to any silly attempts by you to rationalize what you said, but let's just go over this quickly. Vista "failed"--if an operating system that sold eight bajillion copies could be said to "fail"--because they put "ready for Vista" stickers on computers everyone knew weren't ready for it and, in doing so, poisoned the brand in the mind of Joe Public. It had nothing to do with diminishing performance returns from processor research. This is not the thread to debate this, so kindly don't. Just stop. Go make a "I think Vista failed because processors aren't getting faster no more!" thread if you really feel the need. Make sure you figure out why Win7 is a ridiculous success at the same time when it's pretty much Vista SP3, though.
And yes, I would say that Blacken's impatient tone of superiority is irritating. It would be nice to see some reasonable and well-thought, well-supported, well-written responses.
Then ask reasonable and well-thought, well-supported, well-written
questions. You aren't dude. I can't be blamed for calling silliness what it is.
I asked for help and information, and got a smart-ass, "I'm tired of dealing with ignorant people" response. About half of what was said didn't even apply to my comments, but seemed more of a generic response to past irritations Blacken has experienced when dealing with irrational and ignorant people who demand the impossible.
With all due respect, I don't think you have the knowledge to determine what is relevant to your comments.
Look at everything that's been posted in this thread. I'm sorry that using blunt sentences isn't something you like, but everything I've said has been true. You are asking for what essentially amounts to the impossible. It sucks, everybody gets egg on their face once in a while--I'm sorry that your in-theory-great idea is practically not possible,
but it isn't.
If we want reasonable and well-thought, well-supported, well-written responses: you start. Find some sources that suggest what you're talking about is even
possible. Do some research before insisting that I'm wrong--you're asserting a positive, the burden of proof is on
you.
I'll wait.