ray icon indicating copy to clipboard operation
ray copied to clipboard

Support static conda envs using conda-pack

Open edoakes opened this issue 3 years ago • 2 comments

Currently we only support dynamically-installed conda environments, but that is not well-suited for production usage.

@jiaodong I think we should make this a requirement for OSS jobs release.

runtime_env = {"conda": "s3://path-to-conda-pack-archive.zip"}

edoakes avatar Oct 17 '21 00:10 edoakes

Hi @edoakes

What do think about adding to this requirement the support for "dynamic resolved" conda envs specified by .txt file ( similar to pip ) while we are it ?

This is [also] well suited production for faster launch and faster env creation ( no SAT solution required, just download ).

By "dynamic resolved" I mean .txt files with explicit URLs, e.g. -

(1)

For existing conda envs

$ conda list --explicit

# $ conda create --name <env> --file <this file>
# platform: osx-64
@EXPLICIT
https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2022.12.7-h033912b_0.conda
https://conda.anaconda.org/conda-forge/osx-64/jpeg-9e-hac89ed1_2.tar.bz2
https://conda.anaconda.org/conda-forge/osx-64/libcxx-14.0.6-hccf4f1f_0.tar.bz2
https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hac89ed1_0.tar.bz2
https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.18-hbcb3906_1.tar.bz2
https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.2.13-hfd90126_4.tar.bz2

...

(2)

created from a given environment.yml using conda-lock

$ conda-lock --kind explicit -p linux-64 -f
$ head -10 conda-linux-64.lock

# Generated by conda-lock.
# platform: linux-64
# input_hash: 9590c6d89a921ed4df0b033e146e0ec3dbc0ac522afc30ffa212e5b7e9006b53
@EXPLICIT
https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81
https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2022.12.7-ha878542_0.conda#ff9f73d45c4a07d6f424495288a26080
https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.39-hcc3a1bd_1.conda#737be0d34c22d24432049ab7a3214de4
https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-12.2.0-h46fd767_19.tar.bz2#1030b1f38c129f2634eae026f704fe60
https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-3_cp39.conda#0dd193187d54e585cac7eab942a8847e
https://conda.anaconda.org/conda-forge/noarch/tzdata-2022g-h191b570_0.conda#51fc4fcfb19f5d95ffc8c339db5068e8

harelwa avatar Dec 17 '22 21:12 harelwa

Any updates on this one?

This will be very useful for us! In our case, we are currently using Triton inference server with python-backend (which uses conda-pack environement file *.tar.gz), supporting the same would allow us re-use the environment and launch models made for triton with ray. See here: https://github.com/triton-inference-server/python_backend#creating-custom-execution-environments

oeway avatar Jun 13 '23 16:06 oeway