Wednesday, October 24, 2007

Intel Wants Developers To Program For MultiCore

Intel Organizes Seminar On Multi-Core Programming In Mumbai

I have just come back from an Intel Software Seminar Series held in Mumbai at Leela. Intel organized this seminar for developers, so that they could make a paradigm shift towards programming for Multi-Core processors. India is a major hub of software developers and Intel thinks they need to help programmers make the shift!!

A while back I had read this article on "Multi-Core Crisis" and found it as an interesting representation. Today, at the seminar, the first speaker, Vivek Venkatesh showed few slides on why there is a need for multi-core processors and how the future is going to be multi-core processors. How Intel plans to move by increasing the number of cores in the future. He made a statement that, "Youtube and multimedia require multi-core processors"... Im wondering how I watch youtube videos on my single core AthlonXP machine?? :-)) He also stressed on, "the free lunch is over" statement made by Herb Sutter.

Free Image Hosting at www.ImageShack.us Free Image Hosting at www.ImageShack.us

After the session was over, the Q&A session started and I put a question of how RapidMind would help realize this goal. James Reinders dismissed RapidMind's innovation as being too tough to implement in the current state, but mentioned that the idea has some promise!!

Next to come on stage, James Reinders was the main speaker at the Seminar. James has been working with Intel for 19yrs and he has been a multi-core evangelist for sometime now! It was great listening to his insights and made some very interesting points on what software developers and architects need to think when programming multi-core computers.

James mentioned 1-2-3 recommendations that developers can do today to use multi-core processors:
1.) Libraries - James mentioned that use of libraries that are written for multi-core processors are like putting your burden on someone else's shoulders.
2.) openMP - Intel was one of the main contributor to this standard and nearly every C/C++ compiler today uses it. James recommends using modern compilers like MS C Compiler and gcc that use openMP
3.) Threading Building Blocks (TBB) - This is Intel's new software to help multi-core programming by providing abstraction. James said this is an opensource software and should be used by developers who want to program. He showed example codes of how hand-made optimization for multi-core processors to Tacheon (2-D Ray Tracing) was complex and in just 17 lines of code using TBB, the work can be reduced.

He also mentioned challenges for multi-core programming:
1.) Scalability
2.) Correctness
3.) Maintainability

At the end, he talked about the 8-points that any developer must follow for multi-core programming. James wrote this for a Dr. Dobb's Journal, in the October edition. Read here...

In the concluding part before lunch, we had a quiz contest and I won a personally autographed book named "Intel - Threading Building Blocks" from James Reinders.

I also asked James Reinders about HT and Nehalem, since I knew he was one of the minds at Intel who supported Hyper-Threading (HT). He told that Core architecture wasn't benefiting much from HT and hence HT wasn't added to Core. But he told that Nehalem would be with HT enabled and would be processing 2 threads in each core. He also said that in the future Intel may go through Sun's Niagara 2 path of more threads per core, atleast in the server space.

Overall it was a nice insight into what's happening at Intel and what Intel feels about multi-core programming.

Other Photos from the event (2 other colleagues: Mandar & Namrata also attended):
Free Image Hosting at www.ImageShack.us Free Image Hosting at www.ImageShack.us

No comments: