In last week’s post, I suggested that the academic computer architecture research community is lacking a unified understanding of future needs of computing system end consumers.  In today’s post, I suggest ways that our community can move toward consumer-centric research thrusts.

Publish Consumer Research…?!

As I mentioned in my last post, the big companies have some knowledge about their consumers. Last year, I worked at Advanced Micro Devices for 7 months as a cooperative intern, and once a week, all employees received a company-wide email that discussed current and near-term future processor sales trends across 4 different platforms: server, workstation/desktop, laptop and mobile. This is the extent of data that most big companies are willing to share with all of their employees, including the interns.

Now, imagine what other data the big companies probably have. They certainly know how many processors or graphics units they sold to Hewlett Packard (HP), Dell and other big purchasers to be put into new laptops. Do they know how these laptops are being used by end consumers? Definitely – at some level.

Let’s try a quick exercise: What portion of laptop end consumers stream video? Regardless of the answer to this question, we should definitely be asking more questions about these consumers. Suppose most consumers stream video… Do they stream video while on battery power, or are they always plugged into the wall? Maybe we could figure out ways to support streaming video in ultra-low power processor modes, so streaming video can be enjoyed in coffee shops and libraries away from power outlets. If that’s what the end consumer wants, what is our power budget to enable the consumer to watch 3 hours of streaming HD video on battery power? Now you’ve got yourself a compelling thrust in future processor and graphics unit research!

Here, I used laptops as an example of the consumer research that might lead to interesting research thrusts, but I want to emphasize that consumers have different usage demands from different platforms. For instance, my parents have started using their Android smartphone for browsing the internet and checking their email. At the same time, some of my colleagues are researching ways to parallelize irregular computations like graph traversals for back-end processing in datacenters. These platforms, smartphones and datacenters, don’t really need to support the same usage that is demanded by the users of the other, yet the processor in my parents’ smartphone is quite similar to the processor for which my colleagues are writing complex parallel code. A deeper understanding of the demands on these processors has potential to free researchers from existing research constraints and open up broader classes of computing solutions across different platforms.

It would be immensely valuable for this type of consumer data to be available to the research community, especially as the consumer-base continues to grow and diversify. My first proposal is that we encourage researchers to actually talk to customers to collect data and quantify their demands (and for those that will say the consumer doesn’t know what they want, you’re WRONG. There are consumers who know and are more than willing to tell you. They are the early adopters, and their demands will drive industry disruption. I’ll bet Apple, HP, Dell, Google and Microsoft have plenty of knowledge about these consumers). We need to distribute and understand consumer demand data across ALL different computing platforms. As a community, we should have workshops, or even accept papers into our top conferences, aimed at articulating consumer data and proposing future research directions suggested by consumer habits.

Millennium Prize Problems

In 2000, the Clay Mathematics Institute released the Millennium Prize Problems, a list of mathematics conjectures for which the mathematics community is seeking proofs.  Some of these conjectures have held the attention of mathematicians for decades.  However, by distilling the problems down into a well-defined list, Clay Mathematics brought the attention of not only the research community, but also the minds of young aspiring mathematicians.

In late 2002, Dr. Grigori Perelman posted an outline of the proof of one of the Millennium Prize Problems, the Poincare Conjecture.  While Dr. Perelman had been working in the field for years, the Millennium Prize brought significant attention to his work while his proof was being verified and its implications being explored. In 2006, Perelman was awarded the Fields medal for the accomplishment. Later, he was awarded the Millennium Prize for his proof, but Perelman himself claimed that the Millennium Prize Problems “are like these huge cliff walls, with no obvious hand holds.” Both incremental and breakthrough progress helped Perelman and a crew of other researchers finalize the proof.

In April this year, IBM achieved a feat analogous to Perelman’s proof: They succeeded at designing a computing system, named Watson, which competed against and defeated Jeopardy! champions Ken Jennings and Brad Rutter. David Ferrucci was the principle investigator in charge of this massive project. Just as proof of the Poincare Conjecture took incremental and breakthrough discoveries, Ferrucci describes the design of Watson as a process that required small, grueling advances, but it also revealed many large, fascinating research problems that the research team got to chew on. The implications of the Watson technology are going to be studied for years to come. Given its impressive capabilities, expect to see these technologies used in technical support, medical IT and other applications in the future.

Topological Loops

Algorithmic Loops

These achievements have numerous commonalities. Maybe painfully, each feat took numerous researchers numerous years to complete. These teams fought through incremental discoveries – a small lemma about topological loops here, and a new algorithm for detecting puns over there – but they also uncovered new, significant research thrusts that have lead to breakthroughs in both fields. Each feat involved competition between researchers to quickly complete subproblems. Finally, probably one of the most significant commonalities is that throughout these processes, the teams were unified on a single, overarching end goal.

These observations lead me to my second proposal: the computer architecture community should unite on a process for defining more problems analogous to the Millennium Prize Problems and the Jeopardy! challenge in order to promote research directions of larger scale. I suggest that the big companies and the big purchasers identify classes of problems they are trying to solve for their consumers, and distill these problems into well-defined goals. They can even be indirectly targeted at solving consumer problems, as in the case of the Jeopardy! challenge. Further, we should build structures for organizing funding and research groups around tackling these consumer-driven research directions, much like the National Science Foundation (NSF) and the Defense Advanced Research Projects Agency (DARPA) have structures in place for funding research groups to work on future military, medical and computational problems.

The Changes and Challenges

Until the mid-1970s, governments, military and large corporations were the primary users of computing systems, and they defined the direction of computing research. With the advances in CMOS integrated circuits through the 1980s and 1990s, personal computers became popular and processor development continued to target general purpose performance. Over the last 15 years, however, the computer architecture industry has been experiencing the extreme growing pains of performance, power, size and parallelism, and now, more than any time in it’s history, the growing majority of usage is among a large, diverse body of consumers.

By knowing who owns what type of processors, understanding how they use them, and predicting what these consumers will (want to) do with their systems in the future, the computer architecture research community will be better equipped to define relevant and significant research directions and to make substantial strides. If we knew the relative importance of performance, power and size for multiple markets, the job of the researcher could be simplified by, at first, ignoring the less significant constraints. The challenge here is to gain a better understanding of the consumer’s demands.

It used to be the case that “good” computer architecture research would work in one market, while “great” research worked for general purpose processors, across multiple markets. It is becoming appreciably harder and more work to make these great research strides, because there are more consumers, diversifying demands and more complex systems. While there is still room for traditional, “great” research, we, as a research community, should be focusing around specific consumer-driven research thrusts – the next “great” problems in our field. Defining, organizing around and tackling these problems is the another challenge we face as a community.

— typed on my HP Pavilion laptop at a coffee shop