In today’s world where science and engineering depend on the simulation of new materials and their behavior is of critical importance. New materials are constantly being designed and brought into product design in order to create products that can withstand many environmental conditions and still perform for their intended use. HPC is critical for the simulation of these materials and applications which perform at the fastest speed available on a given hardware platform can lead to earlier introduction of products that contain these materials.
Maximum performance of these simulations depend on the software development environment that is used to create highly tuned applications as well as execute the same application. Intel® Software Development Tools can help both developers and end users achieve maximum performance in their simulations. VASP is an application that models quantum materials from first principals. VASP uses both OpenMP to take advantage of the cores on a single system as well as uses MPI to distribute task across a number of servers in large clusters.
Note that VASP is copyright-protected software owned by the University of Vienna, Austria, represented by Professor Dr. Georg Kresse at the Faculty of Physics. You must have an appropriate license to use VASP.)
The performance of any application is dependent on a number of factors. An application developer needs to be concerned with how much parallelism can be applied to the algorithms that are being implemented. This applies to both the OpenMP and MPI parallelism. Other very important factors to consider is memory access, keeping the floating point units busy and how much I/O is integrated into the implementation.
[clickToTweet tweet=”Check out Intel VTune Amplifier” quote=”Check out Intel VTune Amplifier”]Intel provides various tools that can be used to understand the behavior of the application. The Application Performance Snapshot (APS) in the Intel ® VTune™ Amplifier will quickly give the developer some information that is needed in order to look deeper into the code for opportunities for optimization.
Various tools are available in order to understand the performance of the application when using MPI and OpenMP. APS contains a reporting tool that gives a summary of where the application is spending its time, the different MPI functions that are being used, how much time is spent if there is an OpenMP imbalance, as well as I/O statistics and the memory footprint. From this data, the tool will let the developer know which of the different areas mentioned above is causing the most slowdown in the application. Then, further investigation with a wide range of tools can help to optimize the application.
When using the Intel Omni-Path Architecture with the Open Fabrics Interface it is beneficial to use the Intel performance Scaled Messaging 2 which follows and endpoint communication model. An endpoint is defined as an object or handle that can send or receive messages to other endpoints. This can speed up applications which use MPI. VASP, which already includes support for MPI when running on a cluster, can be adapted for MPI Multi-Endpoint libraries. This can greatly improve performance when running on large clusters.
Tuning applications for fast performance can be achieved by using the tools available. When using vendor supplied libraries, be sure to understand the options available and how the tools can be used to identify hot spots and then how to improve the performance where the application may be taking too much execution time.