mdadash.backend.kernel.core
Kernel core where MDAnalysis code runs
Classes
Iterable over the frames of a trajectory buffer listed as a sequence of indices. |
|
|
Buffered Trajectory |
Comm Handler |
|
|
Multi Array Buffer |
|
Universe Manager |
- class mdadash.backend.kernel.core.BufferFrameIteratorIndices[source]
Bases:
FrameIteratorBaseIterable over the frames of a trajectory buffer listed as a sequence of indices. This is very similar to
FrameIteratorIndicesin MDAnalysis, but withoutrewind()and__getitem__as they aren’t needed here.- property frames
- class mdadash.backend.kernel.core.BufferedTrajectory(u: Universe, buffer_size: int, reference_ts: Timestep = None, use_shm: bool = True)[source]
Bases:
objectBuffered Trajectory
This class is a wrapper for the trajectory reader and provides buffered access to the last n timesteps.
trajectory[index]can be used to access individual frames. Index values can range from 0 to the configured batch size.- property buffer_size
Total buffer size
- property n_frames
Number of frames in the buffer
- property ref_u: Universe
Reference timestep universe
The earliest timestep available for this trajectory since the dashboard was launched can be obtained from this single frame reference universe. This timestep persists across multiple connect / disconnects while the dashboard is running, but not across different runs of the dashboard (mdadash) itself.
- class mdadash.backend.kernel.core.CommHandler[source]
Bases:
objectComm Handler
This class is responsible for handling all the communication to and from this kernel. This is the class that interfaces with the
KernelManageron the server side.
- class mdadash.backend.kernel.core.MultiArrayBuffer(spec: dict, use_shm: bool = True)[source]
Bases:
objectMulti Array Buffer
This class manages a single contiguous buffer that is used by multiple numpy arrays. All individual np arrays are 64-byte aligned. There is an option to create this memory buffer as shared memory to achieve zero-copy access from parallel worker processes.
- class mdadash.backend.kernel.core.UniverseManager(_comms: CommHandler)[source]
Bases:
objectUniverse Manager
This class is responsible for managing all MDAnalysis universes. It has handlers to interact with the MD simulation. These handlers are invoked by comm messages sent from the server.
This also provides an iterable and indexable access to the individual universes.
- cleanup(_data: dict)[source]
Cleanup the UniverseManager
This is invoked when mdadash is being shutdown. The simulation is disconnected, but we don’t have to wait till all parallel jobs are done etc because the app itself is shutting down
- connect_to_simulations(universe_configs: list[dict]) None[source]
Connect to MD simulations
- Parameters:
universe_configs (list[dict]) – A list of configurations for universe(s) creation. Each dict has universe related config like topology, trajectory, imdclient params, user-defined kwargs etc