Friday, May 23, 2008

Developers, go parallel, or perish, says Intel

Parallelism or parallel computing involves the simultaneous use of more than one computer or processor to execute a program. Ideally, parallel processing makes a program run faster as there are more engines (CPUs) running it.

India has been slow off the blocks as far as parallelism is concerned. Intel is undertaking various programs to ensure that software developers in Inda keep pace with the latest developments.

Intel has been developing microprocessors for a long time. James Reinders, Chief Software Evangelist and Director of Intel Software Development Products, said: "You can double performance and reduce power. Power consumption in a microprocessor isn't something that the industry wants. The solution is to add cores."

There are bandwidth challenges with multicore. Intel will be adding QuickPath technology later this year. Providing point-to-point high-speed links to distributed shared memory, the Intel QuickPath technology unleashes the parallel processing performance of next-generation Intel 45nm microarchitectures (codenamed Nehalem and Tukwila). These microarchitectures, built from the ground up, will be the first to use the Intel QuickPath interconnect system and can see significant improvements in overall performance.

Reinders added, "We will also go to eight cores this year. We are looking at working with developers, so that they can take advantage of the cores. We need to look at how they can make parallel programming more flexible."

Tech challenges
Intel has been seeing pretty strong trends of users using parallelism or perhaps, trying to figure out how to use it best. The most active areas where parallelism is currently being used are in scientific applications and high-performance computing. The challenge is in the high-performance computing area, which involves lot of digital media content, said Reinders.

Indian scenario
Commenting on the scenario in India, Narendra Bhandari, Director, Intel Software and Solutions Group, said: "In India, we have been interacting with the telecom software companies. They have gone on to build parallelism, and actually delivered to local customers."

Reinders further added: "In Karnataka, we have interacted with an educational software company. We have tools that analyze what their programs do. Very quickly, they agree to discuss, and three to five weeks later, they are able to release new patches of their products."

Citing Tally as an example, Bhandari said: "We were able help Tally look at their applications. As the data load increases, challenges increase as well. They have since seen dramatic improvements in their applications. Yet another example is an animation company. We looked at their rendering. In two months or less, they saw the results. We showed them where the paradigm was shifting."

According to Intel, the interest levels in the adoption of the tools, as per the downloads and sales, etc., has gone up from 3x to 5x. "Traffic is quite high on our software network portal. This is the traffic to the geeky portion of Intel. All of these trends indicate that the awareness regarding parallelism has been very good in India," added Reinders.

Two of Intel's customers have applauded the company for its good work in parallelism -- the Institute of Mathematical Sciences of India (IMSI) in Chennai and Philips Medical.

Training programs
Intel launched a University program two years ago (Go Parallel or Perish). As of the end of 2007, 407 institutions globally have signed up. About 200 of these are from India. According to Reinders, most of the professors that Intel meets do touch upon parallelism in their classes. "We've also seen improvements at the UG level."

Bhandari added that Intel has a generation of programmers who have written code with non-parallel environments. "Parallelism skill is now going to be critical. The curriculum changes at institutes do not happen overnight. However, IIT-Kanpur built a curriculum two years ago and open sourced it," he pointed out. "We also talked to NIIT. We introduced parallelism in their curriculum. This was 18 months ago. Elements of our courses are also going on at G-NIIT. The NIITs have large scale and scope," he added.

Open Source
The fact that Intel does a lot of work on open source is perhaps, not well publicized. Reinders noted: "We do a lot of work in Open Source, and are right behind IBM and Red Hat. Linux eats up more power. The impact is the same on laptops and servers. We came up with seven different patches. Cutting power consumption on Linux devices is something that Intel is good at."

Intel also does a lot of seminars and other software partner programs. Reinders said: "Our focus is more toward the developer community. DRDO and BHEL are some of the customers in India who have benefited from our software development."

Three programmer challenges
According to Intel, programmers have three immediate challenges with parallelism: scalability, correctness and maiintainability. The rules of the thumb, as outlined by Intel are:

• Think parallel.
• Program using abstraction.
• Program in tasks (chores), not threads (cores).
• Design with the option to turn concurrency off.
• Avoid using locks.
• Use tools and libraries designed to help with concurrency.
• Use scalable memory allocators.
• Design to scale through increased workloads.

Parallelism offers new doors. Creativity is required to open these new doors. Developers would do well to look for these doors. Without any doubt, parallelism is central to Intel's products. Multi-core needs parallel applications. Therefore, developers need to learn to either think and go or be parallel, or perish!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.