Parallel tools are lining up

Parallel.png

There is a growing connection between parallel computing and the delivery of cloud-based services, as this week’s ISTEP Software Conference in Barcelona demonstrated.

In its fifth year, the event is sponsored by Intel which, along with AMD, is leading the charge in development of multicore processors. It is these that lie at the heart of what is expected to be a sea-change in the way computer systems are designed and built, a change that will be ideally suited to delivering complex services to large volumes of simultaneous users over the internet.
 
Parallel processing has, of course, been the cornerstone of high performance computing for many years. These supercomputers are found running the complex modelling tasks such as weather forecasting and pharmacology analyses, or designing large engineering projects. They are also drifting down into the upper reaches of business applications, such as running risk analysis systems for financial institutions. And as the technology moves further into the business arena, so the needs of delivering services to business users rises up to meet it.
 
Parallel systems exploit the multiple processor cores in modern processor chips by dividing tasks between them. Most cloud services do not require immensely powerful processors, but they do need very large numbers of average power. Multicore processors provide that, if the systems programming can be created to manage it. And that is now the challenge, as programming for parallelism requires a different approach to building serial applications, and raises different problems that need to be solved.
 
Keynote speaker at the event was James Reinders, director of marketing and business for Intel’s Software Developer Products Group. In practice, he is the company’s chief parallel computing evangelist. One of the key issues he identified which point to the growing interdependency between parallelism and the cloud is humanity’s love of data. “It is estimated that the total of available data was 281 Exabytes in 2007 and that this figure is growing by 60% a year,” he said.
 
This is increased further by the move to more comprehensive and powerful technologies for familiar tasks. “Higher resolutions and more colours mean more data is needed for an image. A 3D movie means double the data of the 2D one. A move from 35mm to 70mm frame sizes means fours times the data is used. Multicore processors are now needed to keep up with this. But serial processing techniques are now a dead end.”
 
Much of this sector is the province of Microsoft applications and Intel already has its own development environment, Parallel Studio, that works with Microsoft’s own Visual Studio development suite to provide tools for existing developers to move into parallelism. The pair is now engaged in a complementary arms race to build more tools that can build business-oriented parallel applications and services.
 
Reinders introduced a new one coming later this year from Intel. This is currently known as Ct Technology (where `Ct’ stands for `C for throughput’). Built on technology from recently acquired RapidMind, this looks a particularly interesting development tool for cloud services. Its target is to allow the creation of the right extensions to handle large amounts of data in parallel. It can be used within a distributed memory space, which means that users can write services and applications which are independent of the systems and resources available. This means that, within reasonable bounds, they will run on the system software and processor types available.
 
On the Microsoft side there are strong signs that the company has a better grasp on the potential for applying parallelism to business applications and services than might have been expected. Steve Teixeira, Product Unit Manager, Parallel Developer Tools, pointed out some of the parallel-specific developments included in Visual Studio 2010, which was launched last Monday.
 
“The hot word for us is `Tasks’,” he said. “We are aiming at task-based programming rather than thread-based tools. Here the objective is to create a development environment where different types of task can be invoked by type, such as those that have no time or interoperation dependencies, those tasks that are time dependent, parented tasks where one task is parented by the task with which it has a time and/or interoperation dependency, and `factory tasks’ where explicit joins are required, or delayed starts, or continuations. These are essentially code workflows.”
 
Microsoft’s vision for HPC is to reduce the complexity and help HPC reach a new audience in the business community. “The hard problems are scaling data volumes,” Teixeira said. “They are increasing faster than compute and storage, and parallel programming models are hard. So we don't want to create new models but embrace the old ones as much as possible, and increase the reach of existing source codes such as Cluster SOA, .NET/WCF and Excel Integration.”
 
What was particularly interesting was is observation that developing multi-threaded programs actually just needs a subgroup of senior specialists, because businesses have little desire to go `deep' in the technology. “So in businesses the best developers should focus on creating business value and not concurrency.” This is a view that would also map well on to cloud infrastructure, where core teams provide the essential technical resources, freeing traditional developers in businesses to concentrate on orchestrating and architecting their specific service requirements.
 
The key parallel technical development from Microsoft is Parallel LINQ. According to Teixeira this aims to get rid of a good deal of what he calls the programming `gunk' needed by parallel programming. It divides the development process up into three camps, programming models, runtimes and tools. It features dynamic scheduling to allow management of tasks across the cores available. This does mean that the tasks have to be independent as they are often run out of order and therefore have to be stand alone and be correct, but it can improve performance significantly.
 
`Correctness’ is an important concept for any parallel application or service, and this is particularly important for any that are planned to run in a cloud environment. Common problems found with parallel applications are race conditions, where an incorrectly designed application takes over all available resources, reducing the overall performance of the system, and deadlocks, where two or more tasks are dependent on each other finishing first in order to complete their task. This can bring a complete environment to a standstill.
 
This is one area where it can be argued that some elements of the `old’ Microsoft approach is still to be seen, in that Visual Studio currently depends on the capabilities of Intel’s Parallel Studio to identify and resolve incorrect coding.
 
Such problems do mean that testing is going to be much more of an issue, as David Norfolk, practice leader at Bloor Research for development and governance, pointed out. “Correctness has to be a core part of the development process, not an after-thought.”
He also addressed the issue that many legacy applications will only run on one core, “so having multicore processors can be pretty much a waste of time and technology. So going parallel is not trivial, and having multicore systems is not an automatic step into parallelism.”
 
His advice – that writing new applications and services may be the better, and possibly only option as the future approach – may seem a tad drastic but does in practice echo Reinders’ initial observation. Serial programming has essentially run its course, which in turn means that a growing number of serial applications are fast approaching their sell-by date.
 
Norfolk also suggested that all service development processes should include end to end user experience monitoring. “This will point to where parallel can best be used, allowing businesses to target the applications and services that are important and/or give the best business value. And businesses should not forget that `value’ means creating environments which produce happy workers who want to work, not just the biggest margin.”
 

tags for Parallel tools are lining up

Now on techcloud 9

Commenting on the cloud

Next | Previous

Twitter feed

Tag cloud