Home - smcouch/SIMpliPy GitHub Wiki

Desired features:

  • Simulation setup/initial run
  • Simulation monitoring
    • report error/finish/done/crash etc. via email to User
  • Restart setup and submission
  • Version control of metadata, etc. Not data files.
  • Runtime plotting
    • specified pseudocolor slices with yt
    • matplotlib plots of specified quantities made at run completion and auto-shipped someplace viewable, perhaps via auto git check-in
  • Automatic archiving to tape backup

SIMpliPy implementation:

  • provides a shell command environment for simulation management, sim ...
  • has inheritance structure similar to git. subdirectories are sub-simulations, inherit from above.
  • gitPython is a thing - using git may be overkill...
  • sim mcpd starts a background process "daemon" called simmcpd that organizes all simulations for a user. Stands for Master Control Program which is a holdover joke from the days of Smaash. And who doesn't love a Tron reference?
    • info stored in a ~/.sim
    • optionally passes data and plots to remote server
    • uses Python monitoring module for watching sim directories
    • automatically archives simulation data on [daily/weekly] basis (only when changes are detected).
    • use of rysnc (for *.dat files, NOT plt/chk, etc.) to remote server
    • web-friendly GUI which remote server could host on webpage or local server could simply display
    • server being owned by a particularly user could be problematic... I.e., if all the SIMpliPy data are in a particular user's home directory, how can other users collaborate on a project or simulation?
  • sim init starts SIMpliPy. Requires that ‘sim server’ is running
    • asks what kind of sim. I.e., ‘FLASH'
    • detects host and pulls in appropriate scripts and environment
    • each instance is a new git repo. data files will be git-ignored (or git-annexed, i.e. for *.dat files). the .gitignore file will be simulation type dependent
    • directory structure: project-family-simulation (I don’t like separate dirs for separate runs. All in one, baby!)
    • user specifies application type and then automatic configuration is attempted
      • interactive for specifying dependent files (EOS, opacity, initial model, etc.)
      • manual configuration mode possible. use ‘sim add’ command to tag files to be tracked.
      • raw data files should not be version controlled. should have a tag for ‘non-metadata’ that will be git-annexed or git-ignored
  • sim run starts a run of the specified application
    • interactive for setting up length/size of run and automatic restarts
    • creates a git commit that requires a message
    • submits job based on host-specific scripts and details
    • monitors job progress and completion
    • if auto-restart enabled, calls sim restart if job completes successfully, otherwise throws an error and screams wildly
  • sim config configures a simulation or set of simulations.
  • sim restart configures and submits (runs) job restarts
  • sim server runs on remote machine and serves up a simple web GUI for viewing simulation status and metadata. NO job control, just an overview of simulation campaigns.