you are here:   / News & Insights / Engineering Advantage Blog / Speeding Up Your Analysis – Part 2

Engineering Advantage

Speeding Up Your Analysis – Part 2

Hard Drive | FEA Consulting
June 13, 2017 By: James Kosloski

In part one of this blog, I discussed the importance of your computer’s CPU in speeding up a finite element analysis.  In this post, I will look at how 2 other main components of your computer, RAM and hard disk, may affect analysis speed.

RAM

RAM, or memory, is where the computer stores information while currently processing it. RAM is volatile memory, meaning that if the power is removed, the data is lost.  Accessing data in RAM is much more efficient than from other types of storage, therefore, in a finite element analysis, it is important to be able to store the system of equations in RAM.  

So, the first thing to consider with RAM is to make sure we have enough RAM to hold the problem.  Obviously larger problems (finer mesh, more DOFs) will require more RAM.  When a problem is run with all the required data stored in RAM, it is said to be running “in core” or “in memory.”

If there is not enough memory to hold all of the required data, some of the data must be dumped to the hard disk, which is referred to as paging or running “out of core.” When this occurs, the analysis may take many times as long to run as one running in core.  You may even see an order of magnitude difference in run time between running in and out of core.

However, that does not mean more RAM will always make an analysis run faster.  Once there is enough RAM available for the model to run “in core”, then adding more RAM will not make any difference.  A model that solves in core on a system with 32 GB of RAM will solve in the same amount of time on a system with 64 GB of RAM.  

So, you should base the amount of RAM needed in a system on the largest problem you want to be able to solve. Unfortunately, there is no hard and fast rule for determining how much RAM a problem will need.  The amount of RAM required is affected by many things in an analysis: number of degrees of freedom, wave front, types of elements, type of solver used, type of analysis.

One rule of thumb that is used is, if you have a multi-processor machine, make sure to have at least 4GB of RAM per processor.  So for a 16 processor machine, 64 GB of RAM would be the minimum recommended.

RAM also always has a “speed” rating associated with it. You can buy DDR4 3200 or DDR4 2400. The 3200 and 2400 are the speed ratings of the RAM.  In general, the speed of your RAM is going to play an insignificant role in how quickly an analysis will run. There are so many other potential bottle necks in a system that the RAM speed is not a factor.  So given the choice between 16 GB of 3200 speed RAM and 24 GB of 2400 speed RAM, always opt for the latter.

Hard Disk

Even when running “in-core”, finite element analyses are continuously writing data to the disk, therefore the hard disk read and write speeds can have a significant impact on run times.

There are several different types of hard disk to choose from when configuring a computer for finite element analysis. The 3 main types of drives (as of this writing) are: HDD (SATA and SAS) and SSD.  HDD (or simply hard disk drive) is the normal type of hard drive with spinning platters that most people are familiar with. These HDD’s can come in 2 forms, which has to do with the connection to the computer. SATA stands for Serial Advanced Technology Attachment, and SAS is Serial Attached SCSI (pronounced "scuzzy").  In general, SAS hard drives are faster and more reliable, but SATA offers larger storage capacity and are usually cheaper. The read and write speed of HDD’s are governed by the rotational speed of the hard drive.  HDD’s usually come in speed of 5400, 7200, 10,000 and 15,000 (SAS) rpm.  The faster the rpm, the quicker the data can be extracted or written.

So a 10,000 RPM SAS drive is going to be much faster than a 5400 RPM SATA drive.  But the SAS drive will be more expensive and most likely will not be available in as large a capacity as the SATA.

Solid State Drives (SSD) on the other hand, have no moving parts, they are essentially a memory chip. SSD’s have lower latency (near zero seek time), and faster read and writes. SSD’s have dropped considerably in price in the last few years, making them a very attractive option for high end processing.

As with any hardware component, there will be a lot of variation in the different components from different generations. Newer drives will tend to have faster throughput, but be more expensive. SSD’s also have an issue of write endurance. Because of the way SSD’s work, there is actually a limited number of times that each cell can be written to.  This is known as write endurance. Again, newer hard drives have technology that will improve the overall endurance of the drive.  Most SSD’s will list endurance of the drive.  For example a 500GB drive may report an endurance of 150 TBW. That means that you can write a total of 150 terabytes of data to the drive before it becomes completely worn out.  Just to put this in context, if you write 50 GB/day to that drive, it will still last 10 years.

While it is hard to resist the attractiveness of SSD’s based on speed, you still may be able to get better performance from a SAS drive. SSD’s are exceptionally good at random read/write access, but regular HDD’s are better at sequential access. When running FEA as a single process, most of the data written (and read) is sequential.  But when we use multiple processors on a single machine, all accessing the same hard drive, this leads to more random access and less sequential.

Regardless of the type of drive you are using, the best way to get improved performance is to use a RAID array.  A RAID array is a way to combine several hard drives so that they appear to the operating system as a single large drive.   

In an upcoming blog I will discuss the different types of RAID configurations and their benefits.

Other Components

Some other components on your system may play a smaller role improving your solution time. The motherboard is obviously a critical component. The main things to consider with the motherboard is the type of CPU and RAM supported and the interconnect and bus speed.

If working interactively, a high end graphics card is critical. On-board or low-end graphics cards can result in lag when rotating or plotting a model.

Some finite element codes can also have the capability to make use of a GPU (graphics processing unit) for solver calculations. Many high-end GPUs have hundreds or thousands of cores on them. If the code supports it, it is possible to make use of these cores for solver calculations rather than graphics. There are several high end GPU’s that are dedicated to this type of processing. The NVidia Tesla series cards and some of the high end Quadro cards can be used in this manner. The Intel Xeon Phi is also a similar type of processor that can be used to speed up solution time.

In order to use a GPU for solution processing, the code you are running must support it and be written specifically to take advantage of the GPU.  If the software supports it, a GPU can provide a significant speed up. We usually see about a 2X speed up in solver time when implementing a GPU.

Hopefully these 2 blogs have given you some ideas on how you can configure a powerful efficient system for solving your simulations without breaking your budget. Be sure to watch for my upcoming blog on RAID configurations.