NumbaAnalysisBase¶
- class mdcraft.analysis.base.NumbaAnalysisBase(trajectory: ReaderBase, verbose: bool = False, **kwargs)[source]¶
Bases:
SerialAnalysisBaseA Numba-accelerated analysis base object.
- Parameters:
- trajectoryMDAnalysis.coordinates.base.ReaderBase
Simulation trajectory.
- verbosebool, default:
True Determines whether detailed progress is shown.
- **kwargs
Additional keyword arguments to pass to
MDAnalysis.analysis.base.AnalysisBase.
Methods
Tuple with backends supported by the core library for a given class.
Performs the calculation.
Saves results to a binary or archive file in NumPy format.
- classmethod get_supported_backends()¶
Tuple with backends supported by the core library for a given class. User can pass either one of these values as
backend=...torun()method, or a custom object that hasapplymethod (see documentation forrun()):‘serial’: no parallelization
‘multiprocessing’: parallelization using multiprocessing.Pool
‘dask’: parallelization using dask.delayed.compute(). Requires installation of mdanalysis[dask]
If you want to add your own backend to an existing class, pass a
backends.BackendBasesubclass (see its documentation to learn how to implement it properly), and specifyunsupported_backend=True.- Returns:
- tuple
names of built-in backends that can be used in
run(backend=...)()
Added in version 2.8.0: ..
- property parallelizable¶
Boolean mark showing that a given class can be parallelizable with split-apply-combine procedure. Namely, if we can safely distribute
_single_frame()to multiple workers and then combine them with a proper_conclude()call. If set toFalse, no backends except forserialare supported.Note
If you want to check parallelizability of the whole class, without explicitly creating an instance of the class, see
_analysis_algorithm_is_parallelizable. Note that you setting it to other value will break things if the algorithm behind the analysis is not trivially parallelizable.- Returns:
- bool
if a given
AnalysisBasesubclass instance is parallelizable with split-apply-combine, or not
Added in version 2.8.0: ..
- run(start: int = None, stop: int = None, step: int = None, frames: slice | ndarray[int] = None, verbose: bool = None, *, n_threads: int = None, **kwargs) NumbaAnalysisBase[source]¶
Performs the calculation.
- Parameters:
- startint, optional
Starting frame for analysis.
- stopint, optional
Ending frame for analysis.
- stepint, optional
Number of frames to skip between each analyzed frame.
- framesslice or array-like, optional
Index or logical array of the desired trajectory frames.
- verbosebool, optional
Determines whether detailed progress is shown.
- n_threadsint, keyword-only, optional
Number of threads to use for analysis.
- **kwargs
Additional keyword arguments to pass to
MDAnalysis.lib.log.ProgressBar.
- Returns:
- selfNumbaAnalysisBase
Analysis object with results.
- save(file: str | TextIO, archive: bool = True, compress: bool = True, **kwargs) None¶
Saves results to a binary or archive file in NumPy format.
- Parameters:
- filestr or file
Filename or file-like object where the data will be saved. If file is a str, the
.npyor.npzextension will be appended automatically if not already present.- archivebool, default:
True Determines whether the results are saved to a single archive file. If True, the data is stored in a
.npzfile. Otherwise, the data is saved to multiple.npyfiles.- compressbool, default:
True Determines whether the
.npzfile is compressed. Has no effect whenarchive=False.- **kwargs
Additional keyword arguments to pass to
numpy.save(),numpy.savez(), ornumpy.savez_compressed(), depending on the values of archive and compress.