Intel is helping developers exploit parallelism and is working on helping them find opportunities for parallelism and debugging parallel programs. "Debugging is a huge area, where if not done correctly can cause applications to fail," Reinders said. "If you aren't using techniques in your 'QA-ing' [quality assuring] of your software you're going to pay the price," he said. "We're not anxious at Intel to see parallel programming get a bad name.""We want to see experience in parallelism add an item on resumes, just like you see Java on a person's resume," Reinders said. Phil De La Zanda, who heads up the world wide sales strategy for Intel's software developer products, said his key message is that multi-core is here to stay. "You as a programmer ought to think about parallel programming," he said. "Now it's going to become mainstream." De La Zanda said industries such as gaming, health care, digital media and financial services already are beginning to use parallel programming to create applications. It is not just for government labs or scientific and engineering efforts, he said. "We want to facilitate huge growth [of parallel programming] with the mainstream developer -- the developer who is using Microsoft Visual Studio." Sun is hoping to do the same thing with its developer base, Oberoi said. Sun Studio is a set of C, C++ and Fortran compilers and tools that competes with Intel's core developer tools and compilers. Oberoi said the industry is really "just getting started from a frameworks perspective and has been going at a steady pace from a tools perspective" to offer support for parallel programming. "We've seen a surge in interest in the techniques used in HPC [high performance computing] for not just science, but in other industries," Oberoi said. "We see the HPC space outpacing the general IT space in terms of growth." And although Sun continues to work to add support for parallelism into its tools and platforms, the company has long had a feature in Sun Studio called Auto Parallelization or "autopar," which will analyze your code "and if it feels it is 'safe' to do so it will create threads based on your loop structure" to support parallelism, Oberoi said.
Meanwhile, Intel is supporting transactional memory as a way to deal with parallelism. STM (software transactional memory) is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. Oberoi claims the technology got its start in Sun Labs. Intel's C and C++ compilers support it.