Cheap High-Performance
Computing
Alex Moore, HMB Inc.
About Me

Consultant for HMB, Inc.

.NET / Web / Java Developer

Polyglot Glutton - dabble in a lot of other
languages.

BSCSE, The Ohio State University
About Me


I like supercomputers
Why Cheap HPC?
Why Cheap HPC?

Because sometimes we need to go fast(er).
Why Cheap HPC?

Because sometimes we need to go fast(er).

We all love saving money.
Why Cheap HPC?

Because sometimes we need to go fast(er).

We all love saving money.


Ways to get extra performance for little to no extra
money.
Untapped Power
GPGPU
GPGPU


Gesundheit?
GPGPU


   General Purpose computing
               on
   Graphics Processing Units
GPGPU
GPGPU

GPUs are great at simple programs that are
massively parallel, such as rendering images.
GPGPU

GPUs are great at simple programs that are
massively parallel, such as rendering images.

They can do this because they have many
shaders, or “Compute Units”
GPGPU

GPUs are great at simple programs that are
massively parallel, such as rendering images.

They can do this because they have many
shaders, or “Compute Units”

Shaders can be programmed to do most things
that a normal CPU can do.
GPGPU!
GPGPU!
This Laptop (2007):

  32 Compute Units across 4 cores @ 940 Mhz

  128 MB DDR3
GPGPU!
This Laptop (2007):

  32 Compute Units across 4 cores @ 940 Mhz

  128 MB DDR3


Tesla (NVidia GPGPU card)

  448 Compute Units across 16 cores @ 1.15 Ghz

  Up to 5GB DDR5
GPGPU!


This laptop’s GPU has about as much computing
power as the world’s fastest supercomputer
in 1993 (~91 GigaFLOPS)
GPGPU!

Special desktop computers with 4 Tesla cards can
do about ~4-5 TerraFLOPS

About the fastest supercomputer in 1999-2000,
ON YOUR DESKTOP
GPGPU!


That’s ridiculously crazy
GPGPU!
GPGPU!

So what’s cheap about it?
GPGPU!

So what’s cheap about it?
GPGPU!

So what’s cheap about it?



You can probably program your GPU, and it’s just
free untapped power
GPGPU

NVidia - CUDA

ATI - Stream SDK

Microsoft - DirectCompute

Apple - OpenCL
Problem Euler Demo

    The following iterative sequence is defined for the set of positive integers:


      n n/2 (n is even)
      n 3n + 1 (n is odd)
Using the rule above and starting with 13, we generate the following sequence:

                                            13 40 20 10 5 16 8 4 2 1
Project Euler 14
Project Euler 14

Ruby ~151s
Project Euler 14

Ruby ~151s

C#/Java ~6.1s
Project Euler 14

Ruby ~151s

C#/Java ~6.1s

C# Multithreaded ~3.2s
Project Euler 14

Ruby ~151s

C#/Java ~6.1s

C# Multithreaded ~3.2s

C (gcc -O3) ~0.5s
Project Euler 14

Ruby ~151s

C#/Java ~6.1s

C# Multithreaded ~3.2s

C (gcc -O3) ~0.5s

C / OpenCL ...
OMG Ponies Live Demo!




Subset of c99
No recursion, no function pointers, no standard headers
To The Cloud!
Cloud Computing
The Cloud


If you use the cloud for your site or as a datastore
right now, you can acquisition temporary extra
computing power very easily.
The Cloud

TalentRooster needed to re-encode all 1200 of
their video resumes.

To do this locally, it would have taken about 27
hours, with 60% of that time would have been
downloading and uploading.
The Cloud
The Cloud

The dev team added an extra EC2 instance, and
re-encoded the videos in 3 hours.
The Cloud

The dev team added an extra EC2 instance, and
re-encoded the videos in 3 hours.

Total Cost:
The Cloud

The dev team added an extra EC2 instance, and
re-encoded the videos in 3 hours.

Total Cost:

$5.46
The Cloud


Amazon also has instances with 2 Telsa GPUs on
each instance. - Just sayin’ :)
Stealing Candy From Babies
Windows HPC Server 2008 R2
HPC Server


Instead of buying more computing power, just
make idle computers do your work.
HPC Server

HPC Server 2008 R2 allows you to add
Windows 7 workstations as compute nodes.

Also allows Azure instances to be added as
compute nodes when you need extra horsepower.
HPC Server


About $925 for the Suite, including licenses for
compute nodes.
Time and Money
Time and Money	
                      Time




CLOUD   THREADING   HPC SERVER   C   GPGPU
Time and Money	
                     Money




THREADING   HPC SERVER         C
                             CLOUD
                             GPGPU
Thanks!


     anm@hmbnet.com

     @alexmoore

     www.enginerding.com

Cheap HPC