NVIDIA - World Leader in Visual Computing Technologies
USA - United States
USA - United States

ARG - Argentina

BRA - Brasil

CHL - Chile

CHN - China

CLM - Colombia

DEU - Germany

ESP - Spain

FRA - France

GBR - United Kingdom

IND - India

ITA - Italy

JPN - Japan

KOR - Korea

MEX - Mexico

POL - Poland

RUS - Russia

TWN - Taiwan

THA - Thailand

TUR - Turkey

USA - United States

VEN - Venezuela

Change default
  • Drivers
    • GeForce Drivers
    • All NVIDIA Drivers
  • Products
    • Processors
      • GeForce
      • Quadro
      • Tegra
      • Tesla
      • Legacy
    • Technologies
      • SLI
      • PhysX
      • Optimus
      • Maximus
      • CUDA
      • Windows 8
      • All Technologies
    • Cloud Computing
      • Overview
      • Enterprise
      • Gaming
    • 3D Vision
    • Platforms
      • Desktops
      • Notebooks
      • Tablets
      • Smartphones
      • Workstations
      • Servers
      • High Performance Computing
      • Automotive
  • Communities
    • GeForce.com
    • TegraZone.com
    • 3D Vision Live
    • GPU Technology Conference
    • CUDA Zone
    • Developer Zone
    • Forums
    • GPU Venture Zone
    • PartnerForce
    • NVIDIA Research
  • Support
  • Shop
  • About NVIDIA
    • Company Information
    • Newsroom
    • NVIDIA Blog
    • Investors
    • Citizenship
Blog Home
  • Home
  • Corporate
  • 3D Vision
  • Gaming
  • Mobile
  • Notebook
  • Software
  • Supercomputing
  • Workstation

The World is Parallel: The Opportunity and Challenge of Parallel Computing

By Steve Wildstrom on Mar 4 2010
In Software, Supercomputing
No Comments 0 Comments

This post is an introduction to a series of reports on computer scientists and other researchers who are unlocking the high-performance computing potential of parallel programming using large numbers of processor cores. But first some background on the opportunity and the challenge of parallel computing.

Some time around the middle of the last decade, the race to ever-faster computing hit the wall. Until then, designers had delivered soaring performance through three well-understood technologies: shrinking the already microscopic transistors, cramming more of them into each processor, and running them at higher speeds

The problem was that faster processor performance translated into higher power consumption and more heat, and even if you could find a way to get rid of the excess heat before the chips fried, continuation of the trend posed unacceptable economic and environmental costs.

An alternative route to faster computing had been around for some time. Instead of driving the processors harder, use more of them.  Mainframe computers and servers had long used multiple processors to handle heavy loads, but advances in chip technology made it possible to combine multiple processors on a single chip, an approach that is both more efficient and much cheaper. Today, high-performance computing is a story of dividing computational workloads over multiple processor cores. In the case of personal computers, this means both a handful of cores in the CPU and dozens, sometimes hundreds of cores in the graphics processing unit (GPU).

But multiprocessor hardware brings with it a significant software challenge. From the beginning of modern computing in the 1940s, programs had been designed to work sequentially. Funding, mostly by the Defense Advanced Projects Research Agency, produced some successes in systems with large numbers of processors designed to solve computations problems by breaking them into many pieces that could be run simultaneously, but these massively parallel systems never achieved commercial viability.

One reason is that most common computing problems, and the algorithms used to solve them, are not well suited to this sort of breakup. And sequential thinking seems to be wired into our brains. Neuroscientist Jill Bolte Taylor says the right hemisphere of the brain, which processes sensory signals, does parallel processing but the left hemisphere, which is responsible for analytic thinking, “functions like a serial processor.” For better or worse, programming is a left-brain activity.


The biggest mathematical impediment to parallel approaches is that many processes are recursive: each step depends on the result of previous steps. Consider the simple problem of finding the greatest common divisor of two integers. The standard method of doing this, the Euclidean algorithm, has been known for over 2,000 years and uses repeated subtraction.

Euclid

For example, if you want to find the greatest common divisor of 2,987 and 1,751, start by subtracting 1,751 from 2,987. Repeatedly subtract the difference (switching the order if needed to prevent negative numbers) until the result is 0. In this case, the two numbers have a largest common factor of 103. It’s a beautiful and efficient process, but it is inherently sequential because each subtraction depends on the previous result.

The great exception to the dominance of serial thinking is graphics. A very simple, common, and typical need in graphics is the need to rotate an image. If you remember some trigonometry, you may recall a simple formula to rotate point counterclockwise through an angle & Theta:

Rotate

The importance of this is that each point can be processed independently of every other point. If you had as many processors as points, the entire transformation could be computed in a single, massively parallel operation. And the same is true of many more complex graphics tasks.

The parallel-friendly nature of graphics work led to the early incorporation of a multi-processor architecture into graphics processing units (GPU). NVIDIA’s top-of-the-line Tesla GPUs currently feature 240 processor cores. While these cores are not as flexible as CPU processors, they excel at certain tasks, such as the vector operations that lie at the heart of many intense computational problems.

Software for effective utilization of large numbers of cores, both CPU and GPU, remains a challenge but things are getting better. NVIDIA helped lead the way with the CUDA parallel programming model which enabled general-purpose computation on NVIDA GPUs and with extensions to the C programming language that made the processors accessible.   Developers can thus program NVIDIA’s CUDA GPUs using languages such as C, C++, and Fortran via the CUDA toolkit and PGI’s CUDA Fortran compiler respectively and also using multiple driver-level APIs such as OpenCL and DirectCompute.

One of the biggest challenges facing software developers is that to get more performance for existing applications and to develop new more compute-intensive applications, they have no choice but to consider parallelizing their applications, whether they choose multi-core CPUs or many core GPUs.   Based on the last few years of development, the CUDA parallel programming model has established itself as an “easier” way to do parallel programming (it still isn’t easy, but CUDA does make certain things easier).  Also, GPUs can offer a tremendous performance advantage over CPUs and so combining these two elements offers developers a way to develop more innovative applications.

Tagged: CUDA, Parallel World, Steve Wildstrom, Supercomputing, Tesla

0 Comments Post a Comment

Similar Stories

tesla fermi key visual1

Winners of Petaflop Supercomputer Contest Are…

By Roy Kim on May 18 2012

mars-rover

GPUs Processing Images From the Red Planet

By Gary Rainville on May 17 2012

ging-companies-summit-ecs-gtc-2012

From BioDigital to Zoobe, Up-and-Coming Firms Tout Use of GPUs

By Gary Rainville on May 17 2012

ccoe-award-1

First Achievement Award Bestowed By CUDA Centers of Excellence

By Chandra Cheij on May 16 2012

paved road

Exascale Apps Pave Way To Supercomputing Greatness

By Tony Kontzer on May 16 2012

iain-couzin-gtc-2012-keynote-2

Using GPUs to Decipher Animal (and Human) Crowd Behavior

By Tony Kontzer on May 16 2012

lego-session-gtc-2012-2

LEGO Locks In On CUDA To Build A Better Business

By Tony Kontzer on May 16 2012

TeslaVertical_BioScience

Titan Supercomputer Session Showcases Science on GPUs

By Roy Kim on May 15 2012

gtc-poster-boards-3

GTC Poster Session Shows Breadth of GPU Research

By Tony Kontzer on May 14 2012

kepler-die-shot

What Makes Kepler Tick?

By Will Park on May 8 2012

+ More Similar Stories

Subscribe via: RSS Email

Connect & Share: Find us on Facebook Follow us on Twitter Find us on Flickr Watch us on YouTube

X

Enter your email address:

Most Discussed

144 CommentsContest: What would you do with a petaflop supercomputer?posted Apr 24 2012 at 15:52:32 PM
28 CommentsReal Ultrabooks Have GPU’sposted Mar 12 2012 at 15:18:08 PM
26 CommentsNo Free Lunch for Intel MIC (or GPU’s)posted Apr 3 2012 at 09:01:14 AM

Featured Series

  • NVIDIA Stories on TVTV shorts showing how GPUs are used
  • Inner GeekNVIDIA employees telling personal stories of how technology affects their lives
  • GPU Technology ConferenceThe latest GPU Technology Conference updates
  • Kizuna UpdateA series of Operation Kizuna updates detailing how we are aiding Japan's Tsunami recovery

Popular Tags

3D 3d vision acer android arm asus CES ces2011 Corporate CSR CUDA Drivers ECS Events Gaming GeForce Global Citizenship GPGPU gpu gpu computing GPU Technology Conference GTC high performance computing hpc Inner Geek Medical Mobile mwc New GPU uses Notebooks NVIDIA NVIDIA Foundation NVIDIA in a Minute Optimus parallel computing Professional quad-core Quadro Steve Wildstrom Supercomputing super phone Tegra Tegra 3 Tesla Visual computing

NVIDIA on YouTube

NVIDIA on Flickr

Archives

NVIDIA Blog Authors

Disclaimer

All company and product names appearing in the NVIDIA Blog are trademarks and/or registered trademarks of NVIDIA Corporation or of their respective owners.

NVIDIA Blog Comment Policy

While we encourage you to interact with us by leaving comments, we reserve the right, in our sole discretion, to remove comments or block readers if they violate any of the following conditions.


To read the NVIDIA Blog commenting guidelines and privacy policy, click here.

Solutions: 3DTV Play | 3D PCs | Optimus | Graphics Cards | High Performance Computing | Visualization | CUDA | Tegra Android App
Corporate: About NVIDIA | Newsroom | Blog | Events | Affiliate Program | Developers | Channel Partners | Investor Relations
Employment | RSS Feeds | Newsletter
Copyright © 2012 NVIDIA Corporation | Legal Info | Privacy Policy