xjules / AOC

0 stars 0 forks source link

Mermaid: experiment run #1

Open xjules opened 2 years ago

xjules commented 2 years ago
classDiagram
    class StateMachine{
      ======add_handler(state,func())
      (1) adds a handler function for the given state
      ======transition(msg: Message)
      (1) uses handler based on the state
    }
    class Protobuf{
      -Statemachine _statemachine
      -queue.Queue~_schema_proto.objects~ _event_queue
      -Thread _event_publisher_thread
      ======report(message)
      (1) call _statemachine.transition(message)
      (2) which in turn calls one of the *_handler function
      (3) sets a new state of _statemachine if transition is allowed
      ======_init_handler(message: Init)
      (1) Initializes protobuf with state_ids 
      (ee_id, real_id, step_id, experiment_id)
      (2) starts event_publisher_thread
      ======_job_handler(message:[Start, Running, Exiting]) 
      (1) parses message 
      (2) fill out job schema obj 
      (3) appends to queue
      ======_finished_handler(message)
      ======_publish_event()
      (1) retrieves schema obj from queue
      (2) send schema obj to _server
    }
    Protobuf *-- "1" StateMachine
    Event *-- "1" StateMachine
    class Event{
      +Statemachine _statemachine
    }
    class ExperimentServer{
      ======handle_dispatch(event)
      ======handle_client(event)
      ======_server()
      ======stop()
      ======run_experiment()
      calls run()
    }
    class Message{
      +timestamp
      +job
      +error_message
    }
    Message<|--Init
    Message<|--Finish
    Message<|--Start
    Message<|--Running
    Message<|--Exited
    class Init{
      +real_id
      +ee_id
      +step_id
      +run_id
      +jobs
    }
    class Finish{
    }
    class Running{
      +max_memory_usage
      +current_memory_usage
    }
    class Exited{
      +exit_code
    }
    class setup_reporters{
      <<create instance of Protobuf reporter>>
    }
    class report{
      <<send job.status via reporter.report(status)>>
    }

    class BaseRunModel{
        <<base II for experiment>>
        ======async _evaluate(runContext, ee_cfg)
        this runs ensemble.evaluate_async()
    }

    class EnsembleExperiment{
        <<simple ens. experiment experiment>>
        ======async run(ee_cfg)
        calls BaseRunModel._evaluate
    }

    BaseRunModel<|--EnsembleExperiment
    Ensemble<--BaseRunModel
    ExperimentServer-->EnsembleExperiment

    class Ensemble{
        <<base for ensemble>>
        ======async evaluate_async(ee_cfg)
    }
xjules commented 2 years ago
classDiagram

    class ExperimentServer{
      ======handle_dispatch(event)
      ======handle_client(event)
      ======_server()
      ======stop()
      ======run_experiment()
      calls run()
    }

    class BaseRunModel{
        <<base II for experiment>>
        ======async _evaluate(runContext, ee_cfg)
        this runs ensemble.evaluate_async()
    }

    class EnsembleExperiment{
        <<simple ens. experiment experiment>>
        ======async run(ee_cfg)
        calls BaseRunModel._evaluate
    }

    BaseRunModel<|--EnsembleExperiment
    Ensemble<--BaseRunModel
    ExperimentServer-->EnsembleExperiment
    JobQueue<--Ensemble

    class Ensemble{
        <<base for ensemble>>
        ======async evaluate_async(ee_cfg)
    }

    class JobQueue{
        <<runs yhe Queue>>
        ======execute_queue_comms_via_bus(ee_cfg)
    }
xjules commented 1 year ago
flowchart TD
    X[A new commit in komodo-releases] --> A
    A[check_for_release] -->|"Add Release in commit"?| B[built_and_test_release]
    BB[Build_and_test_bleeding] --> |"Schedule"| B
    B --> C[build_release]
    B --> |"Was build ok?"| I{propose_unstable}
    B -->|"Was build ok?"| D[test_multiple_projects]
    D --> |ert| E[test_one_project]
    D --> |...| E
    D --> |ecl| E
    D --> |ert-internal-examples| YY[test_one_project]
    B --> |"Was build ok?"| F[hm_tutorial]
    B --> |"Was build ok?"| G[drogon]
    B --> |"Was build ok?"| Y[bigpoly]
    B --> |"Was all ok?"| H{propose_testing}
    YY --> |If diff| YYY[PR into ert-internal-examples]
xjules commented 1 year ago
mindmap
  root((Azure FS))
    ANF / NFS
      Test data
      ::icon(fa fa-book)
      Project folders
    Managed Lustre
      HM API
      RUNPATH
    Local Disks
      GHA Runners
      Test root
xjules commented 1 year ago
mindmap
  root((Queue))
    Standard Compute Nodes / VMs
    Powerfull Compute Nodes
    Local Queue
xjules commented 11 months ago
flowchart TD
    C[Cron] -->|5am| X
    C --> |4am| Y
    C --> |new ert commit| Z
    X[Disk space usage]
    Y[Clean up old tmp]
    Z[ert storage benchmark]