Portuguese programming prowess was much in evidence as Lisbon was the venue for the 2007 annual Intel EMEA software development conference. Adrian Bridgwater attended to learn more about the company’s vision for the next generation of computing.
Now keen to firmly state its position within the software engineering landscape, this meeting of minds was the second annual Intel EMEA software development conference. This year’s gathering saw a selection of speakers drawn from across the industry including Microsoft, JupiterMedia and Tabor Research as well as other media sources including ZDNet, Dr Dobbs Journal and of course Intel itself.
The concurrency revolution
After an opening address from Intel Developer Products Division marketing director Edmund Preiss, the keynote presentation was delivered by Herb Sutter, software architect for Microsoft and chair of the C++ Standards Committee. His presentation, titled ‘Software and the concurrency revolution’ was designed to convince us that, “Although driven by hardware changes, the concurrency revolution is primarily a software revolution.”
“Software requires the most changes to regain the free lunch,” said Sutter. What he meant by this is that the free lunch is over for single-threaded apps. We can’t just turn more processing power on when we need it without a re-think in the way we approach programming methodologies. So software development requires a change in terms of the way developers structure their programming model
if it is to remain relevant. The Moore’s law truism that used to guarantee us that each year we get FASTER processors now reads: ‘each year we get MORE processors’. This means that Moore’s law still holds in terms of processing power, but the difference is that processors themselves
are not becoming more complex each year in the way they used to – but we do get more multiple cores.
Sutter then went on to discuss the state of a handful of software revolutions that were essentially technologies that grew up in the 60s, bided their time until the 1990s and then took five years to flourish and become a mature tool/language/framework or runtime ecosystem. His examples were GUIs, objects, generics, network programming and finally concurrency. In each case, these technologies took time to grow
into themselves and experienced a sea change
in development and growth once their time
had come.
Time to turn
Other elements of his presentation went on to detail the reality behind intelligent deployment of concurrency within next-gen software development in order to to spell out the way this technology will act and react in straightforward ‘Office’ type apps right up the scale to many-core killer applications. Much of Sutter’s presentation drew up his high profile written piece entitled: The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. You can read it in full at http://www.gotw.ca/publications/concurrency-ddj.htm
Looking forward to the next breed of applications that will evolve with the concurrency revolution in software, real time speech recognition, HD quality teleconferencing and a host of other previously ‘unfulfilled’ technology possibilities will come to surface. Sutter enthused that Intel recognises it is the ‘gating factor’ in making these technologies work and is poised to nurture these developments forward over the next five years – that half decade period he previously identified as being necessary for full evolution of ‘perennially nascent’ technologies.
Keeping the audience momentum up, next up to the podium was editor-in-chief of Dr Dobbs Journal, Jonathan Erickson. He detailed how and why the virtual environment found within the Second Life phenomenon represents a programmer’s paradise and essentially depends upon the compute power of today’s highest powered multi-core systems.
Second Life: the new developer community
Erickson explained the structure of Second Life for those new to the avatar-driven virtual world making it very clear that this is NOT A GAME. Second Life is powered by 2,000 Intel servers and scaleable for up to 10,000 servers. This runs on Debian Linux for scalability and MySQL lets the server farms scale horizontally. There are currently 5.6 million registered users (although that figure goes up well over a million every 30 days).
Over US$1 million of transactions per day are currently going through the site and approximately 36,000 simultaneous users are typically online at any one time. The system has capabilities for 100,000 simultaneous users. So clearly, we are talking about a major scale system here.
So why is Second Life so important for programmers? The answer lies in collaboration as it is the complete multi-user platform. What is more, apart from a few basic elements of ‘world’ infrastructure, everything you see when you step inside is created by users.
To put the importance of the Second Life site into context, Erickson quoted the man he described as the ‘ultimate programmer’. “Code is everything – that’s why we are building an island for Second Life coders and first life developers,” said IBM’s celebrated Grady Booch. So, if Grady likes it – you should too, right?
Second Life is a huge simulator running a potentially enormous number of finite state machines. Linden Scripting Language (LSL) is the tool by which programmers can engage in a typical Second Life development environment. LSL is essentially a C-like language that is event-driven and features states while supporting 3D variable types. It has built in functions for manipulating physics and social interaction among avatars. So how does all this connect with Intel’s vision to power newer, bigger, better and faster large scale systems? In short, the 3D web as represented by Second Life is the next step in the evolution of distributed systems.
Big in Beijing
Running concurrently with the Lisbon event, executives at the Intel Developer Forum in Beijing detailed more than 20 new products, technology innovations and industry initiatives, many of them industry firsts. Under the backdrop of Intel’s leadership in 45nm Hi-k metal gate silicon technology and how it will ignite new innovation and growth opportunities, Intel disclosed new performance details for its next-generation “Penryn” processor family. The company also unveiled two product roadmaps for Intel architecture (IA)-based System on Chip (SOC) consumer electronic (CE) devices and business uses.
“Welcome to the era of multicore, an era in which all of our computing capabilities will multiply our own personal capabilities,” said Justin R. Rattner, Intel’s chief technology officer. “This developer forum will show how our multiple innovations go hand in hand with evolutions in social networking, PC and TV entertainment, online commerce and other growing demands on the Internet. Today, Intel is delivering a breadth of multicore processors worldwide and a product roadmap providing the incredible performance boost and energy efficiency needed to put the consumer more in control of the information age.”
Looking at the state of the market as it sits at the moment, in his afternoon presentation back in Lisbon, Bradley Jones, executive editor at JupiterMedia said, “Familiarity with threading, multi-core technologies and High-Performance Computing (HPC) and parallelism differs among developers but it is growing. I am of the belief that we are at the point of a paradigm shift in computing where we see renewed a focus in the need for speed in application performance.”
Wake up! Lazy developers
Jones followed up by posing some interesting questions as to what it will take the rest of the market to join the parallelism race. An ex-developer himself, he stated that it’s time for developers to stop being lazy and relying on the hardware to get faster while they fall back on the tools that they know. As multi-core brings multi-processing to the masses, developers will need to become more aware of these environments and how they work.
Looking at what technical writer Joe Duffy said in his “Application Responsiveness” piece in Dr Dobbs, he said, “The availability of multi-core processors means we should take advantage of concurrency wherever possible. As it turns out, the requirements to do so are closely related to the requirements for maintaining responsive applications.”
Parallel or perish
Wrapping up with a closing keynote we heard from James Reinders, Intel’s lead evangelist & director of marketing with a session provocatively titled parallel or perish. Reinders posed the big question to us, namely: why have we waited so long to move to parallelism? The answer is simple. Because we have been able to avoid the change - and we have therefore chosen to, as it is a change that requires us to act and think differently.
“I’m quite convinced that the ‘non-parallel’ era will appear to be a very primitive time in the history of computers when people look back in a hundred years,” said Reinders. “Within a decade, a programmer who does not think parallel first will not be a programmer. The tools in this new world do not need to be radically different – but they need to address key problems related to abstraction of thread management and correctness verification.”
Task versus data
So some changes in thought process are required. One of the most fundamental decisions in parallelism is task versus data management. Reinders contends that the biggest issue is learning to think parallel, or as he puts it, “unlearning to think serial.” Fundamentally, thinking parallel means accepting that you will be using parallelism and therefore spending your time worrying about the best method to map your problem into task and data parallelism.
Ubiquity happens fast
This issue here is that, typically, the best serial solution to a problem is seldom the best parallel solution & vice versa and Intel is convinced that the shift to parallelism will soon be upon us. So developers need to change their mindsets now, as ubiquity of parallelism will happen and when it happens it will happen fast.
Intel’s position as a whole is one where it intends to help developers introduce parallelism today while minimising the pitfalls that may arise over time. Bringing this idea into focus, Reinders stated that, “What we’re interested in now is delivering products that solve three key issues for long term application viability: scalability, correctness and maintainability.”
Take this thought home
The central take home thought from this conference was that if you’re not working with parallelisation technology in mind right now; then you should be. Developers are urged to stand back and think about the fundamental structure of their application and examine what operations are most CPU-sensitive (or are likely to become so) and could therefore potentially benefit from parallelisation and concurrency. One final thought, there are a limited number of applications that will naturally parallelise, but most will not – all the more reason to start thinking about it now.
http://www.intel.com/software
http://www.intel.com/software/products
http://www.intel.com/software/mcdeveloper
http://www.qbssoftware.com/intel