The Leading Source for Global News and Information Covering the Ecosystem of High Productivity Computing
June 09, 2008
The multicore era has opened the Pandora box of parallel programming environments. Closing it won't be easy.
Homogeneous multicore processors from Intel or AMD have become mainstream. However heterogeneous architectures such as multicore with GPUs or any hardware specialized accelerators have a better performance/power ratio. When high performance and power efficiency have to be achieved, specialized hardware is often the way to go. Unfortunately, programming such heterogeneous architectures is a headache for any application developer. The embedded market has been mixing different hardware cores for decades and living with this headache at a very high programming cost.
GPUs coupled with Intel or AMD multicore processors are very cost-effective and promising high-performance heterogeneous hardware platforms for general-purpose applications. But they represent the perfect example of the dilemma the developers have to face. GPUs can provide a 10x or greater performance improvement on computations that can be expressed as stream computing. However, contrary to general-purpose cores, no consensus on a programming language for GPUs has been reached, leaving developers with having to mix hardware specific code with their legacy applications.
Also, no parallel programming model such as OpenMP or MPI for homogeneous platforms exists to combine heterogeneous cores. GPUs are loosely coupled with the main CPU; they cannot be time-shared and have no virtual memory. Even if the future of GPUs is not clear -- since graphics cores could be integrated on the processor die -- they are surely a good example of how thousand of cores might be used by applications. Furthermore, increasing the width of SIMD instructions, such as SSE or Altivec, is also bringing heterogeneity inside cores that compilers alone won't be able to address.
Code portability is the challenge
Hardware platforms evolve at a tremendous rate, while application software lives almost forever. Portability is very difficult to achieve on multicore architectures. Committing to any hardware-specific or manufacturer-specific programming dialects should be avoided. But this threatens performance, which is the main goal of multicore architectures. The issue is to not only write parallel applications but also to achieve high performance by efficiently mapping computations on available hardware resources. For instance, depending on its execution context (problem size, available units, etc.) a computation might run faster using a GPU rather than the main processor SIMD unit and vice versa. Contrary to traditional parallel architectures that statically allocate parts of the machine to an application, multicore processors are used in a fluctuating environment where processes are competing for the available compute and memory units. While users expect their applications to run on various platform configurations, developers do not expect to build numerous architecture-specific applications.
Parallel programming environments and languages represent a deep issue at the heart of the barely understood hardware/software divide. Computer scientists have been tackling this issue, mainly for scientific computing, for years with mitigated success. For instance, High Performance Fortran, which integrates many features for parallel computers, is the result of a large research community effort. This initiative has pushed forward compilation techniques but has not reached the market. Industry is also in a very difficult position. It has to balance the advantages between bringing an advanced programming technology that will target its own hardware approach -- such as NVIDIA's CUDA language for instance -- at the cost of portability, and contributing to a standard that might help competition but increases the overall portfolio of parallel applications.
Resource management is also an open question and a critical issue that is not being addressed by current exploitation of systems. Supercomputers have been avoiding this problem by running only one application at a time or by partitioning the machine nodes. Unfortunately, programming and resource allocation cannot be considered separately. Virtualizing hardware resources is going to help, but the performance issue remains. How can we make sure that competition for hardware resources between applications will not degrade performance?
Directive-based programming
To address code portability as well as performance on heterogeneous multicore platforms, CAPS has developed a Hybrid Multicore Parallel Programming (HMPP) workbench, a directive-based programming solution. The aim of HMPP is not only to simplify the use of hardware accelerators in sequential applications but also to keep the application code portable.
The goal is to set up a loose relationship between an application code and the use of a multicore hardware accelerator. HMPP is based on a set of compiler directives and comes with tools and a software runtime that support multicore processor parallel programming in C and Fortran. Subroutines that can be remotely executed on a hardware accelerator are declared via directives. These subroutines can be implemented for different and various hardwares (GPU, SIMD, FPGA, etc.) and also for specific execution contexts. The appropriate execution hardware is selected at runtime depending on the system configuration, the resource availability and data-dependent conditions.
Page: 1 of 2(Digg, Technorati, more)
PGI Accelerator™ Fortran 95/03 and C99 compilers for x64+NVIDIA
Accelerate applications on x64+GPU platforms by adding OpenMP-like compiler directives to existing Fortran and C programs. Available now for Linux, MacOS and Windows. Download a free 15 day trial.
Platform HPC Workgroup Manager
Platform HPC Workgroup Manager integrates all the cluster productivity tools you need to deploy, run and manage your HPC environment.
C-DAC announces plans for a petaflop system; IBM researchers are working on vertical integration techniques to extend Moore's Law another 15 years. We recap those stories and more in our weekly wrapup.
Read More...
The Moscow State University supercomputer, Lomonosov, has been selected for a high-performance makeover, with the goal of tripling its processing power to achieve petaflop-level performance in 2010. T-Platforms, who developed and manufactured the supercomputer, is the odds-on favorite to lead the project.
Read More...
Right on schedule, Intel has launched its Xeon 5600 processors, codenamed "Westmere EP." The 5600 represents the 32nm sequel to the Xeon 5500 (Nehalem EP) for dual-socket servers. Intel is touting better performance and energy efficiency, along with new security features, as the big selling points of the new Xeons.
Read More...
Mar 19 | OfficialWire | New super to support intelligence work Down Under. Read more...
Mar 18 | ChannelWeb | Westmere parts already showing up in HPC machines. Read more...
Mar 17 | The Register | But what about the tier ones? Read more...
Mar 17 | Cadalyst Magazine | A new generation of workstations is changing the nature of technical computing. Read more...
Mar 17 | Linux Magazine | Latest iteration of Sun Grid Engine able to tap into Cloud. Read more...
Jan 12 | | In-depth look at vSMP Foundation server virtualization technology, technical implementation, use cases and capabilities. The technical whitepaper provides an architectural overview and details on the three vSMP Foundation products: vSMP Foundation for SMP, vSMP Foundation for Cluster and vSMP Foundation for Cloud.
Jan 18 | | This white paper discusses Gore’s copper cable assemblies, and how they continue to exceed the standards for providing reliable, cost-effective solutions for high-performance computer applications.
Join this online panel discussion for live Q&A with leading industry experts, analysts, and end-users to discuss the latest innovations, best practices, barriers to implementation, and measurable benefits of server virtualization with a particular focus on today's real world solutions.
Learn about scalable fault-tolerant architectures and examples of energy efficient and scalable supercomputing clusters using dual QDR InfiniBand to combine capacity computing with network failover capabilities with the help of programming languages such as MPI and a robust Linux cluster management package.
LIVE@SCO9: The IBM team discusses new innovations in hardware, software and services that help clients better understand their workloads and get insight from their R&D efforts. Technology demonstrations include the soon-to-be-released Power7 HPC processor, the DCS990 system with 2.4 petabytes of storage, the xCAT management tool, secure HPC cloud computing and more. Winners of two HPCwire Readers' and Editors’ Choice Awards! Take the IBM virtual tour at SC09 or more information go online to: http://www-03.ibm.com/systems/deepcomputing/sc09.html