Open Source Friday with Flash-X: a Multiphysics Simulation Software
06 Apr 2024 (9 months ago)
FlashX Software
- FlashX is an open-source instrument used for scientific simulations, funded by the Department of Energy (DOE) and Argonne National Laboratory.
- It simulates physical phenomena using different GitHub libraries and can solve complex partial differential equations.
- FlashX is used in scientific workflows involving theory, experiments, data generation, analysis, machine learning, and scientific knowledge extraction.
- It has a more robust software design compared to other open-source and commercial software, making it easily extensible to different domains.
- FlashX uses Fortran, C++, and Python and runs simulations on supercomputers using different nodes and hardware (CPU and GPU).
Accessing FlashX
- To access the private FlashX repository, users need to request access through GitHub or by sending an email to anl.gov.
- FlashX follows a laboratory notebook policy where developers create notebooks for specific problems and share them with collaborators.
Running Simulations with FlashX
- To run simulations on a supercomputer, you can use a tool called JobRunner.
- JobRunner simplifies the process of setting up software stacks and submitting jobs to HPC schedulers.
- To set up the software stack, use the commands "jobRunner setup software amrx", "jobRunner setup software flashkit", and "jobRunner setup software flashex".
- To set up a simulation, use the command "jobRunner setup simulation [simulation name]".
- To visualize the results, use ParaView and connect it to the supercomputer where the simulation was run.
- To run the simulation interactively, follow these steps:
- Install requirements.
- Set up software using job runner.
- Submit the simulation.
- Visualize the data using ParaView.
Applications of FlashX
- FlashX is being used by universities to train neural networks with simulation data.
- It is also being used to study metal casting and Olympic diving.
Future Developments and Community Involvement
- FlashX is exploring cloud computing and containerization.
- The team recommends using containers on a high-performance computing system for optimal performance.
- Containerization is a complex process, but the team encourages viewers to try it out and engage with the team by filing issues on GitHub.
- The team is open to helping people understand and use their workflows.