XMLWordPrintable

    Details

    • Type: Epic
    • Status: In Progress
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Epic Name:
      Simulator2020

      Description

      This Epic tracks work as part of a rebuild of the Simulator targeting more diverse use cases. The tasks here should enable cosimulation, neural fields and inference use cases not originally foreseen by the simulator architecture in 1.x releases.

      There are few broad software efforts to achieve the above: first the simulator shall be refactored into two layers, the first being a sort of service layer in tvb.simulator and tvb.datatypes which expresses the neural network model built with neuroimaging data and a second layer in tvb.simulator.backends which implements the execution of a model. Secondly, the execution of a model shall increasingly be addressed through code generation (as currently demonstrated with RateML DSL module) instead of immediate, eager execution via e.g. the NumPy-compatible APIs (with Numba occupying a bit of a gray area). In this way, the diverse use cases shall be addressed by different backends such as NumPy for a reference backend, CUDA-oriented for parameter sweeps, Stan for inference problems and TensorFlow for scalable machine learning workflows. Lastly, a multi-component approach will adopted for building the whole simulator instead of the current monolithic simulator (where, e.g. region and surface cases are handled with inline if/else), which shall avoid special code paths for region vs surface, stimulation and monitors, as all can be reduced to a single abstraction of a set of components with inter- and intra-component couplings; each component corresponds to a tuple of state/spatial domain, time stepping dynamics and a backend.

      From a user API perspective, the use of the main simulator should be continued, employing the reference backend in NumPy. For other use cases supported by other backends, the user should preferably using a tutorial as template build the simulator but execute it with a distinct backend explicitly, with the backend taking care of checks such as whether the model is supported etc.

        Gliffy Diagrams

          Attachments

            Activity

              People

              Assignee:
              marmaduke.woodman Marmaduke Woodman
              Reporter:
              marmaduke.woodman Marmaduke Woodman
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - 2 days
                  2d
                  Remaining:
                  Remaining Estimate - 2 days
                  2d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified