Dare to think for yourself.

― Voltaire

6a00d8341c51c053ef00e54f8863998834-800wiThe beginning of the year is a prime time for such a discussion. Too often the question of importance is simply ignored in lieu of simple and thoughtless subservience to other’s judgment. If I listen to my training at work, the guidance is simple. Do what you’re paid to do as directed by your customer. This is an ethos of obedience and your particular judgment and prioritization is not really a guide. This is a rather depressing state of affairs for someone trained to do independent research; let someone else decide for you what is important, what is a priority. This seems to be what the government wants to do to the Lab, destroy them as independent entities, and replace this with an obedient workforce doing whatever they are directed to do.

This is one of the innovator’s dilemmas: Blindly following the maxim that good managers should keep close to their customers can sometimes be a fatal mistake.

― Clayton M. Christensen

When one takes a long critical look at your customer’s credentials and knowledge, the choice to seek their guidance on importance and priority becomes laughable. They are usually radically less competent to make such choices than most of you. Perhaps this is just my good old-fashioned Los Alamos arrogance showing. My customers don’t actually know best! The problem with the current standard of priority setting is that the customer’s guidance is destroying research, and slowly suffocating formerly great sources of innovation and excellence. Where independent and competent scientific and engineering leadership once underpinned the Nation’s security, the forced compliance and obedience has bred cultures of mediocrity and pathological avoidance of risk driven by fear of any failure.

imgresAn important, but depressing observation about my work currently is that I do what I am supposed to be doing, but it isn’t what is important to be doing. Instead of some degree of autonomy and judgment being regularly exercised in my choice of daily activities, I do what I’m supposed to do. Part of the current milieu at work is the concept of accountability to customers. If a customer pays you to do something, you’re supposed to do it. Even if the thing you’re being paid for is a complete waste of time. The truth is most of what we are tasked to do at the Labs these days is wasteful and nigh on useless. It’s the rule of the day, so we just chug along doing our useless work, collecting a regular paycheck, and following the rules.

Actually that isn’t completely true, I try to carve out time each day to write something. It’s a priority to myself that I exercise almost without fail. I have endeavored to make it a habit. It is actually several habits in one. For example, I write a personal journal each day to capture my innermost thoughts about my life and it’s an invaluable sounding board for myself. It is writing and that is good in and of it self, but it is completely private. Being private I don’t share it, or expect anyone else to read it. As such it doesn’t have to be clear or make sense to anyone, but me. On the other hand, the blog is intended to be read although that isn’t its purpose. It serves several purposes: the habit of writing, venting off steam, and working on concepts that are occupying my thoughts. All three things are very important to me, and I make them a priority for each and every day.

I wish that the same concept and discipline could be applied more broadly. Sadly it isn’t and most of us spend our time doing useless stuff. Most of what all of us are paid to work on is a complete waste of time. I end up spending most of my time communicating between groups of people, negotiating agreements and troubleshooting. I do far too little of the creative technical work that I love. Most of my writing is focused on raging against the forces of mediocrity eating away at any focus on doing something useful, important and high in quality. I recently came to the realization that the first ten years of my career were easily characterized by having my generally high expectations over-delivered upon at work; while the last fifteen years have seen my ever lowering expectations under-delivered upon in a seemingly endless search for the bottom. I wonder just how much lower my expectations need to drop to match the reality of today.

So, what might be more important than the crap they pay us to do? There are a lot of things in my personal life that qualify as more important than anything at work. This is rather obvious, but sad as the importance of work ought to put up a better fight. The problem with important work is that it is risky and difficult. We might fail at it, and failure is something we can’t bear to do these days. Ultimately we can’t muster the will to do important things because that would make our work real, consequential and meaningful, but also risky.

What’s important?

Judge a man by his questions rather than by his answers.

― Voltaire

Mainframe_fullwidthThe real world is important. Things in the real world are important. This is an important thing to keep in mind at all times with modeling and simulation. We are supposed to be modeling the real world for the purpose of solving real world problems. Too often in the programs I work on this seemingly obvious maxim gets lost. Sometimes it is completely absent from the modeling and simulation narrative. Its lack of presence is palpable in today’s efforts in high performance computing. All the energy is going into producing the “fastest” computers. The United States must have the fastest computer in the World, and if it doesn’t it is a calamity. The fact that this fastest computer will allow us to simulate reality better is a foregone conclusion.

Cray XE6 imageThis is a rather faulty assumption. Not just a little bit faulty, but deeply and completely flawed. This is true under a set of conditions that are increasingly under threat. If the model of reality is flawed, no computer, no matter how fast can rescue the model. A whole bunch of other activities can provide an equal or greater impact onto the efficiency of modeling than a faster computer. Moreover the title of fastest computer has less a less to do with having the fastest simulation. The benchmark that measures the fastest computer is becoming ever less relevant to measuring speed with simulations. So in summary, efforts geared toward the fastest computer are not very important. Nonetheless they are the priority for my customer.

So what do I do? Being a good little trooper, I work on the fastest computer stuff cause it pays the bills.

So what should we be doing instead?

I might suggest that we take a page from the success of the wider computing industry, and figure out how to make computing more ubiquitous in the daily life of a scientist. Well that’s already happened by fiat as scientists are functioning (just barely in many cases) members of society. So, let me be a bit more specific; make modeling and simulation part of the daily life of a scientist or engineer. This is something we as a community are failing at. Progress is being made by pure inertia, but that progress is dismal compared to what it could be.

mad-menThe reason for the lack of progress is simple, high performance computing is still acting as if it were in the mainframe era. We still have the same sort of painful IT departments that typified that era. High performance computing is more Mad Men than Star Trek. The control of computing resources, the policy based use and the culture of specialization all contribute to this community-wide failing. We still relystar trek tosupon centralized massive computing resources to be the principle delivery mechanism. Instead we should focus energy on getting computing for modeling and simulation to run seamlessly from the mobile computer all the way to the supercomputer without all the barriers we self-impose. We are doing far too little to simply put it at our collective
fingertips and make it a simple and ubiquitous part of what gets done.

The mobile computing is the key and mobile computing is not embraced by high performance computing. The challenge is to get the mobile computing to figure into the workflow of the average scientist. This is to do scientific work, not check Facebook, or email, or right swipe (they’ll continue to do this). The work should seamlessly move between the big iron and the mobile as appropriate. Remember if Linpac is to be believed my iPhone is as the Cray-2 was and certainly capable of doing some real work. If we can create this environment modeling and simulation would take off and truly meet its potential. Without the change it will continue iphone_4sto be a niche activity, and not fulfill its potential.

So what needs to change to accomplish this sort of transformation and success? First, the emphasis on big iron needs to diminish because it takes all the energy available. The trick is to make improvements in modeling, methods and algorithms and enable the more correct and efficient use of computing. Part of the modeling is the practice of modeling and simulation. Today we have generally poor practices, and a deep skewing of modeling by the tendency to adopt hero calculations. These calculations are focused at using the most massive computing available rather than be fitted to the purpose and suitable to assessment. The methods and algorithms can provide fundamental efficiency and scaling that will enable more to be done at the mobile level of computing.

People don’t want to buy a quarter-inch drill. They want a quarter-inch hole.

― Clayton M. Christensen

One of the modern mantras of business is the “disruptive innovation”. These innovations are sought out as the route to marketplace supremacy, creating a product that changes the business landscape and overwhelms the competition. These disruptive innovations are viewed as only being good things. I will challenge that assertion with the belief that massively parallel computing was a disruptive innovation (a common assertion), but not a positive one. It has been a negative innovation and successfully undermined the broader pipeline of innovation and discovery in high performance computing replacing with a slavish devotion to hardware as the route to progress.

To put increasingly outdated codes on these computers has taken all the available energy and robbed us of key innovations in models, methods and algorithms that would have been more beneficial than all the hardware gains. In addition these innovations would have created bona fide intellectual products that the current scientists would own, understand and benefit from mastery over. The computing hardware has become increasingly ill suited for scientific computing as well as being difficult to use. The next generation of computing promises to be worse in almost every regard. The focus on the massively parallel aspects of implementations has also starved focus on creating methods that are well suited to the modern CPU’s. As a result we utilize a tiny fraction of the available computing power from each CPU. In sum the current and future hardware focus has been destructive, wasteful and counter-productive. It may be laying waste to an entire generation of computational scientists.

The high performance computing community would be well advised to choose a different path towards progress before its too late. The path should acknowledge the holistic path to progress and the role of prioritizing work that impact the world beyond computing. It would be inspiring to take a page from the broader computing industry’s embrace of mobile computing as the route to ubiquitous computing that impacts the life of those who use it in immutable ways. I will take note that the death of Moore’s law for microprocessors and the assent of mobile computing happened in the same time frame. Worth thinking about, are these events correlated? We should realize that code is simply a computer recognizable expression of intellectual ideas. It should be understood if it is to be used for anything serious.

All of us should do some serious thought about what is important to work on. I think most of the current research emphasis in high performance computing is focusing on the trivial as the essential, and effectively trivializing the essential. A future where real progress and impact is made depends on changing this dynamic around.

‘Controversial’ as we all know, is often a euphemism for ‘interesting and intelligent.

― Kevin Smith