Scaling Up¶
Container¶
Not all layers in a Flow
need to use the same resources. Some layers might be memory focused and require many gigabytes of memory, and others might be compute focused and require many CPUs. laminar
provides a layer Container
configuration that can modify the settings of the container the Layer
is being run in.
from laminar import Flow, Layer
from laminar.configurations.layers import Container
class ContainerFlow(Flow):
...
@ContainerFlow.register(container=Container(cpu=4, memory=2000, workdir="/app"))
class Task(Layer):
...
A Container
configuration can be shared across multiple layers.
from laminar import Flow, Layer
from laminar.configurations.layers import Container
class ContainerFlow(Flow):
...
container = Container(cpu=4, memory=2000, workdir="/app")
@ContainerFlow.register(container=container)
class First(Layer):
...
@ContainerFlow.register(container=container)
class Second(Layer):
...