Now that 2D modeling is becoming widespread in the HEC-RAS community, a lot of modelers are wanting to know what kind of computer to get to maximize computation speed when running those large 2D datasets.

Before moving into suggestions for 2D modeling, first in 1D modeling, multiple processing cores are NOT currently 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 for 1D model (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 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.

So for the number of Cores, get as many as you can, but not at the expense of processor speed. Make sure you get at least 3.2 to 3.4 Ghz or higher processors, no matter how many cores you get.

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.

  • 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 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. As of the date of this article (August 2016) and the current version of HEC-RAS (5.0.1), 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, I'm guessing that 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 currently does not support GPU computing. For HEC-RAS modeling, don't waste your money on an expensive graphics card. However, you may seem so 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, and max out your RAM. 32 Gb is a good amount and can run large models (millions of cells). If you plan to run really large models (many millions of cells), you may want more 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.