Re: how best to build a GPU-accelerated desktop machine for NAMD?

From: Axel Kohlmeyer (akohlmey_at_gmail.com)
Date: Fri Nov 19 2010 - 22:00:38 CST

hi erik,

On Fri, Nov 19, 2010 at 9:08 PM, Erik Nordgren <nordgren_at_sas.upenn.edu> wrote:
> Hello all,
>
> I've spent some time searching through the forums here, and looked elsewhere
> online as well, in the hopes that my question (below) would already have
> been answered explicitly, but haven't found what I'm seeking, so...

the best way to deal with it, is to get some hands on experience
and see for yourself, and especially run some benchmarks.

> My question is this: if one were to put together a new desktop machine
> today, in order to get impressive performance for CUDA-enabled NAMD, what
> exactly would one need?

if you want "impressive", you first of all need a liftime supply
of earplugs and a powerful airconditioning unit. ;)

people often fall for inappropriate marketing. don't expect
those magical 100x or more speedup numbers. you only
get this of your CPU based code _sucks_ or you have an
extremely compute bound problem.

accelerating MD with GPUs is a complicated thing and
particularly the standard bio force field are "optimized"
to be of low computational complexity (which makes them so
"fast" on CPUs). so depending on how large your problem
is and what kind of model you are using, you can get the
performance of 10 to 25 CPU cores out of one high-end
GPU. so, if you would build a 4-way machine out of AMD
'magny cours' opteron processors (with 8 or 12 cores)
you can realize (almost) the same performance as a
high-end gaming type machine with 2-3 GPUs. part of
the reason behind this is the very good performance
of NAMD on CPUs.

> I do realize this is a rather open-ended question, and I don't expect
> someone to hand me a precise shopping list per se; but what would be really
> nice would be some general guidance.  Perhaps it would be better to break
> this down into a few more questions:
>
> 1) are NVIDIA GPUs the only option for CUDA performance gains, or are other
> brands now worth considering?

for NAMD only CUDA support exists. so yes, as CUDA is nvidia-only.

> 2) what are the most important GPU parameters... e.g., RAM capacity, #cores,
> clock rate, something else?

only high-end GPUs make sense if you want
to see a significant speedup. and then GPU
cores, GPU clock _and_ memory clock matter.
the absolute fastest GPU has to be the Geforce
GTX 580 chip. it has only limited double precision
support, but that is not an issue for NAMD.

> 3) are there, in fact, specific GPU models that are for some reason highly
> recommended?

depends on your expectations on speed, reliability,
and your tolerance for noise and heat.

only Tesla 2050/2070 GPUs have ECC memory,
and more memory than desktop cards.
but they are significantly more expensive.
GTX 480 cards tend to run very hot. but
should be a bit faster for NAMD.
GTX580 are supposed to be a bit less hot
than GTX 480, but faster. still with maximum
load up to 300W power consumption can be
expected. note, that some vendors also
"factory overclock" their cards.

> 4) how important (if at all) would be the speed and/or number of *CPUs* (or
> cores) in such a machine?

number is less important, speed and particularly
memory bandwidth matters. so does the number
of simultaneously usable 16x-PCIe slots. if you
want more than two GPUs, you may need to have
a dual processor main board with two southbridges.
there are other ways to have 3 or more 16x PCIe
slots, but they are limited in the overall bandwidth
and you can see this with 3 GPUs (which may
still be a good deal at 3 GPUs).

you should have at least one CPU core per GPU.

> 5) could one expect to get correspondingly-better NAMD performance from
> multiple *GPUs* in one machine?

yes. you can also oversubscribe GPUs for
an additional speedup. then you need twice
as many CPU cores as GPUs.

so the most bang for the buck solution would be
a 2-way SLI gaming mainboard with a quad-core
Intel i7 CPU and 2 GTX 580 or 470 cards.

> 6) how much system RAM would be needed?

as much as you can get!!
not for running the MD, but for doing
data analysis later on with VMD. :-)
classical MD needs little memory to run.

> 7) are there any other system components (e.g., 64-bit OS, motherboard,
> other hardware) that could have a significant performance impact?

see above. the biggest problem standing in the way of
fast results is usually not the hardware, but "that thing
between the chair and the computer". ;-)

> Just a couple more ballpark parameters for my specific situation:
> - the simulations I would envision running would involve perhaps 50,000 to
> 150,000 atoms, including a fair amount of explicit solvent

why not run this kind of problem on external resources?
it would run faster! and it is fairly easy to get access.
all you have to do is write a decent proposal and have
your boss put his name on it. ...and then get a machine
that works well for analysis (i.e. has plenty of RAM
rather than plenty of GPU). that has always worked best
for me. having to share the office with a machine that is
churning out MD data has always been annoying. it
gets in the way of normal working.

> - my budget for the machine would be something in the neighborhood of $1500
> to $3000 (depending on relative bang-for-the-buck)

GTX 580 cards are listed around $500
GTX 470 cards are probably a better bet,
for lower price and reduced power consumption,
heat, and noise. your colleagues will appreciate it.
 a Tesla 2050 will already blow you budget

cheers,
    axel.

> thanks for reading, and thanks all the more for any helpful replies!
> - Erik
>
> --
> C. Erik Nordgren, Ph.D.
> Chemistry Department
> University of Pennsylvania
>
>

-- 
Dr. Axel Kohlmeyer
akohlmey_at_gmail.com  http://goo.gl/1wk0
Institute for Computational Molecular Science
Temple University, Philadelphia PA, USA.

This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:54:46 CST