2.2. CPU, Memory, and I/O Balance

In order to achieve good overall performance, it is imperative to have the correct balance of processors, memory, and disk I/O. The CPU speed is an obvious factor of performance. However, the other two factors—memory and disk I/O—are not always so obvious. This section discusses the importance of each major hardware component for achieving optimal performance.

Processors

Virtually all processors now have multiple cores and operate at several GHz (Giga (109) Hertz) frequencies. Processors are now capable of sustaining compute rates of 5 to 20 Gflops (Giga (109) floating point operations per second) per core in Mechanical APDL equation solvers. As processors have increased their computational performance, the emphasis on memory and I/O capacity and speed has become even more important in order to achieve peak performance.

Memory

Large amounts of memory can not only extend the model size that can be simulated on a given machine, but also plays a much more important role in achieving high performance. In most cases, a system with larger amounts of memory will outperform a smaller memory system, even when the smaller memory system uses faster processors. This is because larger amounts of memory can be used to avoid doing costly I/O operations. First, some equation solvers will use the additional memory to avoid doing I/O to disk. Second, both Linux and Windows systems now have automatic, effective system buffer caching of file I/O. The operating systems automatically cache files in memory when enough physical memory is available to do so. In other words, whenever the physical memory available on a system exceeds the size of the files being read and written, I/O rates are determined by memory copy speed rather than the far slower disk I/O rates. Memory buffered I/O is automatic on most systems and can reduce I/O time by more than 10X.

Faster memory access, or memory bandwidth, also contributes to achieving optimal performance. Faster memory bandwidths allow processors to achieve closer-to-peak compute performance by feeding data to the processor at faster speeds. Memory bandwidth has become more important as systems with more processor cores are produced. Each processor core will require additional memory bandwidth. So both the speed and the total memory bandwidth available on a system are important factors for achieving optimal performance.

I/O

I/O to the hard drive is the third component of a balanced system. Well balanced systems can extend the size of models that can be solved if they use properly configured I/O components. If Mechanical APDL simulations are able to run with all file I/O cached by a large amount of physical memory, then disk resources can be concentrated on storage more than performance.

A good rule of thumb is to have 10 times more disk space than physical memory available for your simulation. With today’s large memory systems, this can easily mean disk storage requirements of 500 GB to 1 TB (TeraByte). However, if you use physical disk storage routinely to solve large models, a high performance file system can make a huge difference in simulation time.

A high performance file system could consist of solid state drives (SSDs) or conventional spinning hard disk drives (HDDs). SSDs typically offer superior performance over HDDs, but have other factors to consider, such as cost and mean-time-to-failure. Like HDDs, multiple SSDs can be combined together in a RAID0 array. Maximum performance with a RAID array is obtained when the Mechanical APDL simulation is run on a RAID0 array of 4 or more disks that is a separate disk partition from other system file activity. For example, on a Windows desktop the drive containing the operating system files should not be in the RAID0 configuration. This is the optimal recommended configuration. Many hardware companies do not currently configure separate RAID0 arrays in their advertised configurations. Even so, a standard RAID0 configuration is still faster for Mechanical APDL simulations than a single drive.