Blog - What Is Dynamic Analysis?
July 10, 2020

What Is Dynamic Analysis?

High Performance Computing

In complex, high-performance computing (HPC) environments, code debugging is a time-consuming process. Developers use dynamic code analysis tools to simplify the process. The result is faster delivery of safe, robust applications.

What Is Dynamic Analysis?

Dynamic analysis is a process that helps software developers find bugs and security issues while software is running.

Also referred to as dynamic code scanning, dynamic analysis improves the diagnosis and correction of bugs, memory issues, and crashes of an application during its execution. The alternative is static code analysis, which occurs offline or before executing the code.

Why Is Dynamic Analysis Needed?

In HPC environments, supercomputers are running complex applications built from different programming languages, platforms, and technologies with thousands of threads and processes at the same time. Just examining the code alone for problems is not enough to identify and isolate faulty issues and performance problems that will show up during execution.

Developers are under tremendous pressure to deliver clean applications faster. Dynamic code analysis tools can help them achieve this with easy debugging of running threads and processes. Dynamic Analysis tools also help illuminate performance problems and memory usage issues and memory leaks. Dynamic Analysis testing will indicate whether an application works well; conversely, it will reveal errors indicating that an application doesn’t work as intended.

Why Dynamic Code Analysis Tools Are Important

Dynamic code analysis tools simplify the process of understanding how your complex application runs in order to troubleshoot problems, isolating memory and performance issues, and debug your live application. They allow you to analyze and identify potential issues that arise during the actual execution of the application and impact the reliability of the application.

Dynamic analysis tools often are built to focus on one specific task and developers of complex applications need to research if the tools are up to the demands that complex applications will place on them. More robust tools are built for complex applications utilizing advanced technologies such as GPUs and many threads and processes to accomplish their task. Some can even handle applications constructed with multiple.

The best dynamic code analysis tools and robust enough for complex applications and are easy to use within the development environments. They offer an easy-to-use graphical user interface (GUI) that makes it easy to control examine the information gathered and presented during a dynamic analysis of the application.

Why Choose TotalView for Your Dynamic Analysis Tool?

Running an HPC environment? There are a variety of dynamic analysis tools to help you analyze and improve your application but when it comes to debugging, TotalView is the de facto standard for run-time analysis and debugging of complex applications. It is a source code debugger for understanding how your multithreaded and multiprocess application runs and troubleshooting complex programs.

TotalView's easy-to-use GUI gives developers the tools they need to easily understand the state of their processes and threads and powerful features to control execution in order to analyze execution logic and data. TotalView provides developers the tools they need to dynamically analyze code running on CPUs and GPUs, examine the data their program generates, and understand the program's use of the heap memory and if any leaks are generated.

Developers utilizing Python with their C++ applications can easily understand the execution flow between languages and analyze the data used by either language. TotalView provides the advanced dynamic analysis capabilities for developers to understand how their complex applications are running and the data their generating.

TotalView is built for:

  • Multicore and parallel computing on C, C++, Fortran, and Python.
  • NVIDIA GPUs and CUDA.
  • Mixed-language Python and C/C++ applications.
  • Linux, UNIX, and macOS platforms.

Try Free