HPCwire

The Leading Source for Global News and Information Covering the Ecosystem of High Productivity Computing

HPCwire >> Blogs

Blog: From the Editor

From the Editor | Main Blog Index

IT Revolution Just an Einstein Away


Last week I talked about some of the problems with our current and future IT workforce. To summarize: there is a growing structural imbalance between the demand for information technologists and supply. Rapid growth in IT, especially in the U.S., has caused companies to outsource a large share of IT jobs, as well as take advantage of the increasingly controversial H1-B program to import extra workers. Notwithstanding the upheaval this has caused in the domestic IT job market in the last five years, it will provide only a temporary fix as cheaper workers are consumed and salaries are equalized globally.

Some companies have developed educational partnerships and sponsorships to develop new talent, but for reasons that I outlined last week, this will provide only limited results. If information technology is to live up to its potential, the industry will have to figure out a better way to develop and use the available workers.

Last week I also talked about the inherent limits on the number of people who would be suitable for IT work. Short of genetic engineering, there's not a lot to be done here. But there is at least one other facet of the problem that we can do something about. It involves how information technology advancements outpace the ability of the workforce to adapt to them.

The rapid advancement of technologies is especially stressful to older, more experienced IT professionals, since it tends to obsolete their skill sets. For example, developers who have worked for years in C/Unix/RISC shops find employers are reluctant to hire them for Java/Linux/x86 work. And regrettably, employer-provided training or retraining is almost non-existent in the industry. Part of this comes from management's view of IT workers as technicians rather than engineers and the feeling that younger or foreign-born talent will be cheaper. The unfortunate side effect of this kind of treatment is that it discourages new talent from entering the field. Employer-provided training and a little more professional respect would go a long way to keep the current supply of IT workers productive.

Then there's the problem of IT workers being consumed by what I'll call unproductive work. An example of this is software porting. It's a problem that is continually being (re)solved as developers lug legacy codes from platform to platform. Although this is a necessary task, I would suggest that it's not the best use of our limited workforce. These individuals would be better employed developing new application software, or at least enhancing current codes.

The Itanium experience is a poster child for this type of activity. The new processor architecture needed an entire software ecosystem and application domain to be transferred from older technologies. Consider the time, money and other resources Intel, HP and others have invested in making the Itanium processor a viable product in the market. Just this year, the Itanium Solutions Alliance infused $10 billion to do just that.

One way to reduce the human costs of porting software would be to develop emulation technology for the new platforms. Some of these technologies exist today and are in use. QuickTransit (Transitive Corp.) allows code compiled for one processor architecture/operating system to run on a system with a different processor architecture/operating system without source code or binary changes. In fact, one of the QuickTransit implementations dynamically translates Solaris/SPARC apps to Linux/Itanium ones. Supposedly the translation retains up to 80 percent of its native performance. But even if it were much less efficient, the translated code might still outperform the same code that is run on the older architecture. Emulation represents a valuable technology to offload a lot of tedious work from software developers.

Rapid technology advancement also manifests itself in another way that challenges the IT workforce. Hardware performance and capacity is increasing much faster than our ability to develop software to take advantage of it. This requires a constant effort by developers to find new ways to exploit overachieving processors, growing memories, and speedier networks. Perhaps even more challenging, the paradigm shift to parallel processing that is being propelled by multi-core and multi-processor architectures is creating additional difficulties for our current crop of software developers.

Even cyber-optimist Ray Kurzweil admits that software is currently running behind hardware. He estimates that software development productivity is doubling every six years, while hardware price/performance is doubling ever year.

In the past, the answer to the dichotomy between hardware performance and programmer productivity has been to raise software abstraction, that is, to encapsulate code complexity in higher level structures. I suspect that this is still the best overall strategy. The speed of microprocessor advancements suggests that we should be much more aggressive in trading application performance for developer efficiency. FLOPS, while not free, are cheap and getting cheaper. Software developers (yes, even the ones writing code in Bangalore, India) are relatively expensive.

But since we moved from assembly code to high-level languages over 50 years ago (Fortran), no other general-purpose programming model has emerged to significantly increase software abstraction. Maybe that's not fair. There certainly have been a number of refinements that have contributed to better productivity: modularization via libraries, object-oriented design and generic programming. These were incorporated into a number of 3rd generation high-level languages like C++, Java and Python. Python, in particular, was designed to emphasize the importance of programmer productivity over code performance.

A number of domain-specific languages (DSL), such as SQL, XML and Mathematica, have become popular in their various disciplines. DSLs trade off general-purpose expressiveness with simplicity, thereby raising the level of abstraction. This type of specialization it likely to increase in the future, since DSLs can open up application development to non-IT professionals.

Not everyone agrees that raising the level of abstraction is a good thing. Some users, especially those with supercomputing applications, tend to be performance junkies. But in the latest issue of CTWatch Quarterly two articles, "What's Working in HPC: Investigating HPC User Behavior and Productivity," and "Observations about Software Development for High End Computing," came to somewhat different conclusions regarding the importance of code performance versus code development. Even for the HPC crowd, the tradeoff between productivity and performance is not always obvious.

Others, though, are just philosophically opposed to the whole idea of simplifying the coding process. In a recent Technology Review interview, Bjarne Stroustrup, inventor of C++, raised doubts about using simpler programming languages in order to allow broader participation. Here's what he had to say on the subject:

"I think that would be misguided. The idea of programming as a semiskilled task, practiced by people with a few months' training, is dangerous.... Obviously, we don't want our tools -- including our programming languages -- to be more complex than necessary. But one aim should be to make tools that will serve skilled professionals -- not to lower the level of expressiveness to serve people who can hardly understand the problems, let alone express solutions. We can and do build tools that make simple tasks simple for more people, but let's not let most people loose on the infrastructure of our technical civilization or force the professionals to use only tools designed for amateurs."

Damn, that seems a tad cynical. It also seems to reflect the attitude that complex applications necessitate complex tools. But how can that be true? Consider the relative simplicity of DNA. Using a language based on just a few nucleotide base pairs, DNA is able to encode extremely complex living organisms (like for example, Bjarne Stroustrup). Even programming languages themselves are usually much less complex than the applications derived from them.

And while software abstraction can reduce performance, there is a way for software to fight back. Dramatic improvements in the speed of applications can be achieved through algorithm acceleration. For example, the radix-2 Cooley-Tukey algorithm increased the efficiency of the Fast Fourier Transform (FFT) by a couple orders of magnitude. Improving algorithms can provide what Georgia Tech's Mark Richards and MIT's Gary Shaw refer to as "worm-holes in development time," achieving the equivalent of years of hardware advances with a single change to a piece of code.

Bernard Chazelle, professor of computer science at Princeton University, is another algorithm evangelist. Chazelle thinks that computer science, while currently in the doldrums, is actually on the cusp of a great revolution. According to him, what the field really needs a visionary -- someone who could galvanize the public's imagination and express the importance of computer science for our future.

Says Chazelle: "I think that computer science bears an uncanny resemblance to pre-Einstein physics. Moore's Law ... put computing on the map. But algorithms are going to unleash computing's true potential. I predict that there will be an Einstein of computer scientists. The revolution is yet to come."

-----

As always, comments about HPCwire are welcomed and encouraged. Write to me, Michael Feldman, at editor@hpcwire.com.

Posted by Michael Feldman - December 15 @ 12:00AM

(Digg, Technorati, more)

Discussion

There are 0 discussion items posted.  

Michael Feldman

Michael Feldman is the editor of HPCwire.

More Michael Feldman



Recent Comments

Compairson to Core i7-980X by rsingle

HPC? not so much by ewahl

Re: IBM and HPC by truly64

HPC = servers but a lot more by lawries

Multi core deployment becomes a memory game by truly64

Re: Venture Capital Drought? Not So Much. by Ron Van Holst

Re: Podcast: Cray Awarded Defense Deal; SGI Makes Storage Buy; IBM Invents New Algorithm by Nastyanna

Painful Truth by jeffrey.mcallister

SGI = graphics + HPC by johnbarr

HPC = servers but a lot more by truly64

Oracle SPARC != Fujitsu SPARC by Alan M. Feldstein

Sun & HPC != Oracle & HPC by Merblich

a third vendor for lossless low latency 10GbE fabric by lee.fisher@hp.com

Response to GAH by KevinButerbaugh

Response to KevinButerbaugh by GAH

Response to KevinButerbaugh by GAH

Response to GAH by KevinButerbaugh

Response to bdrupp by KevinButerbaugh

Climate Crisis and Exaflops by bdrupp

Climate Crisis and Exaflops by John Hules

Climate Crisis and Exaflops by GAH

Climate Crisis by KevinButerbaugh

IBM "Brain Simulation" article is not properly presented. by Merritt

563 out of 1206 by vvolkov

Little Iron by gadunk

At least it's not "cloud" by KevinButerbaugh

Native QPI Interface? by commike

Mmmmmm by hellcats

New transistorized IC chip scales. by symmecon

Itanium at IDF by Alan M. Feldstein

Communication time by jnapper

"The financial meltdown and computing" by donpellegrino

Human Models by mdgabriel

High-End SPARC Chip for Scientific Applications by Alan M. Feldstein

RapidMind by Mr LolO

Rapidmind by dminor

Longer run times by JohnWest

re: Algo trading Angst by jshore

Results of Testing by in_the_crease

Feature Articles

The Week in Review

C-DAC announces plans for a petaflop system; IBM researchers are working on vertical integration techniques to extend Moore's Law another 15 years. We recap those stories and more in our weekly wrapup.
Read More...

Moscow State University Supercomputer Has Petaflop Aspirations

The Moscow State University supercomputer, Lomonosov, has been selected for a high-performance makeover, with the goal of tripling its processing power to achieve petaflop-level performance in 2010. T-Platforms, who developed and manufactured the supercomputer, is the odds-on favorite to lead the project.
Read More...

Intel Ups Performance Ante with Westmere Server Chips

Right on schedule, Intel has launched its Xeon 5600 processors, codenamed "Westmere EP." The 5600 represents the 32nm sequel to the Xeon 5500 (Nehalem EP) for dual-socket servers. Intel is touting better performance and energy efficiency, along with new security features, as the big selling points of the new Xeons.
Read More...

Top Headlines

Australia Commissions Cray Supercomputer

Mar 19 | OfficialWire | New super to support intelligence work Down Under. Read more...

Intel Partners See 'Easy' Upgrade Path With Xeon 5600 Chips

Mar 18 | ChannelWeb | Westmere parts already showing up in HPC machines. Read more...

AMD: OEMs primed for Opteron 6100s

Mar 17 | The Register | But what about the tier ones? Read more...

Arrival of the Desktop Supercomputer

Mar 17 | Cadalyst Magazine | A new generation of workstations is changing the nature of technical computing. Read more...

Scheduling HPC In The Cloud

Mar 17 | Linux Magazine | Latest iteration of Sun Grid Engine able to tap into Cloud. Read more...

Featured Whitepapers

Virtualization for Aggregation And The vSMP Architecture™

Jan 12 | | In-depth look at vSMP Foundation server virtualization technology, technical implementation, use cases and capabilities. The technical whitepaper provides an architectural overview and details on the three vSMP Foundation products: vSMP Foundation for SMP, vSMP Foundation for Cluster and vSMP Foundation for Cloud.

Copper Cable Technologies for High Performance Computing

Jan 18 | | This white paper discusses Gore’s copper cable assemblies, and how they continue to exceed the standards for providing reliable, cost-effective solutions for high-performance computer applications.

Multimedia

Webcast: Virtualized Data Center Roundtable

Join this online panel discussion for live Q&A with leading industry experts, analysts, and end-users to discuss the latest innovations, best practices, barriers to implementation, and measurable benefits of server virtualization with a particular focus on today's real world solutions.

Webcast: Watch SC09 Birds of a Feather Video: Scalable Fault-Tolerant HPC Supercomputers

Learn about scalable fault-tolerant architectures and examples of energy efficient and scalable supercomputing clusters using dual QDR InfiniBand to combine capacity computing with network failover capabilities with the help of programming languages such as MPI and a robust Linux cluster management package.

Webcast: High Performance Computing for a Smarter Planet

LIVE@SCO9: The IBM team discusses new innovations in hardware, software and services that help clients better understand their workloads and get insight from their R&D efforts. Technology demonstrations include the soon-to-be-released Power7 HPC processor, the DCS990 system with 2.4 petabytes of storage, the xCAT management tool, secure HPC cloud computing and more. Winners of two HPCwire Readers' and Editors’ Choice Awards! Take the IBM virtual tour at SC09 or more information go online to: http://www-03.ibm.com/systems/deepcomputing/sc09.html

Blogs by Topics

Blogs by Author

HPC Blogroll



Featured Events

HPC User Forum DICE
2010 High Performance Computing Linux Financial Markets
Cloud Computing Expo
Cloud Lab
ESC
DEISA PRACE Symposium