10 ms·
The Moore's Law free lunch is over. Now welcome to the hardware jungle.
- duggan 15y ago"But that’s pretty much it – we currently know of no other major ways to exploit Moore’s Law for compute performance, and once these veins are exhausted it will be largely mined out." This is an awfully big post on Moore's Law not to include any mention of memristors* [1] http://www.hpl.hp.com/news/2010/apr-jun/memristor.html http://www.hpl.hp.com/news/2010/apr-jun/memristor.html
- sliverstorm 15y agoThe man is discussing paradigm shifts. While memristors will be pretty awesome if they ever come online in commercial production, I'm not aware of any major paradigm shifts they will cause (or prevent)...?
- duggan 15y agoI've only a casual interest in the area, but these are some things I read around the time of the announcement: "Memristive devices could change the standard paradigm of computing by enabling calculations to be performed in the chips where data is stored rather than in a specialized central processing unit. Thus, we anticipate the ability to make more compact and power-efficient computing systems well into the future, even after it is no longer possible to make transistors smaller via the traditional Moore’s Law approach." – R. Stanley Williams, senior fellow and director, Information and Quantum Systems Lab, HP "Since our brains are made of memristors, the flood gate is now open for commercialization of computers that would compute like human brains, which is totally different from the von Neumann architecture underpinning all digital computers." – Leon Chua, professor, Electrical Engineering and Computer Sciences Department, University of California at Berkeley. http://www.hp.com/hpinfo/newsroom/press/2010/100408xa.html http://www.hp.com/hpinfo/newsroom/press/2010/100408xa.html It just seems odd to go into such depth on transistor density and CPU/memory architectures (and potential future architectures) without mentioning memristors. I agree that utilization of cloud resources will be an increasingly fundamental component of modern device architecture, but - at the risk of sounding hyperbolic - if memristors live up to the promise, we're talking about supercomputers the size of the human brain* [1] http://www.physorg.com/news190483253.html http://www.physorg.com/news190483253.html
- SideburnsOfDoom 15y ago> memristors will be pretty awesome if they ever come online in commercial production It won't take long to find out. They're expected out next year: "2013 The first products using memristor technology are expected to become available." http://en.wikipedia.org/wiki/Memristor#Historical_timeline http://en.wikipedia.org/wiki/Memristor#Historical_timeline
- akg 15y agoHas anyone looked at lock-free data structures and algorithms in projects with large amounts of concurrency? The approach looks promising but it's unclear how practical it is.
- duggan 15y agoI think for tackling a subset of these problems (well, circumventing them) ZeroMQ is generating a good deal of interest. http://www.zeromq.org http://www.zeromq.org http://www.zeromq.org/blog:multithreading-magic http://www.zeromq.org/blog:multithreading-magic
- plainOldText 15y agoI was thinking about the same thing. My view is: building applications on top of heterogeneous nodes (in the cloud) and then coupling them all together via ZeroMQ.
- LearnYouALisp 15y agoIs this related to sacrificing numerical accuracy for more operations per second? That sounds like a good idea for some things.
- queensnake 15y agoNo, (http://en.wikipedia.org/wiki/Lock-free http://en.wikipedia.org/wiki/Lock-free) it's using different data structures and algorithms and new-to-C++ (or the applicable assemblies), really low-level operations /to avoid locking at all/. (To avoid threads blocking, not the overhead of the locks themselves.)
- ZephyrP 15y ago"For over a decade prophets have voiced the contention that the organization of a single computer has reached its limits and that truly significant advances can be made only by interconnection of a multiplicity of computers in such a manner as to permit cooperative solution." This now pithy statement was written by the famous Gene Amdahl in the year 1968; A time when computers ran at speeds that are dwarfed by today's digital clocks, but also it gives us insight into a time when people were still dealing with the same problems that we deal with today in developing faster and faster CPUs. The truth of statement may be something that functionalism or parallelism advocates don't want to hear - the so called Parallelism Revolution will never come, at least not in it's current incarnation. The end of serial advancement, and thus the parallelization revolution was "supposed" to happen in the 80s, and despite the considerable advances in methodologies of parallelization, it did not come. The 90s brought us standards and technologies like MPI which standardized procedures in developing cooperative computing solutions, but still, it did not come. The 2000s sought to simplify the very act of programming by reappropriating the ideas of programming back to the realm of pure mathematics - by representing programs as a mathematical description of time and work itself, with languages like Haskell and ML we sought to build machines which model math, and thus, the parallel nature of computation within universe itself. I feel it myself, the sublime glitter of gold that is locked in the idea of parallel computation - It is irresistible for a curious individual. To feel as if all the power of the world is in your hands in this moment (as opposed to 20 years from now), to wipe away the frailty that underlies all of computation today; We all would like to be able to lift a trillion billion bytes into the heavens. Theres only two problems. The first problem lies squarely within our own human inadequacies, and it could be argued that this is where parallelism fails deepest. It is certainly true that parallelization is complex, but like all things, abstractions of complexity are nessasary, and designing the abstractions in such a way they are understandable to 'mere mortals' is a greatly undervalued aspect of technology today. So, I would posit as a result of insufficient desire to establish simplified abstractions of parallelization, to most programmers, ideas like parallelism remains in the domain of machine learning and condensed solids analysis - A kind of electronic black art, only used by those with sufficient training to know what horrors they may wrought upon the world if they're to make some trivial programming mistake. As a result (ceteris paribus!) serial power will always be valued greater than parallel computational capacity, which many have claimed to be the predominant driver of commercial development of scientific ideas. The second problem is more controversial, but I think time will prove it so -- Computer have managed and will continue to manage getting faster at an alarming rate. Regardless of our preconceptions about the mechanics of computation, I believe it is reasonable to say that computers will continue to get faster at exponential rates, even after the so called quantum limits of computation come into play. This is reasonable for the same reason the Normal distribution manifests itself in disparate natural phenomenon - Central Limit Theorem. Sutter himself admits that people have been using the exact same logic to claim the beginning of the end for the past 60-70 years (Before 'real' computers even), I fail to see where he justifies his reasoning after giving this enlightened point.
- wglb 15y agoI would ten to agree with Knuth's suggestion that multicore stuff and the "hardware jungle" is a symptom of a lack of imagination on the part of hardware designers.
- rbanffy 15y agoAs a hardware engineer myself, I must agree. We have only explored a tiny subset of all possible configurations with our computer designs, held back, perhaps, by the need to be binary-compatible with a hardware/software architecture that was obsolete in the mid 80's. It's time to do better.
- sounds 15y agoArm seems to do better than Intel. Perhaps an FPGA (using the term more broadly to include any field-reprogrammable logic array) can become more competitive performance/watt?
- jgw 15y agoThat can't really happen. FPGAs are just programmable ASICs. (Also, I'm not sure if you're suggesting that ARM cores are by their nature field-programmable. They're not, they're just IP cores that can be integrated into larger designs).
- Kliment 15y agoI think sounds is saying that a runtime-reconfigurable processor could be the next step forward, adapting itself to whatever task it has to do. I don't see much promise for speed improvements from this, but it is a cool idea.
- rbanffy 15y agoI am not talking about x86 vs. ARM. I am talking about computers that don't have CPUs connected through a bus to a single memory space. Someone else in this discussion mentioned the idea of fusing memristor memory with processing engines within the memory itself. That's the embryo of a very interesting idea - imagine hardware assisted memory deduplication, just to start.
- JoshTriplett 15y agoMoore's Law says absolutely nothing about performance, as this article repeatedly implies. Moore's Law says that the number of transistors in an integrated circuit would double every two years, and that has fairly consistently held true and continues to do so. For years, those transistors went into increasing CPU speed. Now, additional transistors go into building more CPU cores, or more execution units. Either way, Moore's Law still holds.
- cobbal 15y agoIndeed, and Wolfram Alpha is more than happy to plot it for you: http://www.wolframalpha.com/input/?i=moores%20law http://www.wolframalpha.com/input/?i=moores%20law
- gamble 15y agoThis is technically true, but it happens that clock speeds and MIPs have also increased at a geometric rate over long periods of time. It's a bit harder to characterize because processor architecture changes have a discontinuous effect, but on average MIPs doubled every 36 months. [1] [1] http://www.meaningprocessing.com/personalPages/tuomi/articles/TheLivesAndTheDeathOfMoore.pdf http://www.meaningprocessing.com/personalPages/tuomi/article...
- waitwhat 15y agoExcept that isn't Moore's Law.
- joe_the_user 15y agoNo it's not but it is what people have often taken as one of the main effects of Moore's law and it is the phenomena the implications of who's end the article is discussing. And those implications are important even if they aren't directly related to Moore's law.
- JoshTriplett 15y agoThe regular doubling of clock speed ended years ago, around the time of the Pentium 4. (The paper you cited appeared in 2002.) In any case, Moore's Law never said anything about clock speed; that just became a popular misinterpretation.
- ars 15y agoA common misconception: Moore's law says nothing about the speed of a CPU! It talks about how many transistors there are on a chip. So Moore's law is not ending and has not changed (so far).
- mark-r 15y agoNaturally there are always applications that can use more raw power, but the article focuses on those segments and I think that's misguided. The real growth powered by Moore's Law in the immediate future will be processors that are lower power and cheaper, not faster. The success of the iPad has proven that faster processors are not what the public is clamoring for right now. Mainstream tasks really hit diminishing returns after two cores. Not that processors won't get faster, just that the transistor budget won't get used to that end exclusively.
- jiggy2011 15y agoTrue, another factor is that we can now offload more stuff to "the cloud" which is especially useful on handhelds. As we get better connectivity everywhere it might be that we actually see a regression in performance (or at least staying static) on many mobile devices in exchange for better battery life.
- mark-r 15y agoI'm pessimistic for the future of the cloud on mobile devices, because we'll reach a bandwith limit. As the frequencies fill up the pipes are going to get more sluggish over time, unlike the trends we see in other tech sectors.
- artsrc 15y agoWhat will drive performance is human ingenuity and innovation. How can we tell if the slower rate of performance increase has more to do with decreased marginal utility, rather than physical limits. Computers can now using lower power and laptops can run for up to 10 hours without a charge. Rather than investing silicon in technologies that make things harder, perhaps we can improve performance by making them easier. Maybe computers can be more garbage collection friendly, run high level languages at full speed etc. Perhaps the pendulum needs to swing towards Lisp machine type architectures.
- nickik 15y agoGetting away from x86 would be a start :) Azul is basiclly a modern lisp (well java ahh) maschine but its kind of the same. There is an awesome discussion between Cliff Click from Azul and Dave Moon (one of the guys who worked on the lisp maschine). http://www.azulsystems.com/blog/cliff/2008-11-18-brief-conversation-david-moon http://www.azulsystems.com/blog/cliff/2008-11-18-brief-conve... Another direction we should go in is security, we should have a trusted computingbase. Some awesome stuff done by DARPA: http://www.crash-safe.org/papers http://www.crash-safe.org/papers (one of the lisp maschine guys, is working there too) This would allow developer to focus more on alorithems and speed. That all said we still have do deal with the multicore problem :)
- GigabyteCoin 15y agoA very well put writeup. Bravo. By the second paragraph I felt informed and eager to keep reading. Thank you.
- wladimir 15y agoYes it is a very thought-provoking article, similar his "the free lunch is over" in 2005. The upcoming jungle sounds like a great adventure. Many interesting challenges ahead. Though it's very, very hard to get rid of the sequential mindset, we'll really have to think in new ways.
- GigabyteCoin 15y agoIt's a good thing us humans like to think ;)
- ChuckMcM 15y agoSigh. There is a huge elephant in this room, it was the beast of Christmas past. Specifically, for years Microsoft colluded with Intel to make systems which consumed more memory and CPU power such that an 'upgrade' cycle would be required. Have you ever wondered how a machine which is less than 1/100th the speed of the machine on your desk computed the bills, interest, and statements for millions of credit card users. The IBM 370 that computed and printed those statements for MasterCard back in the late 70's had a whole lot of I/O channels. I would love to see it get relevant again that one consider that the computer they were targeting would be roughly the same speed and that all of their 'features' had to be implemented with no loss of speed of the overall system. There is a lot of room for optimization, nobody has seriously attacked that problem yet, no one has needed to because people who optimized were left in the dust by people who could assume the next generation of machines would be fast enough to make bloated code good enough. We haven't done anything though about Amdahl's law, and of course the thing that gives us parallelism is an interconnect between compute nexii (nexuses?). I was hoping there would be some insights along those lines in the article but I was disappointed.
- dredmorbius 15y agoThese days, the collusion is between Intel/ARM and Mozilla / Google Chrome. I've got a closet full of ancient hardware (well, a vast underground chamber, but we'll stick to PC hardware of the past decade or two), most of which should still run a Linux kernel and, with a threshhold of somewhere between 16 an 96 MB, bootstrap a Debian installation. For basic command-line utilities, they're fine, and even a few graphical programs. But truth is that your computer is doing much, much more, at least in terms of system demands, than it did 10 or 20 years ago. This doesn't translate to prodigious amounts of end-user productivity necessarily, but it does suck cycles and RAM (and on handhelds: battery life). Which reminds me that a lot of the interesting stuff in terms of efficiency is happening in the mobile space. Form factors, weight, and battery size and weight are all highly constrained, so efficiency gains in both hardware and software are critically important. Back to that desktop/laptop increasing complexity: I see this as having a fractal nature -- as hardware capabilities increase, there are multiple dimensions of increasing demand complexity, very much as you'd render a fractal and, for a huge increase in the amount of computation, see only a slight refinement of the pattern. Systems of yesteryear did what they did by keeping the tasks simple, and extraneous processing to an absolute minimum. Ask anyone who's waited an afternoon for a few precious seconds of CPU on a highly overtasked mainframe what their opinion of that experience is. These days, to a fair approximation, throwing more hardware at a problem isn't a bad first approximation -- it's cheaper than programmer time, and, well, if it doesn't work, hardware is fungible (especially in the cloud): time for plan B, work smarter.
- Devilboy 15y agoPeople have been warning developers to 'get ready for multithreading' for at least a decade and somehow everything is mostly the same. Mostly because of abstractions (e.g. on GPUs) and also because the USERS of our software are ALSO getting parallelised! So we're back to one thread for one user, since most of the time you really don't want to do loads of work for one user request. Cases where parallelism matters (graphics, data stores, query engines) are already pretty solid on multithreading anyway. Meh.
- wladimir 15y agosomehow everything is mostly the same Because it's really hard to let go of the "cosy" single-threaded, sequential model. I expect there will always be a place for it, as it gives important guarantees. Just like mainframes still exist (the article mentions this too - "different parts of even the same application naturally want to run on different kinds of cores"). Also, it may be that the free lunch is extended with graphene or other radically different semiconductor technology (except for quantum computing as it will also need a complete rethinking of software). Heterogeneous, parallel computing exists in addition to the sequential model and won't replace it. I do expect cases where parallelism matters to grow as AI (voice recognition, human language recognition, driverless cars, etc) becomes more prevalent.
- loup-vaillant 15y ago> Note that the word “smartphone” is already a major misnomer, because a pocket device that can run apps is not primarily a phone at all. It’s primarily a general-purpose personal computer that happens to have a couple of built-in radios for cell and WiFi service […] I love this. It explains both why locking down your customers' iPhones is evil (assuming it is Wrong™ to sever freedom 0 from a computer), and why people accept it (somehow they act as if it is not a "real" computer).
- etaty 15y agoIs Hacker News broken? http://www.hnsearch.com/search#request/submissions&q=herbsutter.com&sortby=create_ts+desc&start=0 http://www.hnsearch.com/search#request/submissions&q=her... Since when the same url can be used for many stories?