point
Menu
Magazines
Browse by year:
July - 2007 - issue > Technology
Programmer's Next Big Challenge Multi-Core
Priya Pradeep
Monday, July 2, 2007
Penryn (2007), Nehalarm (2008), Westmere (2009) and Sandy Bridge (2010)…sounds like the names of exotic race horses set for debut. Wrong! These are the code names of multi-core chips coming out of Intel’s stable and set for launch at these respective years. These silicon race horses need able jockeys to make optimum use of the increase in cores on a single chip. Software programmers who are able to code effective threads to match the processor power would be in demand.

Intel India launched its Software Seminar Series at Hyderabad in June 2007. The intent of the program was to educate programmers about multi threading programming which comes in the wake of the campaign for its multi core processors. Also it introduced three software product enablers—compiler, debugger and threading tools—for multi thread programming.

Intel has taken its program on software creation tactics for multi-core chips to software developers to many universities in India, like the Visvesvaraya Technological University, Bangalore; IIT Kanpur, IIIT Pune and NIIT, apart from corporates.

At present the company has just launched the Intel Core 2 Extreme Quad Core Processor. Around a million quad core units were sold worldwide by early 2007. About 1000 Intel engineers worldwide are working on multi-core processors. The evolution of these silicon wafers has been faster than the programmers who code can stomach.

Parallelism – In Fashion now
Evolution of parallelism has come a long way and now the future looks bleak for single core processors. The year 1994 saw the launch of single core and just one year later the world had its first dual core. Speed to 1996 and the first quad core emerged on the processor horizon. And now the buzz is multi-core and that parallelism is here to stay. Multi-core is about running two or more CPUs on one chip. It boosts well written multi threaded applications and not single threaded ones. Thus work is divided across threads in a program written in the same format as the parallel multiple lanes in a highway. This is nothing but hyper threading wherein two or more threads are running parallel inside a single CPU. Hence software does not run serially because of the absence of a serial code.

An important aspect of parallelism is scalability. It is simply the ability of the software to get more performance as the processing cores increase. Serial code hampers scalability. Amdahl’s Law states that parallel portions of the program code can be sped up infinitely in theory however the serial portion remains serial and limits speed of the code. As the number of cores increases, programs can be rearranged to use parallelism. The advent of multi-core processors now provides even the regular personal computers with parallel power.

However, parallelism in programming should be done smart. A supermarket may have 20 employees. However it does not mean that all 20 employees are stationed to man equal number of check-out lines. Tasks have to be only divided when and where they are needed. The same is applicable for coding. Software has to be designed to be broken up into multiple threads that can run concurrently and thus keep the multiple cores busy. Developers need to learn new parallel programming models, threading methodologies plus new debugging and optimization techniques.

Hardware Limits
500 MHz CPUs gave way to 1GHz long time back. Now the flavor of the season is the 3 GHz range. Is this the end of the road for chip up gradation? Moore’s law favors exponential growth but hard physical limits loom ahead. However the good news is that processors are going to become more powerful. The solution lies in increasing clock speed and execution optimization through multi-core. Processor speed did not advance through single core as the laws of physics meant that if it was done that way the heat generated is equivalent to a nuclear reactor sitting on the chip in your PC.

The Faster, the Merrier
“Faster processor speeds mean quicker performance in applications used in the entertainment industry; scientific, meteorological and geological studies; learning and travel services; personal media creation, enterprise resource planning management, and the health sector,” voices Phil De La Zerda, Director of Sales & Business Development, Developer Products Division, Intel. The shrinking of nanometer line sizes from 65 nm (2005) to 45 nm (2007) means more transistors can be packed per chip, with power consumption decreasing and performance increasing. Less power consumption translates into products getting greener. There is a 300 percent performance gain per watt increase. With further development of chip technology, fanless laptops consuming less power will be the result. It is interesting to note that power usage can be reduced even in the type of codes programmers write.

Corporate honchos are listening keenly to the buzz about faster processors as quicker performance translates to greater productivity of employees. The statistics shows : even a three second wait after a mouse click 60 times a day translates to three minutes lost per day. Multiply it by weeks and months and a large amount of productive time per year is lost. Various trends happening due to multi-core in various sectors are the order of the day now.

The latest Internet trends reflect the multi-core technology. Google Maps and You Tube are some of the Web 2.0 sites which use this technology. New applications demand interaction between two or more websites, like between Google and Amazon, for the search of a book which requires fast computing of large amounts of data. The future is where multiple websites interact and a network of networks is created. Multitasking is the de rigueur norm for the future where the virtual world has to multitask like the human brain which can handle a person riding a cycle and singing simultaneously. The multi race is getting more and more mainstream with its highway inching closer and closer to our homes too.

Intel is advancing furiously along the multi-core path even envisioning 144 cores on a chip in the future as revealed by Narendra Bhandari, Director Asia Pacific, SSG Global Developer Relations Division, Intel. The hardware industry is galloping ahead, and the only option for software programmers is to ride the wave and match up with the multiples ahead.

Twitter
Share on LinkedIn
facebook