Cray
HPCwire

Since 1986 - Covering the Fastest Computers
in the World and the People Who Run Them

Language Flags

Visit additional Tabor Communication Publications

Datanami
Digital Manufacturing Report
HPC in the Cloud
Green Computing Report

Tabor Communications
Corporate Video

MATLAB Adds GPGPU Support


MATLAB users with a taste for GPU computing now have a perfect reason to move up to the latest version. Release R2010b adds native GPGPU support that allows user to harness NVIDIA graphics processors for engineering and scientific computing. The new capability is provided within the Parallel Computing Toolbox and Distributed Computing Server.

MathWorks released R2010b in early September, and is taking advantage of this week's NVIDIA GPU Technology Conference in San Jose, California, to demonstrate the new GPU computing support. Early adopters, though, have already had a chance to check out the software. A beta version of the GPGPU support was unveiled at SC09 last November, attracting hundreds of customers who wanted to give the new capabilities a whirl.

According to Silvina Grad-Freilich, senior manager for Parallel Computing at MathWorks, that was about five or six times more beta registrations than they were anticipating. They also were somewhat surprised to see such a wide range of users sign up. "We were expecting to receive requests from people in very defined areas like finance or academia," said Grad-Freilich. "Interestingly enough, customers from all of the industries that we sell to registered for the beta."

The initial support for GPUs is confined to NVIDIA gear, and only for those CUDA-supported devices with a compute capability of 1.3 or higher. In the Tesla product line, that equates to the 10-series and 20-series (Fermi) GPUs. The rationale for limiting support to the late-model CUDA GPUs had to do with lack of double-precision floating point support and IEEE compliance in pre-1.3 CUDA GPUs. The MATLAB team felt both were required to make GPU computing a worthwhile capability for its customer base of scientists, engineers, and quantitative analysts.

Access to the GPU can be accomplished in two ways: via invocation of existing CUDA kernels and through high-level programming support that has been incorporated into MATLAB. Using the first method, users who are ahead of the curve GPGPU-wise will be able to leverage already-developed CUDA software, allowing them to call CUDA kernels inside MATLAB applications. But according to Grad-Freilich, they expect most MATLAB users will want to employ the new high-level support to get access to the graphics processors.

For native MATLAB GPU support, code changes to existing apps should be relatively minor. At minimum, the developer needs to invoke one call (gpuArray) to transfer the data array to the GPU and another call (gather) to transfer it back to the CPU host. The computations in between can use existing MATLAB built-in functions that have been overloaded to work on GPU arrays. GPUs can also be accessed with custom MATLAB functions provided by the user, simply by plugging the GPU array parameters into the function invocation. In the initial release, MathWorks has overloaded over 100 of the most commonly-used mathematical functions for GPU computing. Here is a simple GPU computing code snippet:

>> A = someArray(1000, 1000);
>> G = gpuArray(A); % Transfer data to GPU memory

>> F = fft(G); % computation on the GPU
>> x = G\b; % computation on the GPU

>> z = gather(x); % Bring back into the MATLAB host

The new support also includes the ability to distribute an application across a GPU cluster or a multi-GPU workstation, using MATLAB's parallel for loop (parfor). In this scenario, computations in the parallelized loop are executed on multiple GPUs in the user's setup. Because of the abstraction of MATLAB parallelization, the source code is portable across different types of multi-GPU configurations -- workstations, clusters and grids.

By offering this simple interface, MATLAB is able to hide all the gritty GPU details of hardware initialization, data transfer and memory management from the user. And since the average MATLAB user is a domain specialist rather than a professional C/C++ programmer, this allows them to remain in their software comfort zone. On the other hand, many MATLAB apps are intended only for prototyping. When they go into production, they may end up as professionally-developed C/C++ programs, the idea being to improve performance.

One of the nice outcomes of GPU acceleration is that some MATLAB codes can be made fast enough for production deployment. The speedups for some algorithms are on par with other GPGPU accelerated apps. In MathWorks' own tests, they were able to demonstrate a 50-fold computational speedup on a GPU versus the CPU implementation. In this case, the program was a spectrogram application using FFT functions, and executed on a 16-node GPU cluster.

However, when the CPU-to-GPU data transfer time was factored in, the measured speedup was just five-fold. That still represents very respectable acceleration, but it illustrated the performance penalty of the data transfers back and forth across the PCIe link (as well as, in this case, the GigE network of the cluster). Perhaps the more salient metric is the number of FFTs that can be managed by the different processors. The CPUs can only process a handful of FFT functions at a time, while the GPUs can handle millions, giving the GPU implementation much greater scalability

Although GPGPU is a new feature for MATLAB, there is already a lot of capability included for users who happen to have access to the newer NVIDIA hardware. The intention is to grow this functionality across the next several releases. To get a more detailed look and what's available today, check out the MATLAB GPU Support web page.

Sponsored Links

Accelerate your science with Seneca
One of the first HPC providers installing a 4X NVIDIA Kepler K-20 cluster. Invites you to a free evaluation on Seneca’s NVIDIA K20 Kepler cluster, pre-loaded with AMBER, NAMD, LAMMPS

Webinar: Programming Heterogeneous X64+GPU Systems Using OpenACC
Join Michael Wolfe as he compares the advantages and costs of using both low-level models and the directive-based OpenACC model for programming accelerated heterogeneous systems. Registration is free.

High-Performance Computing in Action
Businesses that want to be on the cutting edge of their industries are increasingly turning to high-performance computing (HPC) solutions to handle complex compute processes and speed up their rate of innovation. Download this Executive Brief to see how businesses in energy, life sciences and entertainment put HPC solutions to work in their operations.

May 24, 2013

May 23, 2013

May 22, 2013

May 21, 2013

May 20, 2013

May 17, 2013

May 16, 2013

May 15, 2013

May 14, 2013

May 13, 2013


Most Read Features

Most Read Around the Web

Most Read This Just In

Cray CS300-LC

Short Takes

NASA Builds 'Climate in a Box'

May 23, 2013 | The study of climate change is one of those scientific problems where it is almost essential to model the entire Earth to attain accurate results and make worthwhile predictions. In an attempt to make climate science more accessible to smaller research facilities, NASA introduced what they call ‘Climate in a Box,’ a system they note acts as a desktop supercomputer.
Read more...

Building Supercomputers with Raspberries

May 22, 2013 | At some point in the not-too-distant future, building powerful, miniature computing systems will be considered a hobby for high schoolers, just as robotics or even Lego-building are today. That could be made possible through recent advancements made with the Raspberry Pi computers.
Read more...

Running Computational Fluid Dynamics in the Cloud

May 16, 2013 | When it comes to cloud, long distances mean unacceptably high latencies. Researchers from the University of Bonn in Germany examined those latency issues of doing CFD modeling in the cloud by utilizing a common CFD and its utilization in HPC instance types including both CPU and GPU cores of Amazon EC2.
Read more...

Computing the Physics of Bubbles

May 15, 2013 | Supercomputers at the Department of Energy’s National Energy Research Scientific Computing Center (NERSC) have worked on important computational problems such as collapse of the atomic state, the optimization of chemical catalysts, and now modeling popping bubbles.
Read more...

Sponsored Whitepapers

Best Practices in Big Data Storage

05/10/2013 | Cleversafe, Cray, DDN, NetApp, & Panasas | From Wall Street to Hollywood, drug discovery to homeland security, companies and organizations of all sizes and stripes are coming face to face with the challenges – and opportunities – afforded by Big Data. Before anyone can utilize these extraordinary data repositories, however, they must first harness and manage their data stores, and do so utilizing technologies that underscore affordability, security, and scalability.

Progress in Parallel: the Bull Parallel Programming Center

04/15/2013 | Bull | “50% of HPC users say their largest jobs scale to 120 cores or less.” How about yours? Are your codes ready to take advantage of today’s and tomorrow’s ultra-parallel HPC systems? Download this White Paper by Analysts Intersect360 Research to see what Bull and Intel’s Center for Excellence in Parallel Programming can do for your codes.

Sponsored Multimedia

SGI DMF ZeroWatt Disk Solution

In this demonstration of SGI DMF ZeroWatt disk solution, Dr. Eng Lim Goh, SGI CTO, discusses a function of SGI DMF software to reduce costs and power consumption in an exascale (Big Data) storage datacenter.

Cray CS300-AC Cluster Supercomputer Air Cooling Technology Video

The Cray CS300-AC cluster supercomputer offers energy efficient, air-cooled design based on modular, industry-standard platforms featuring the latest processor and network technologies and a wide range of datacenter cooling requirements.

SC12 Editorial Feature HPCwire Soundbite sponsored by ISC

HPC Job Bank


Featured Events


  • June 16, 2013 - June 20, 2013
    ISC'13
    Leipzig,
    Germany

  • June 17, 2013 - June 18, 2013
    Forecast 2013
    San Francisco, CA
    United States





HPCwire Events