In the January issue of Computer Magazine, Sam Fuller and Lynette Millett present a summary of a report from the CSTB (Computer Science and Telecommunications Board) of the US National Academy of Sciences -- Computing Performance: Game Over or Next Level? Which lays out challenges we face to catch-up (and keep up) with the computing performance Expectations Gap -- noting that single processor systems have already failed (power consumption/heat dissipation more than chip density) -- and the future requires serious work on parallel processing including the software level.

There are two aspects of this article I want to point out -- the trillion dollar annual impact that the report asserts, and the suggested need for standards. (Quotations are from the article.)

Industry and Government need to support IT
"The IT industry annually generates a trillion dollars and has even larger indirect effects throughout society." ... "Current technological challenges affect not only computing but also the many sectors of society that now depend on advances in IT and computation. These suggest national and global economic repercussions." Here is my concern. If industry and government really believe we face these types of impact, why don't they take IT seriously? For years IT has been identified as one of the largest potential areas of job growth (Bureau of Labor Statistics, BLS) but there is limited federal or state investment to address this labor need; and STEM programs from industry to attract students tend to be corporate flag waving with little coherent effort. Beyond this, I don't see industry providing job security for IT professionals -- and perceptions are critical here to attract and retain competent people. The need for software engineers (175,000 of the top paying jobs in the BLS table) overlaps with the need for professionals trained in parallel programming outlined by Fuller and Millett -- but as they point out we do not have this as part of the curriculum at this point. With multi-core systems, CELL processors, cloud computing, etc. it has been clear for some time that this would be an essential area for both research and skills development.

Parallel is not the priority for Consumer Computing

But we need one major caveat: this is not, in my opinion, where the challenges lie for consumer computing -- the devices we put in the hands of billions of individuals. As I have asserted previously (CS President's Blog) the real evolution for these devices is a much longer expected life span (robust, modular, upgradeable) -- and not to be disposable. The marketing desire of corporations to sell yet-another-computer to every consumer is inconsistent with sustainability objectives, and generates deserved distrust by the public. I look at the proliferation of pocket things - smart phones, iWhatevers, eReaders, etc. and see needless (but intentional) differentiation. A recent article in Scientific American (An Open Question) confuses the value of "open" platforms between Android (multivendor) and iPhone (single vendor) vs "open software" (free to modify, and most importantly add applications.) While I doubt any user needs the thousands of applications available for both of these platforms, I know some users want applications that the closed vendors do not want to have available from third parties. Open platforms like Android give users the freedom to develop and acquire applications for their devices without having to go to court -- which opens the door for Android devices to fill many identified and not-yet identified application needs without waiting for corporate approvals. While some of these may go to the cloud for parallel processing power, many will quite happily execute on a single processors for years to come.

But Standards are Needed -- Parallel Processing and Android Applications

Which leads to the second major point of the Fuller-Millett article - the need for standards.
"Private Firms are often incentivized to create proprietary interfaces and implementations to establish a competitive advantage. However, a lack of standardization can impede progress because the presence of so many incompatible approaches deprives most from achieving the benefits of wide adoption and reuse..." This problem exists for portability of applications for the cloud, for parallel processing in general and also for Android platforms. In all of these cases the short term interest of suppliers will be differentiation combined with "lock-in" that will discourage compatibility and the implicit competition that comes with real standardization. There are two steps that can significantly impact the time to standardization:
  1. Someone (industry, NSF, etc.?) has to fund a volunteer consensus standards activity, I recommend IEEE as a candidate for all three of these domains -- there is already some work going on with Cloud Computing. The highest impact investment here is to fund an experienced technical editor, which is a service IEEE staff can facilitate, although most standards depend on volunteers.
  2. Encourage the US Government to establish a FIPS that calls for government procurements to use the resulting standard(s). Without a significant buyer demand, standards do not get implemented. It has been some years since the federal government has actually exerted its buying power. But, if we believe the high dollar impact suggested by the CSTB, then this would make a lot of sense.
Why mix the consumer and the performance-demand needs in the same discussion? Because public perception is a critical factor in getting governments and industry to actually change. If the focus is strictly on applications with performance gap problems (which I argue is not consumer computing) ... then the public won't perceive the need for this. If we can combine empowering users -- providing protection for their investments (via portability, open applications, and robust devices) ... and complement these with back-end parallel processing standards we have a chance of bringing them on board.


Not for Profit - why do we talk about money so much

I'm concerned with an aspect of IEEE that has multiple negative impact IMHO -- our emphasis on money. When I see evaluations of our success, it is often measured in dollars -- growth in revenue, competitors evaluated in dollar market share, etc. Since you tend to get what you measure, it puts much of the focus of the leadership on money.
Note that not-for-profits cannot survive if the income does not match or exceed the expenditures. IEEE is not running on some large endowment, so it must find revenue to cover the necessary expenses, and at times eliminate expenses (projects, products, services even staffing) when this is not happening. However, expecting many if not all products, services or even operating units to generate surpluses is not consistent with the not-for-profit objective which means funding activities of benefit to the public and profession that might not be surplus generating. In effect. we must subsidize some activities from surpluses drawn in from other activities.
Here is the flip side of this problem - IEEE groups are hesitant to be the source of that subsidy (I have yet to find one that would refuse a subsidy.) Every conference wants to run right to the wire ... and reinvest any surplus in either low fees, student travel fellowships, scholarships, etc. These may be good things, but most are driven from a myopia about the nature of IEEE, seeking to maximize the benefit for their community and not give back to the rest of IEEE. Needless to say this does not provide support for the next emerging conference, or publication, or whatever. Some of the same myopic perspective exists with sections or chapters -- it is less with publications where the centralized nature of publishing has tended to drive a more business oriented line of thinking.
The same conflict exists between societies, where again surplus is a key metric. Societies do not want to be the source of surplus that subsidizes other societies (including emerging technology, high growth areas or areas of social responsibility). So annual budget review and the periodic "society reviews" put the pressure on surplus generation. All of this in a context where IEEE's overall surpluses are growing dramatically (thanks to the stock market).
Here's the real rub: I strongly suspect Dan Pink in his discussion on motivation (Book: Drive, see the related video at http://www.youtube.com/watch?v=u6XAPnuFjJc ) is correct ... money is a negative motivator, decreasing productivity once things rise above Maslow's "physical and security" levels. The real motivators are autonomy (self actualization), mastery (self esteem and the esteem of others) and purpose (which underlies all of these.) IEEE is filled with purpose, provides the essential community (belonging in Maslow's hierarchy) and great opportunities for mastery and autonomy --- but we let money get in our way.


Better Mouse Trap

The term "Better mouse trap", referring to a useful invention, is often attributed to Thomas Edison in a phrase such as "If you build a better mouse trap the world will beat a path to your door." Extensive research (15 minutes on the web) fails to uncover Edison actually having made this pronouncement. However, a fairly good history of the concept is presented by American Heritage in Oct. 1996 (A Better Mouse Trap; Jack Hope; American Heritage, Oct. 1996) where the more accurate quotation is presented:
"I trust a good deal to common fame, as we all must. If a man has good corn, or wood, or boards, or pigs, to sell, or can make better chairs or knives, crucibles, or church organs, than anybody else, you will find a broad, hard-beaten road to his house, though it be in the woods."
Ralph Waldo Emerson's Journal, 1855

While Hope's article focuses on patents and mouse-traps, which provide a delightful insight to the great engineering tradition of inviting things, it misses the main point of Emerson's insight. This is captured in the term "common fame" ... which today we might call "reputation". A concept we too-easily lose in our efforts of re-invention, and even in the highest impact potential creations.

I've pointed to the idea of "social capital", and who you know as being important. But perhaps more important in many ways is "who knows you?" Once you become known, for better or worse, you have a reputation. Folks will point others in your direction in areas where this is good (they will "beat a path to your door") and of course it can work the other way as well. So building a good reputation is fairly critical, and in today's world, your 'web profile' is essential -- but that is a topic for a future blog.

How do you build a reputation? .... be visible! Consider how you gain credibility in the Open Source world .... be active in the review and FAQ interactions ... let folks see your capability and commitment, then they will pay attention to your contributions. In the academic world this is accomplished by publications, peer review and most critically conferences where you meet and interact with those other persons. In industry you need to take equal interest in your reputation, but it is not as clearly understood. The same processes apply --- be visible in interacting with peers -- online, in local events (IEEE chapter meetings), -- conferences, etc. "Make a name for yourself" --- without it, a better mouse trap won't really trigger the path development to your door.