The Leading Source for Global News and Information Covering the Ecosystem of High Productivity Computing
May 11, 2007
Hot on the heels of PeakStream, RapidMind Inc. has launched its software development platform for multicore computing. On Monday the company announced RapidMind Platform v2.0, a software environment that targets GPUs from both NVIDIA and AMD/ATI as well as IBM's Cell processor. The company has also prototyped a version that will support multicore x86 processors from Intel and AMD.
Both PeakStream and RapidMind have launched platforms based on the same basic premise: HPC application developers want to be able to write hardware-agnostic code for multicore architectures. Considering the diverse range of multicore hardware that is beginning to populate HPC systems (e.g,, the Cell processors, NVIDIA/AMD GPUs, and Intel/AMD x86 chips), this seems like the right approach. The underlying proposition is that the current crop of multicore devices will rapidly evolve in both architecture and core count. With this type of volatility, software developers will be motivated to decouple their code from the hardware so that their applications can live on different types of architectures and automatically scale as new processor generations are introduced.
In talking with RapidMind's President and CEO Ray DePaul, and Chief Scientist and company co-founder Michael McCool, it's clear that their vision of delivering productivity to these multicore-based systems is to move beyond the thread model of parallelism. McCool said programmer-controlled thread management is fraught with problems. The scalability issue of mapping static application thread counts to processor cores is always a problem if application portability is a goal. Beyond that there are the inherent dangers of deadlocks and race conditions and load balancing problems when the thread workloads are asymmetric.
The RapidMind Platform uses existing C++ compilers and tools; developers just have to link in the RapidMind library to access the provided API. The library manages all the low-level parallelism and data streaming. The programming model presented to the user is independent of the number or cores or any other specific hardware attributes. The parallelism and data movement are managed in the internal layers of the software. According to McCool, this makes it impossible for developers to generate race conditions or deadlocks. He claims that the programming concepts involved can be learned within half an hour by any good software engineer.
The company has supposedly attracted over 1000 beta developers for applications that range from medical imaging to financial analysis and spam filtering. RTT USA is already using RapidMind's platform to develop commercial 3D real-time visualization applications for the automotive, aircraft and consumer-goods industries.
RapidMind's model, like PeakStream's, is geared for data-level parallelism. It's described as an SPMD (Single Program Multiple Data) stream processing model, where different cores execute the same instructions, with each core working on different data. Using the platform's API, developers define functions that are applied to data arrays. At runtime, the system software automatically distributes the data operations across the different processing elements.
The rationale for this approach has to do with the dichotomy between computation and memory performance. While it is relatively straightforward to add more cores as process technology shrinks, memory bandwidth to feed those cores is not increasing nearly as fast. McCool said the RapidMind software works very hard to optimize data movement so that memory latencies are hidden and RAM accesses are performed efficiently. The RapidMind system also includes load balancing to move work around so that all the cores are used efficiently.
"The system is highly tuned toward making sure that memory transfers overlap with computations, and that the data stays on-chip as long as possible and you get as much work done before the data goes off-chip again," explained McCool.
Given the high level of parallelism inherent in processors like the Cell and GPUs, these architectures are particularly well-suited for this type of stream computing model. The Cell contains nine cores: a PowerPC core and eight Synergistic Processing Units (SPUs). And as long as you're not in the market for double-precision support, NVIDIA and AMD GPUS support even greater parallelism. The latest NVIDIA G80 device encompasses 128 cores. But as DePaul stated, "the challenge has always been how the developer can take advantage of these accelerator-type models."
HPC programmers are all for removing complexity -- as long as you don't remove the performance too. RapidMind presented some benchmarks to show they are delivering the expected performance when using GPUs for acceleration. Running an application based on the Black-Scholes algorithm, the company was able to show a 32x performance speedup on an NVIDIA 7900 GTX compared to the same application running on a Woodcrest Xeon workstation. They also showed a 2x performance increase for a BLAS routine SGEMM application, and 3x increase for an FFT workload. The results are not too surprising considering the single-precision floating point performance advantages of a high-end GPU versus a high-end CPU.
Page: 1 of 2(Digg, Technorati, more)
New Paper: Parallel Computing Without Parallel Programming
Learn how domain experts can run VHLL programs like MATLAB® on a variety of high-performance platforms without low-level reprogramming and how to work with the largest datasets and complex algorithms without sacrificing ease of use or reducing productivity.
Jul 09 | Engineer Live | The demand for computational tools to underpin the 3D seismic interpretation process has never been more apparent. Read more...
Jul 08 | EE Times | Unemployment for U.S. engineers has reached record levels, according to government figures. Read more...
Jul 08 | Network World | Global spending for 2009 projected to drop 6 percent, for a total of $3.2 trillion. Read more...
Jul 08 | Linux Magazine | Portability or efficiency? Neither is guaranteed when writing explicit parallel code. Read more...
Jul 07 | Ars Technica | Japanese company builds custom ASIC to accelerate real-time ray traced rendering for the auto industry. Read more...
Jul 10 | | Engineers, scientists, and other domain experts depend on the productivity enabled by very high-level language (VHLL) tools like MATLAB® and Python. However, as datasets grow larger and programs get more sophisticated, ordinary desktop computers can no longer keep up. The paper explores how to run VHLL programs on high-performance platforms without low-level reprogramming. Work with large datasets and complex algorithms without sacrificing ease of use or reducing productivity.
Apr 14 | | Many HPC IT departments are feeling the rising pressure to deliver more capacity computing and performance while trying to reduce the total cost of ownership. This white paper discusses how an environmentally-friendly and open-standards HPC building block based computing system using flexible interconnect options helps address capacity computing needs.
Source: Addison Snell, GM/VP, Tabor Research; sponsored by Dell
Many organizations that could benefit from the use of HPC clusters find that it is complicated to get the systems up and running because of limited IT resources or the complexities of the clusters themselves. Learn how the Intel Cluster Ready program, for which Dell was an original partner, seeks to address this challenge for entry level and mid-range HPC users.
BlueArc's Titan architecture represents an evolutionary step in file servers by creating a hardware-based file system that can scale bandwidth, IOPS, and overall data capacity well beyond conventional software-based devices. With its ability to virtualize a massive storage pool of up to four usable petabytes of tiered storage, Titan can scale with growing data requirements, offering a competitive advantage for businesses, researchers, or other enterprises seeking to better manage data growth while still ensuring optimal performance.
Sun Studio Compilers and Tools and Sun HPC ClusterTools allow you to create high performance parallel applications for OpenSolaris, Solaris and Linux. Sun Studio Express 11/08 includes MPI performance analysis capabilities and full OpenMP 3.0 compiler support. Learn about all this and the latest in Sun HPC ClusterTools 8.1.