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.

No comments:

Post a Comment