The post isn't supposed to be about some cataclysmic change to the current programming meta, unless you would class the introduction of structured programming and object-orientated programming as cataclysmic changes. AFAIK there is no wiki anywhere with information on it: it's naturally occurred (along with 2 other techniques for creating fine-grained parallelism) within a code base I have been working on. It's also not new: the technique is used anywhere that asynchronous code is forced upon the programmer (usually because of "physics"). But saying that, I have never seen any references to any form of structured multi-threading with the exception of "See, we functional guys have it right: DON'T MUTATE YOUR DATA" within the user-level coding community.shadetheartist wrote:You say that this "clock based multi-threading" design pattern is undiscovered by the the subscribers of popular programming culture. Is that true? If so, is this post a revealing of cataclysmic changes to the meta of software as we know it? Or is there a backwater wiki page somewhere you're referencing.
I believe this is an inevitability. The thing to remember is that Moore's law in the form of "the number of transistors that can be put into a device at the lowest cost per transistor increases exponentially with time" is still holding and will continue to hold for the foreseeable future, not because the size of the transistors will shrink but because other processes will get better. We don't have much wiggle room on transistor size any more (I think they are about 70 atoms wide IIRC) but we have a massive amount of room to move on power consumption. If we enable our applications to decentralise their processing requirements by running concurrently on 20,000+ cores then we may open up new avenues for chip designers to create more usable FLOPS for us.shadetheartist wrote:Your argument comparing 90's game programming where "the code's fine, your computer is crap" to a prediction of the future of development has sparked my curiosity. It seems like if one wants to get a foot in the door to development jobs in the future one might want to consider your view on parallelism.