Open Source Friday with Flash-X: a Multiphysics Simulation Software

06 Apr 2024 (9 months ago)
Open Source Friday with Flash-X: a Multiphysics Simulation Software

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.

Overwhelmed by Endless Content?