Written by Christopher Goodell, P.E., D.WRE
and Gary Brunner, P.E., D.WRE | Hydrologic Engineering Center
Copyright © The RAS Solution 2016. All rights reserved.
Now that 2D modeling is becoming widespread in the HEC-RAS
community, a lot of HEC-RAS users are wanting to know what kind of computer to build
to maximize computation speed when running those large 2D datasets. I had an opportunity to interview Gary
Brunner about this and he had some valuable insight I’d like to pass along.
Before moving into suggestions for 2D modeling, let me first
state that in 1D modeling, multiple processing cores are NOT used. If you plan to only do 1D modeling, having
extra cores will not help you with speed.
In this case, the processor speed is everything. So get the fastest processor you can (e.g.
3.4 Ghz or higher).
For the rest of this post, I’ll assume you want to optimize
your computer for 2D HEC-RAS modeling, since those are the models that
typically will take longest to run.
- More processing cores is not always better. In fact, it has been found that for smaller
2D areas (e.g. less than 10,000 cells or so), 8 cores may indeed run slower
than 4 or 6 cores. The reason behind
this is that there is a level of computing overhead used just to transfer data
between cores. Fortunately, HEC-RAS has
an option to change the number of cores you wish to use in the Computation
Options and Tolerances window (from the unsteady flow analysis window…Options…Calculation
Options and Tolerances…2D Flow Options tab).
For smaller datasets, I suggest experimenting with this to optimize
computation speed. “All Available” may
not necessarily be the fastest. But for
large numbers of cells, you’re going to want as many cores as you can get your
hands on. Get as many cores as you can afford, but
not at the expense of processor speed. Try
to get at least 3.2 to 3.4 Ghz or higher processors, no matter how many cores
you get.
- Processor speed is
still paramount. Do NOT think you
will have fast HEC-RAS model run times just because you have a computer with 16
processing cores or more. If all of your
cores have slow processor speeds, you’ll get some benefit out of the number of
cores, but you will be disappointed in the overall speed for a wide range of
model types (1D/2D) and sizes. So make
sure even if you get a large number of cores, you are not doing so at the
expense of fast processor clock speeds. Again,
3.2 to 3.4 GHz or higher is a good clock speed for fast running models.
- Your hard drive is important. Especially if you are producing a lot of
output. Small detailed output
intervals, small mapping output intervals, writing computation level output,
etc. All of these settings affect how
much and how often output is written to the hard drive during run time. Solid state hard drives (SSD) are typically
going to be better than the traditional spinning hard drive (HDD).
- RAM is important, but not as much as you
might think. While RAM is definitely
important, it is not as important for 2D modeling as number of cores and
processor speed. You do want enough RAM
to run your operating system and have your entire HEC-RAS model in memory,
without the operating system having to swap things in and out of memory. That being said, if you plan to do multiple
HEC-RAS models at the same time, or you have a habit of keeping lots of
programs open and running in the background of your computer, you may want to
get a computer with a lot of RAM. I
would venture to guess that if you are buying a computer with a lot of cores
with fast clock speeds, your computer will have enough RAM. But RAM is cheap, so you might as well load
up on it while you’re building the HEC-RAS computer of your dreams.
- Graphics card does not matter. While some of your other programs run best on
a super-charged graphics card, HEC-RAS does not. For HEC-RAS modeling, don’t waste your money
on an expensive graphics card. However,
you may seem some noticeable improvement in the snappiness of image rendering
or particle tracing with a better graphics card. If money is no object, get a top-of-the-line
graphics card, but this is one area you can sacrifice if you need to save some
dough.
To sum up, my recommendation for building a computer to
optimize 2D runs in HEC-RAS is as follows:
- Get as many processing cores as you can, but do not do so in
expense of processor speed.
- Make sure
your computer has processors that are 3.2 to 3.4 Ghz or even higher (the faster
the better).
- Get an SSD hard drive
- Max out your RAM.
Pretty simple
really. And by the way, 24-inch (or larger)
dual monitors really helps with viewing all those HEC-RAS windows you have
open. But if you have the means, why stop at two monitors?
Starting on page 4-11 in the HEC-RAS 2D Manual, there is an
interesting discussion on the effect of number of processing cores in
computations. I suggest giving it a read. There will be a new chapter in the RAS 2D manual due out soon (for version 5.0.2) that will discuss this topic.
Mr. Brunner has some follow-up advice when buying a computer that has an Intel chip that uses Hyper-threading:
"Hyper-threading is an Intel technology that attempts to
keep CPU resources as busy as possible.
Each real CPU core has what appears to be two cores. However, there is really only one true
core. For example, the typical Intel I7
chip has four real CPU cores, but if you open Task Manager and go to the Performance
Tab, you will see four across the top, and what appears to be four more below
it. These are virtual cores. Each real CPU core has only one true math
processing unit, but with Hyper-threading it has two instruction feeders. Hyper-threading tries to eliminate stalls by
always having another thread at the ready in a second virtual core. If one thread stalls (not requiring the math
unit) on virtual core A, virtual core B will instantly start picking up the
slack, so the execution units keep working at 100%.
The RAS 2D compute engine is extremely math heavy. So for each core it utilizes, it is almost
always using 100% of the math unit. So
the second virtual core (Hyper-thread) is never used. So back to our Intel I7 chip example. An Intel I7 has 4 real cores, but appears to
have 8 cores (4 virtual cores). RAS will
only use the four real cores, and it will keep them almost 100% busy. However, Task Manager reports this as only
50% utilization of the CPU. However,
this is truly 100% utilization of the four real cores math units."
What has been your experience with running fast
HEC-RAS simulations on your computer?
Please leave a comment and share with us what you’ve learned about how your computer performs. In fact, if you have a good picture of your suped up machine running HEC-RAS, please share!