LAMMPS - A flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales
|Authors:||Aidan P. Thompson, H. Metin Aktulga, Richard Berger, Dan S. Bolintineanu, W. Michael Brown, Paul S. Crozier, Pieter J. in 't Veld, Axel Kohlmeyer, Stan G. Moore, Trung Dac Nguyen, Ray Shan, Mark Stevens, Julien Tranchida, Christian Trott, Steven J. Plimpton|
|Published in:||Computer Physics Communications|
Since the classical molecular dynamics simulator LAMMPS was released as an open source code in 2004, it has become a widely-used tool for particle-based modeling of materials at length scales ranging from atomic to mesoscale to continuum. Reasons for its popularity are that it provides a wide variety of particle interaction models for different materials, that it runs on any platform from a single CPU core to the largest supercomputers with accelerators, and that it gives users control over simulation details, either via the input script or by adding code for new interatomic potentials, constraints, diagnostics, or other features needed for their models. As a result, hundreds of people have contributed new capabilities to LAMMPS and it has grown from fifty thousand lines of code in 2004 to a million lines today. In this paper several of the fundamental algorithms used in LAMMPS are described along with the design strategies which have made it flexible for both users and developers. We also highlight some capabilities recently added to the code which were enabled by this flexibility, including dynamic load balancing, on-the-fly visualization, magnetic spin dynamics models, and quantum-accuracy machine learning interatomic potentials.
Efficiency and Quality Control for Particle Simulations
This work describes the efforts of improving the efficiency and quality of the LIGGGHTS open- source software package for Discrete Element Methods (DEM). It explains the core algorithms present in this code and how a test harness was developed to support refactoring by automated testing and validation. Because of this testing facility, iterative refactoring of the code base could take place without damaging existing functionality.
Major modifications were made to the code base to simplify the common task of creating new force models both for particle-particle and particle-wall contacts. This paved the way for further advances such as multi-threaded OpenMP versions of all granular force kernels. Along the way many improvements were made to the core functionality in LIGGGHTS. Through measuring and profiling, performance bottlenecks in the existing implementation were found and improved.
Finally, an MPI/OpenMP hybrid parallelization was developed which extends the existing MPI parallelization of the code. Problems encountered and the solutions implemented to achieve scalable performance using both parallelization models are explained in this text. Three case studies, including two real-world applications with up to 1.5 million particles, were evaluated and demonstrate the practicality of this approach. In these examples, better load balancing and reduced MPI communication led to speed increases of up to 44% compared to MPI-only simulations. This shows that by using the hybrid parallelization of LIGGGHTS, current and future computing resources can be used more effectively.
Hybrid parallelization of the LIGGGHTS open-source DEM code
|Authors:||R. Berger, C. Kloss, A. Kohlmeyer, S. Pirker|
|Published in:||Powder Technology|
|Keywords:||LIGGGHTS, Discrete Element Method, Hybrid parallelization, MPI, OpenMP|
This work presents our efforts to implement an MPI/OpenMP hybrid parallelization of the LIGGGHTS open-source software package for Discrete Element Methods (DEM). We outline the problems encountered and the solutions implemented to achieve scalable performance using both parallelization models. Three case studies, including two real-world applications with up to 1.5 million particles, were evaluated and demonstrate the practicality of this approach. In these examples, better load balancing and reduced MPI communication led to speed increases of up to 44% compared to MPI-only simulations.
Reverse engineering and visualization of the reactive behavior of PLC applications
|Authors:||H. Prähofer, C. Wirth and R. Berger|
|Published in:||11th IEEE International Conference on Industrial Informatics (INDIN)|
This paper presents an approach to reverse engineering and dynamic analysis of the reactive behavior of PLC programs. Based on execution traces, it is shown how to derive a state model representation of the reactive program behavior and how this model supports dynamic program analysis. In particular, the state model is used for mining execution patterns which occur repeatedly in a program execution. We discuss the key ideas of the approach, the various analysis and visualization methods available, and results from a case study.
A tool for trace visualization and offline debugging of PLC applications
|Authors:||H. Prähofer, C. Wirth and R. Berger, H. Prähofer, C. Wirth and R. Schatz</b>|
|Published in:||2012 IEEE 17th International Conference on Emerging Technologies & Factory Automation (ETFA 2012)|
This paper describes a tool for offline debugging and trace visualization of PLC applications. Based on trace data obtained by a deterministic replay technology for multi-threaded Soft PLC applications, the tool allows visualizing an application run in its various aspects and on various levels of abstraction. Each view shows a different level of detail, allowing the user to dive into the program from high-level views showing abstract program behavior to low-level views showing each executed statement or variable value in detail. With a set of views the tool supports the user to get an overview of the program execution, to identify abnormal program behavior, to discover the causes for program failures, and finally to locate defects in the source code. The paper presents the conceptional background of the approach, shows how program runs can be visualized, and how they can be analysed in detail. Then it demonstrates how the the tool supports a debugging process by an illustrative example.
A Tool for Offline Debugging and Trace Visualization of SoftPLC Programs
This thesis describes the Trace Visualization Tool developed at the Christian Doppler Laboratory for Automated Software Engineering. It was part of a larger project, Capture & Replay, whose goal is the development of methods and tools for recording real-time PLC applications for deterministic replay, off-line debugging, and dynamic program analysis. The project is conducted in cooperation with and funded by KEBA AG.
This tool allows PLC developers to explore and analyse program recordings using a variety of different views. Each view shows a different level of detail, allowing the user to dive into the program from high-level views to a low-level views. Unlike a regular single-step debugger, it allows navigating the entire program run and examining the program’s state at any point in time.
The thesis describes the different views provided by the tool, gives an introduction of how they are used for debugging, and outlines their implementation using the Windows Presentation Foundation. It also describes the main challenges of handling the huge amount of data and preparing it for display. Finally, a case study is presented which was developed to validate both the Capture & Replay approach and the visualization tool.