Buffer Types¶
melissa.server.deep_learning.buffer.BufferType¶
Bases: IntEnum
Enum representing the different types of buffer strategies available for sampling.
- FIFO = 0
- FIRO = 1
- Reservoir = 2
- FIFOEvictReservoir = 3
- SimPairedReservoir = 4
- BatchReservoir = 5
Creating a buffer¶
melissa.server.deep_learning.buffer.make_buffer(buffer_size, buffer_t=BufferType.FIFO, per_server_watermark=None, pseudo_epochs=None, sweep_size=None, nb_time_steps=None, comm_size=1, metric_logger=None, use_legacy=False)
¶
Factory function to create different types of buffers based on the specified buffer type.
This function initializes and returns a buffer (queue) object based on the given buffer size
and type. The function raises a ValueError if the necessary parameters
are not provided for the selected buffer type.
Parameters¶
- buffer_size (
int): The maximum size of the buffer. - buffer_t (BufferType, optional): The type of buffer to create.
Default is
BufferType.FIFO. - per_server_watermark (
int, optional): A threshold used forReservoirandFIRObuffers. - pseudo_epochs (
int, optional): The number of iterations forFIROpseudo-offline mode. - sweep_size (
int, optional): The number of distinct simulation trajectories. - nb_time_steps (
int, optional): The number of time steps per simulation trajectory. - comm_size (
int, optional): The number of parallel processes or threads. - metric_logger (
BaseLogger, optional): Existing logger used for additional buffer-specific metrics logging. - use_legacy (
bool, False): Revert to the original legacy version instead.
Returns¶
BaseQueueLegacy | PolicyQueue: A buffer object of the specified type.
Buffer Classes¶
melissa.server.deep_learning.buffer.FIFO¶
melissa.server.deep_learning.buffer.FIRO¶
melissa.server.deep_learning.buffer.Reservoir¶
Bases: PolicyQueue[ListStorage]
A policy-driven queue specifically configured for reservoir sampling algorithms.
melissa.server.deep_learning.buffer.FIFOEvictReservoir¶
Bases: PolicyQueue[ListStorage]
A buffer that evicts the oldest data (FIFO) on write and allows random multiple reads of the same data (Reservoir).