<@ULVA73B9P> Hello guys, I am trying to see how to...
# ask-marvin
a
@Marvin Hello guys, I am trying to see how to set the shared memory size in a workpool? Basically the equivalent of this:
sudo docker run -it -v /home/ubuntu/projects/:/home/ubuntu/projects --gpus all --shm-size=50g test
m
To set the shared memory size (
shm-size
) when creating a work pool in Prefect, you need to use Docker options. Prefect allows you to set various Docker options, including
shm-size
, through its worker configurations. Here's how you can create a Docker work pool with the appropriate memory settings: 1. Create a Work Pool:
Copy code
bash
   prefect work-pool create --type docker my-docker-pool
2. Configure the Work Pool: Navigate to the Work Pools tab in the Prefect UI, and edit the
my-docker-pool
to add the necessary Docker options, such as
shm-size
. Alternatively, you can define the configuration directly using the Prefect API. Here is a basic example:
Copy code
python
from prefect.deployments import Deployment
from prefect.infrastructure.docker import DockerContainer
from prefect.server.schemas.core import Flow

docker_block = DockerContainer(
    image="your-docker-image",
    image_pull_policy="ALWAYS",
    shm_size="50G"  # Adding shared memory size
)

docker_block.save("my-docker-block")

deployment = Deployment.build_from_flow(
    flow=my_flow,  # Replace 'my_flow' with your flow object
    infrastructure=docker_block,
    name="my-deployment"
)

deployment.apply()
This Python script sets up a Docker infrastructure block with the specified shared memory size (
shm-size
) and creates a deployment with it. For more detailed information, please refer to the Prefect documentation. If you encounter issues or need further customization, feel free to check the Prefect GitHub repository or the latest Prefect documentation for any updates. --- Links: - Work Pools Tutorial - Workers Tutorial - Work Pools Concept