February 07, 2012
Microsoft made an announcement last June about a new specification called C++ AMP (the AMP stands for Accelerated Massive Parallelism), a means to exploit data-parallel hardware in the C++ language. Seven months later and with the help of NVIDIA and AMD, Microsoft has published the C++ AMP spec.
Programs written in the AMP specification will be able to utilize both CPUs and GPUs, the idea being to make heterogeneous computing more transparent to the programmer. The process is actually pretty straightforward for developers because programs are essentially written in C++, with some additional language features and runtime library calls added to enable data parallel processing.
Microsoft's description delves a bit deeper:
“The C++ AMP programming model includes multidimensional arrays, indexing, memory transfer, tiling, and a mathematical function library. C++ AMP language extensions and compiler restrictions enable you to control how data is moved from the CPU to the GPU and back, which enables you to control the performance impact of moving the data back and forth.”
After the announcement of C++ AMP, Microsoft’s Daniel Moth provided a Hello World example of the changes between standard C++ and C++ AMP.
AMP is not the first specification that allows heterogeneous parallelization. In 2008, the Khronos Group came up with OpenCL, a vendor-neutral, open standard for parallel programming that has many adherents. OpenCL uses C as a base language, and unlike AMP, relies on the programmer to deal with a lot of the low-level data shuffling. According to an Ars Technica article:
“The result is that in OpenCL there's a big divide between the CPU world and the GPU world, and bridging the two requires lots of manual management by the programmer. C++ AMP makes using the GPU a lot more streamlined; the management is performed automatically, allowing developers to write more natural, high-level programs.”
There may be concern regarding performance, given the higher-level nature of C++AMP versus OpenCL, but Mark Ireton from AMD draws the same comparison to writing in C++ versus assembly:
“On a CPU, best performance, for a short piece of code executing on a single core, can be obtained by writing in assembler. There are developers that still do this. However, many more developers use C++. Programmer productivity is higher with languages like C++, and performance can be a little lower, but without languages such as C++, many applications are simply not feasible. A similar argument can be made for high-level languages such as Java or the .NET family.”
So the main advantage to AMP appears to be its ease-of-use, which potentially could open heterogeneous computing to a much wider array of developers. And because Microsoft has opened the spec to the community, other AMP implementations could be developed by hardware makers and other compiler vendors.
Symscape Releases Caedium v3.0 with HPC Cloud Support
Alchemy Solutions Launches NeoKicks and CICS on Windows Azure
The Eye of the Cyclone: Christian Tanasescu on SGI's Role in Technical Cloud Computing
Tilera Raises $45 Million Including Investments From Artis Capital, WestSummit, Cisco, Samsung
Awards for Outstanding High Performance Computing Achievements Presented at SC10
There are 0 discussion items posted.
|
Join the Discussion |
Higher education involves many collaborative projects that lend themselves to cloud services, however often those services are not tailored to the uniqueness of an academic environment. That's where the Internet2 NET+ project comes in. By partnering with 16 major cloud providers, the networking consortium is seeking to expedite the delivery of cloud services and by doing so advance research and innovation in the United States.
Read more...
It's been a little over a year since Univa took over stewardship of the open source workload manager and acquired the founding Sun Grid Engine team from Oracle, and the company just announced its third production release. CEO Gary Tyreman discusses the latest enhancements as well as the company's plans around cloud, big data and the enterprise.
Read more...
04/05/2012 | Appro | Designed to meet the growing global demand for HPC solutions, Appro's Xtreme-X™ Supercomputer delivers superior performance-per-watt and reduced I/O latency while bringing significant flexibility to HPC workload configurations including capacity, hybrid, data intensive and capability computing.
04/02/2012 | AMD | Developers today are just beginning to explore the potential of heterogeneous computing, but the potential for this new paradigm is huge. This brief article reviews how the technology might impact a range of application development areas, including client experiences and cloud-based data management. As platforms like OpenCL continue to evolve, the benefits of heterogeneous computing will become even more accessible. Use this quick article to jump-start your own thinking on heterogeneous computing.