# An unique identifier for the head node and workers of this cluster. cluster_name: default # The minimum number of workers nodes to launch in addition to the head # node. This number should be >= 0. min_workers: 0 # The maximum number of workers nodes to launch in addition to the head # node. This takes precedence over min_workers. max_workers: 2 # The initial number of worker nodes to launch in addition to the head # node. When the cluster is first brought up (or when it is refreshed with a # subsequent `ray up`) this number of nodes will be started. initial_workers: 0 # Whether or not to autoscale aggressively. If this is enabled, if at any point # we would start more workers, we start at least enough to bring us to # initial_workers. autoscaling_mode: default # This executes all commands on all nodes in the docker container, # and opens all the necessary ports to support the Ray cluster. # Empty string means disabled. docker: image: "" # e.g., rayproject/ray:0.8.7 container_name: "" # e.g. ray_docker # If true, pulls latest version of image. Otherwise, `docker run` will only pull the image # if no cached version is present. pull_before_run: True run_options: [] # Extra options to pass into "docker run" # Example of running a GPU head with CPU workers # head_image: "rayproject/ray:0.8.7-gpu" # head_run_options: # - --runtime=nvidia # worker_image: "rayproject/ray:0.8.7" # worker_run_options: [] # The autoscaler will scale up the cluster to this target fraction of resource # usage. For example, if a cluster of 10 nodes is 100% busy and # target_utilization is 0.8, it would resize the cluster to 13. This fraction # can be decreased to increase the aggressiveness of upscaling. # This value must be less than 1.0 for scaling to happen. target_utilization_fraction: 0.8 # If a node is idle for this many minutes, it will be removed. idle_timeout_minutes: 5 # Cloud-provider specific configuration. provider: type: azure # https://azure.microsoft.com/en-us/global-infrastructure/locations location: westus2 resource_group: ray-cluster # set subscription id otherwise the default from az cli will be used # subscription_id: 00000000-0000-0000-0000-000000000000 # How Ray will authenticate with newly launched nodes. auth: ssh_user: ubuntu # you must specify paths to matching private and public key pair files # use `ssh-keygen -t rsa -b 4096` to generate a new ssh key pair ssh_private_key: ~/.ssh/id_rsa ssh_public_key: ~/.ssh/id_rsa.pub # More specific customization to node configurations can be made using the ARM template azure-vm-template.json file # See documentation here: https://docs.microsoft.com/en-us/azure/templates/microsoft.compute/2019-03-01/virtualmachines # Changes to the local file will be used during deployment of the head node, however worker nodes deployment occurs # on the head node, so changes to the template must be included in the wheel file used in setup_commands section below # Provider-specific config for the head node, e.g. instance type. head_node: azure_arm_parameters: vmSize: Standard_D2s_v3 # List images https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage imagePublisher: microsoft-dsvm imageOffer: ubuntu-1804 imageSku: 1804-gen2 imageVersion: 20.02.01 # Provider-specific config for worker nodes, e.g. instance type. worker_nodes: azure_arm_parameters: vmSize: Standard_D2s_v3 # List images https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage imagePublisher: microsoft-dsvm imageOffer: ubuntu-1804 imageSku: 1804-gen2 imageVersion: 20.02.01 # optionally set priority to use Spot instances priority: Spot # set a maximum price for spot instances if desired # billingProfile: # maxPrice: -1 # Files or directories to copy to the head and worker nodes. The format is a # dictionary from REMOTE_PATH: LOCAL_PATH, e.g. file_mounts: { # "/path1/on/remote/machine": "/path1/on/local/machine", # "/path2/on/remote/machine": "/path2/on/local/machine", } # Files or directories to copy from the head node to the worker nodes. The format is a # list of paths. The same path on the head node will be copied to the worker node. # This behavior is a subset of the file_mounts behavior. In the vast majority of cases # you should just use file_mounts. Only use this if you know what you're doing! cluster_synced_files: [] # Whether changes to directories in file_mounts or cluster_synced_files in the head node # should sync to the worker node continuously file_mounts_sync_continuously: False # List of commands that will be run before `setup_commands`. If docker is # enabled, these commands will run outside the container and before docker # is setup. initialization_commands: # get rid of annoying Ubuntu message - touch ~/.sudo_as_admin_successful # List of shell commands to run to set up nodes. setup_commands: # Note: if you're developing Ray, you probably want to create an AMI that # has your Ray repo pre-cloned. Then, you can replace the pip installs # below with a git checkout (and possibly a recompile). # - echo 'conda activate py37_pytorch' >> ~/.bashrc - echo 'conda activate py37_tensorflow' >> ~/.bashrc - pip install -U https://s3-us-west-2.amazonaws.com/ray-wheels/latest/ray-0.9.0.dev0-cp37-cp37m-manylinux1_x86_64.whl # Consider uncommenting these if you also want to run apt-get commands during setup # - sudo pkill -9 apt-get || true # - sudo pkill -9 dpkg || true # - sudo dpkg --configure -a # Custom commands that will be run on the head node after common setup. head_setup_commands: - pip install azure-cli-core==2.4.0 azure-mgmt-compute==12.0.0 azure-mgmt-msi==1.0.0 azure-mgmt-network==10.1.0 # Custom commands that will be run on worker nodes after common setup. worker_setup_commands: [] # Command to start ray on the head node. You don't need to change this. head_start_ray_commands: - ray stop - ulimit -n 65536; ray start --head --port=6379 --object-manager-port=8076 --autoscaling-config=~/ray_bootstrap_config.yaml # Command to start ray on worker nodes. You don't need to change this. worker_start_ray_commands: - ray stop - ulimit -n 65536; ray start --address=$RAY_HEAD_IP:6379 --object-manager-port=8076