What’s the “best” computer? By what criteria should a computer be judged? Best for what? Is it the fastest? Or the easiest to use? Or the most useful?
The most honest answer is probably the most useful, or impactful computer in how I live my life or work, so I’ll answer in that vein.
Have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.
― Steve Jobs
Details matter, it’s worth waiting to get it right.
― Steve Jobs
If I had to answer honestly, it’s probably the latest computer I bought, my new iPhone
6. It’s an absolute marvel. It is easy to use and useful all at once. I have a vast array of applications to use, plus I can communicate with the entire World and access an entire World’s worth of information. I can access maps, find a place to eat lunch, take notes, access notes, find out the answer to questions, keep up with friends, and make new ones. It also allows me to listen to music either stored or via “radio”. It is so good that I am rarely without it. It helps me work out at the gym with an interval timer that I can program to develop unique tailored workouts. Anything that links to the “cloud” for data is even better because the data on the iPhone is the same as other platforms I use. The productivity and efficiency that I can work with is now simply stunning. The word awesome doesn’t quite do it justice. If you gave it to
me ten years ago, I’d have thought aliens delivered the technology to humans.
We don’t get a chance to do that many things, and every one should be really excellent. Because this is our life.
― Steve Jobs
The fastest computer I have access to isn’t very good, or useful. It is just fast and really hard to use. In all honesty it is a complete horror show. For the most part this really fast computer is only good for crunching a lot of numbers in a terribly inefficient manner. It isn’t merely not a multi-purpose computer; it is single purpose computer that is quite poor at delivering that single purpose. Except for its speed it compares poorly to the supercomputers I used over 20 years ago. I say this noting that I am not prone to nostalgia at all. Generally I favor the modern over the past by a wide margin. This makes the assessment of modern supercomputing all the more damning.
Don’t be trapped by dogma — which is living with the results of other people’s thinking.
― Steve Jobs
Your time is limited, so don’t waste it living someone else’s life.
― Steve Jobs
Unlike the iPhone with its teeming modernity, the modern supercomputer is an ever more monstrous proposition with each passing year. Plans for future supercomputers are sure to create a new breed of monsters (think Godzilla, a good name for one of the machines!) that promise to consume energy like American consumers drunk on demonstrating their God-given right to excess. They also promise to be harder to use, less reliable, and nearly impossible to program. They might just be truly evil monsters in the making. The evil being done is primarily the loss of opportunity to make modeling and simulation match the hype.
Anything worth doing, is worth doing right.
― Hunter S. Thompson
It isn’t that the hyped vision of modeling and simulation as a third way for science is so flawed; it is our approach to achieving this vision that is so counter-productive. The vision is generally sound provided that the steps we took actually led to such an outcome. The overbearing emphasis on computing speed as the key path to producing a predictive modeling capability is fatally flawed. It is a path lacks the sort of checks and balances that science needs to succeed. A faulty model cannot predict reality regardless of how fast it executes on a computer, or how refined the computational “mesh” is. Algorithmic improvements can provide new applications, solve unsolved problems, and provide greater efficiency that pure computational speed cannot deliver.
It’s not like I’m all into nostalgia and history, it’s just that I can’t stand the way things are now
The current fastest computer certainly isn’t the best supercomputer ever built. That crown lies on the head of the Crays of the 70’s, 80’s and 90’s built by that genius Seymour Cray. In the form of the X-MP, Y-MP, C90 or Cray 2 the supercomputer reached its zenith. In relative terms these Crays were joys to use, and program. They were veritable iPhones compared to the rotary phones we produce today. At that time with an apex in functionality and utility for supercomputing massively parallel computing was born (i.e., the attack of the killer micros), and the measure of a supercomputer became speed above all else. Utility, and usefulness be damned. The fully integrated software-hardware solution found in a Cray Y-MP became a relic in the wake of the “need for speed”.
Study the past if you would define the future.
― Confucius
In a sense the modern trajectory of supercomputing is quintessentially American, bigger and faster is better by fiat. Excess and waste are virtues rather than flaw. Except the modern supercomputer it is not better, and not just because they don’t hold a candle to the old Crays. These computers just suck in so many ways; they are soulless and devoid of character. Moreover they are already a massive pain in the ass to use, and plans are afoot to make them even worse. The unrelenting priority of speed over utility is crushing. Terrible is the only path to speed, and terrible is coming with a tremendous cost too. When a colleague recently quipped that she would like to see us get a computer we actually wanted to use, I’m convinced that she had the older generation of Crays firmly in mind.
The future is already here – it’s just not evenly distributed.
― William Gibson
So, who are the geniuses that created this mess?
We have to go back to the mid-1990’s and the combination of computing and geopolitical issues that existed then. The path taken by the classic Cray supercomputers appeared to be running out of steam insofar as improving performance. The attack of the killer micros was defined as the path to continued growth in performance. Overall hardware functionality was effectively abandoned in favor of pure performance. The pure performance was only achieved in the case of benchmark problems that had little in common with actual applications. Performance on real application took a nosedive; a nosedive that the benchmark conveniently covered up. We still haven’t woken up to the reality.
Remembrance of things past is not necessarily the remembrance of things as they were.
― Marcel Proust
Geopolitically we saw the end of the Cold War including the cessation of nuclear

weapons’ testing. In the United Stated a program including high performance computing was sold as the alternative to nuclear testing (the ASCI program, now the ASC program). This program focused on computing power as the sole determinant of success. Every other aspect of computing became a veritable afterthought and was supported on a shoestring budget (modeling, methods, algorithms, and V&V). The result has been fast, unusable computers that deliver a pittance of their promised performance and a generation of codes with antiquated models and algorithms (written mostly in C++). We’ve been on this foolish path ever since to the extent that it’s become the politically correct and viable path going forward. We have lost a generation of potential scientific progress at the altar of this vacuous model for progress.
It shocks me how I wish for…what is lost and cannot come back.
― Sue Monk Kidd
Why do we choose this path when other more useful and rational approaches are available?
Risk aversion.
In the past forty some odd years we have as a society lost the ability to take risks even when the opportunity available is huge. The consequence of failure has become greater than the opportunity for success. In computing this trend has been powered by Moore’s law, the exponential growth in computing power over the course of the last 50 years (its not a law, just an observation). Under Moore’s law you just have to let time pass and computer performance will grow. It is a low-risk path to success.
When did the future switch from being a promise to being a threat?
― Chuck Palahniuk
Every other aspect of modeling and simulation entails far greater risk and opportunity to either fail, or fail to deliver in a predictable manner. Innovation in many areas critical to modeling and simulation are prone to episodic or quantum leaps in terms of capabilities (especially modeling and algorithms). These areas of potential innovation
are also prone to failures where ideas simply don’t pan out. Without the failure you don’t have the breakthroughs hence the fatal nature of risk aversion. Integrated over decades of timid low-risk behavior we have the makings of a crisis. Our low-risk behavior has already created a fast immeasurable gulf in what we can do today versus what we should be doing today.
You realize that our mistrust of the future makes it hard to give up the past.
― Chuck Palahniuk
An aspirational goal for high performance computing would be the creation of a computing environment that meant as much for scientific work as my iPhone means for how I live my life. Today we are very far from that ideal. The key to the environment isn’t the speed of the hardware, but rather the utility of how the hardware is integrated with the needs of the user. In high performance computing the user needs to produce scientific results, which depend far more on the modeling’s fundamental character than the speed of the computer.
The future depends on what you do today.
― Mahatma Gandhi

come a new battleground for national supremacy. The United States will very likely soon commit to a new program for achieving progress in computing. This program by all accounts will be focused primarily on the computing hardware first, and then the system software that directly connects to this hardware. The goal will be the creation of a new generation of supercomputers that attempt to continue the growth of computing power into the next decade, and provide a path to “exascale”. I think it is past time to ask, “do we have the right priorities?” “Is this goal important and worthy of achieving?”
veral types of scaling with distinctly different character. Lately the dominant scaling in computing has been associated with parallel computing performance. Originally the focus was on strong scaling, which is defined by the ability of greater computing resources to solve a problem of fixed size faster. In other words perfect strong scaling would result from solving a problem twice as fast with two CPUs than with one CPU.
aspects of the algorithm and it’s scaling that speak to the memory-storage needed and the complexity of the algorithm’s implementation. These themes carry on to a discussion of more esoteric computational science algorithms next.

g, and the constant gets larger as scaling gets better. Nonetheless it is easy to see that if you’re solving a billion unknowns the difference between 

The counter-point to these methods is their computational cost and complexity. The second issue is their fragility, which can be recast as their robustness or stability in the face of real problems. Still their performance gains are sufficient to amortize the costs given the vast magnitude of the accuracy gains and effective scaling.
The last issue to touch upon is the need to make algorithms robust, which is just another word for stable. Work on stability of algorithms is simply not happening these days. Part of the consequence is a lack of progress. For example one way to view the lack of ability of multigrid to dominate numerical linear algebra is its lack of robustness (stability). The same thing holds for high-order discretizations, which are typically not as robust or stable as low order ones. As a result low-order methods dominate scientific computing. For algorithms to prosper work on stability and robustness needs to be part of the recipe.
urrent program is so intellectually bankrupt as to be comical, and reflects a starkly superficial thinking that ignores the sort of facts staring them directly in the face such as the evidence of commercial computing. Computing matters because of how it impacts the real world we live it. This means the applications of computing matter most of all. In the approach to computing taken today the applications are taken completely for granted, and reality is a mere afterthought.











We appear to be living in a golden age of progress. I’ve come increasingly to the view that this is false. We are living in an age that is enjoying the fruits of a golden age and following the inertia of a scientific golden age. The forces powering the “progress” we enjoy are not being returned to our future generations. So, what are we going to do when we run out of the gains made by our fore bearers?
Progress is a tremendous bounty to all. We can all benefit from wealth, longer and healthier lives, greater knowledge and general well-being. The forces arrayed against progress are small-minded and petty. For some reason the small-minded and petty interests have swamped forces for good and beneficial efforts. Another way of saying this is the forces of the status quo are working to keep change from happening. The status quo forces are powerful and well-served by keeping things as they are. Income inequality and conservatism are closely related because progress and change favors those who benefit from change. The people at the top favor keeping things just as they are.
Most of the technology that powers today’s world was actually developed a long time ago. Today the technology is simply being brought to “market”. Technology at a commercial level has a very long lead-time. The breakthroughs in science that surrounded the effort fighting the Cold War provide the basis of most of our modern society. Cell phones, computers, cars, planes, etc. are all associated with the science done decades ago. The road to commercial success is long and today’s economic supremacy is based on yesterday’s investments.
plenty there that needs to be done.
t up in trying to justify the funding for the path they are already taking. The damage done to long-term progress is accumulating with each passing year. Our leadership will not put significant resources into things that pay off far into the future (what good will that do them?). We have missed a number of potentially massive breakthroughs chasing progress from computers alone. The lack of perspective and balance in the course for progress shows a stunning lack of knowledge for the history of computing. The entire strategy is remarkably bankrupt philosophically. It is playing to the lowest intellectual denominator. An analogy that does the strategy too much justice would compare this to rating cars solely on the basis of horsepower.
The end product of our current strategy will ultimately starve the World of an avenue for progress. Our children will be those most acutely impacted by our mistakes. Of course we could chart another path that balanced computing emphasis with algorithms, methods and models. Improvements in our grasp of physics and engineering should probably be in the driver’s seat. This would require a significant shift in the focus, but the benefits would be profound.
ncertainty quantification is a hot topic. It is growing in importance and practice, but people should be realistic about it. It is always incomplete. We hope that we have captured the major forms of uncertainty, but the truth is that our assumptions about simulation blind us to some degree. This is the impact of “unknown knowns” the assumptions we make without knowing we are making them. In most cases our uncertainty estimates are held hostage to the tools at our disposal. One way of thinking about this looks at codes as the tools, but the issue is far deeper actually being the basic foundation we base of modeling of reality upon.
One of the really uplifting trends in computational simulations is the focus on uncertainty estimation as part of the solution. This work is serving the demands of decision makers who increasingly depend on simulation. The practice allows simulations to come with a multi-faceted “error” bar. Just like the simulations themselves the uncertainty is going to be imperfect, and typically far more imperfect than the simulations themselves. It is important to recognize the nature of imperfection and incompleteness inherent in uncertainty quantification. The uncertainty itself comes from a number of sources, some interchangeable.
Aleatory: This is uncertainty due to the variability of phenomena. This is the weather. The archetype of variability is turbulence, but also think about the detailed composition of every single device. They are all different in some small degree never mind their history after being built. To some extent aleatory uncertainty is associated with a breakdown of continuum hypothesis and is distinctly scale dependent. As things are simulated at smaller scales different assumptions must be made. Systems will vary at a range of length and time scales, and as scales come into focus their variation must be simulated. One might argue that this is epistemic, in that if we could measure things precisely enough then it could be precisely simulated (given the right equations, constitutive equation and boundary conditions). This point of view is rational and constructive only to a small degree. For many systems of interest chaos reigns and measurements will never be precise enough to matter. By and large this form of uncertainty is simply ignored because simulations can’t provide information.
bar. Too often these errors are ignored, wrongly assumed to be small, or incorrectly estimated. There is no excuse for this today.
gical if the conditions being modeled are known with exceeding precision. The problem is that such precision is virtually impossible for any circumstance. This is the core of the problem with simulating the aleatory uncertainty that so frequently remains untreated. It is almost completely ignored by a host of fundamental assumption in modeling that is inherited by simulations. These assumptions are holding back real progress in a host of fields of major importance.
methods are understood only superficially, and this results in a superficial uncertainty estimate. Often the black box thinking extends to the tool used to get uncertainty too. We then get the result from a superposition of two black boxes. Not a lot light bets shed on reality in the process. Numerical errors are ignored, or simply misdiagnosed. Black box users often simply do a mesh sensitivity study, and assume that small changes under mesh variation are indicative of convergence and small errors. They may or may not be such evidence. Without doing a more formal analysis this sort of conclusion is not justified. If code and problem is not converging, the small changes may be indicative of very large numerical errors or even divergence and a complete lack of control.
Moore’s law isn’t a law, but rather an empirical observation that has held sway for far longer than could have been imagined fifty years ago. In some way shape or form, Moore’s law has provided a powerful narrative for the triumph of computer technology in our modern World. For a while it seemed almost magical in its gift of massive growth in computing power over the scant passage of time. Like all good things, it will come to an end, and soon if not already.


For those of us doing real practical work on computers this program is a disaster. Even doing the same things we do today will be harder and more expensive. It is likely that the practical work will get harder to complete and more difficult to be sure of. Real gains in throughput are likely to be far less than the reported gains in performance attributed to the new computers too. In sum the program will almost certainly be a massive waste of money. The plan is for most of the money going to the hardware and the hardware vendors (should I think corporate welfare?). All of this will be done to squeeze another 7 to 10 years of life out of Moore’s law even though the patient is metaphorically in a coma already.
If someone gives you some data and asks you to fit a function that “models” the data, many of you know the intuitive answer, “least squares”. This is the obvious, simple choice, and perhaps, not surprisingly, not the best answer. How bad this choice may be depends on the situation? One way to do better is to recognize the situations where the solution via least squares may be problematic, and produce an undue influence on the results.
one. If the deviations are large or some of your data might be corrupt (i.e., outliers), the choice of least squares can be catastrophic. The corrupt data may have a completely overwhelming impact on the fit. There are a number of methods for dealing with outliers in least squares, and in my opinion none of them good.
Fortunately there are existing methods that are free from these pathologies. For example the least median deviation fit can deal with corrupt data easily. It naturally excludes outliers from the fit because of a different underlying model. Where least squares are the solution of a minimization problem in the energy or L2 norm, the least median deviation uses the L1 norm. The problem is that the fitting algorithm is inherently nonlinear, and generally not included in most software.
One of the problems is that least squares are virtually knee-jerk in its application. It is contained in standard software such as Microsoft Excel and can be applied with almost no thought. If you have to write your own curve-fitting program by far the simplest approach is to use least squares. It can often produce a linear system of equations to solve where alternatives are invariably nonlinear. The key point is to realize that this convenience has a consequence. If your data reduction is important, it might be a good idea to think about what you ought to do a bit more.