Skip to content

Commit

Permalink
Merge pull request #28 from elephant-track/dev
Browse files Browse the repository at this point in the history
ELEPHANT server v0.5.3
  • Loading branch information
ksugar authored Dec 13, 2023
2 parents b8f3367 + 6ff6d08 commit b707888
Show file tree
Hide file tree
Showing 13 changed files with 160 additions and 54 deletions.
25 changes: 17 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
FROM nvidia/cuda:11.3.1-runtime-ubuntu20.04
# Modified from https://github.com/tiangolo/uwsgi-nginx-flask-docker (Apache license)

LABEL maintainer="Ko Sugawara <[email protected]>"
Expand All @@ -13,19 +13,30 @@ RUN set -x \
ca-certificates \
curl \
gnupg \
gosu && \
gosu \
gettext-base && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

ENV PATH /opt/conda/bin:$PATH
SHELL ["/bin/bash", "-c"]

# Install Python modules
COPY ./environment.yml /tmp/environment.yml
RUN sed -i '/.\/elephant-core/d' /tmp/environment.yml \
&& conda install -c conda-forge -y mamba \
&& curl -OL https://repo.continuum.io/miniconda/Miniconda3-py37_4.11.0-Linux-x86_64.sh \
&& bash Miniconda3-py37_4.11.0-Linux-x86_64.sh -bfp /opt/conda \
&& rm Miniconda3-py37_4.11.0-Linux-x86_64.sh \
&& . /opt/conda/etc/profile.d/conda.sh \
&& conda init \
&& echo "conda activate base" >> ~/.bashrc \
&& conda install -c conda-forge -y mamba=0.19.1 \
&& mamba clean -qafy \
&& mamba env update -f /tmp/environment.yml \
&& mamba clean -qafy \
&& rm -rf /tmp/elephant-core \
&& rm /tmp/environment.yml
RUN mamba install jupyter

# Install and set up RabbbitMQ
COPY docker/install-rabbitmq.sh /tmp/install-rabbitmq.sh
Expand All @@ -38,16 +49,15 @@ COPY docker/rabbitmq.sh /rabbitmq.sh
RUN chmod +x /rabbitmq.sh

# Set up nginx
COPY docker/nginx.conf /etc/nginx/nginx.conf
COPY docker/nginx.conf.template /etc/nginx/nginx.conf.template
EXPOSE 80 443
RUN groupadd -r nginx && useradd -r -g nginx nginx
# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log

RUN pip install memory_profiler line_profiler
RUN mamba install jupyter
RUN pip install --no-deps stardist==0.8.3 csbdeep==0.7.2 numba==0.56.0 llvmlite==0.39.0 natsort==8.1.0
# RUN pip install memory_profiler line_profiler
# RUN pip install --no-deps stardist==0.8.3 csbdeep==0.7.2 numba==0.56.0 llvmlite==0.39.0 natsort==8.1.0

# Copy the base uWSGI ini file to enable default dynamic uwsgi process number
COPY docker/uwsgi.ini /etc/uwsgi/uwsgi.ini
Expand Down Expand Up @@ -77,7 +87,6 @@ ENTRYPOINT ["/entrypoint.sh"]
COPY ./elephant-core /tmp/elephant-core
RUN pip install -U /tmp/elephant-core && rm -rf /tmp/elephant-core


# Run the start script provided by the parent image tiangolo/uwsgi-nginx.
# It will check for an /app/prestart.sh script (e.g. for migrations)
# And then will start Supervisor, which in turn will start Nginx and uWSGI
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile-test
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM elephant-server:0.5.2
FROM elephant-server:0.5.3

LABEL maintainer="Ko Sugawara <[email protected]>"

Expand Down
89 changes: 73 additions & 16 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,19 @@ help:

ELEPHANT_GPU?=all
ELEPHANT_WORKSPACE?=${PWD}/workspace
ELEPHANT_IMAGE_NAME?=elephant-server:0.5.2
ELEPHANT_IMAGE_NAME?=elephant-server:0.5.3
ELEPHANT_NVIDIA_GID?=$$(ls -n /dev/nvidia0 2>/dev/null | awk '{print $$4}')
ELEPHANT_DOCKER?=docker
ELEPHANT_RABBITMQ_NODENAME?=rabbit@localhost
ELEPHANT_RABBITMQ_NODE_PORT?=5672
ELEPHANT_RABBITMQ_MANAGEMENT_PORT?=15672
ELEPHANT_RABBITMQ_USER?=user
ELEPHANT_RABBITMQ_PASSWORD?=user
ELEPHANT_RABBITMQ_PID_FILE?=/var/lib/rabbitmq/mnesia/rabbitmq.pid
ELEPHANT_REDIS_PORT?=6379
ELEPHANT_BATCH_ID?=
ELEPHANT_HTTP_PORT?=8080
ELEPHANT_NOTEBOOK_PORT?=8888
ELEPHANT_BATCH_ID?=0

rebuild:
@IMAGEID=$$($(ELEPHANT_DOCKER) images -q $(ELEPHANT_IMAGE_NAME)); \
Expand Down Expand Up @@ -42,9 +48,22 @@ warmup:
fi

launch: warmup
$(ELEPHANT_DOCKER) run -it --rm $(GPU_ARG) --shm-size=8g -v $(ELEPHANT_WORKSPACE):/workspace -p 8080:80 -p 5672:5672 \
-e LOCAL_UID=$(shell id -u) -e LOCAL_GID=$(shell id -g) -e NVIDIA_GID=$(ELEPHANT_NVIDIA_GID) \
-e RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME) -e RABBITMQ_NODE_PORT=$(ELEPHANT_RABBITMQ_NODE_PORT) -e ELEPHANT_REDIS_PORT=$(ELEPHANT_REDIS_PORT) \
$(ELEPHANT_DOCKER) run -it --rm $(GPU_ARG) --shm-size=8g -v $(ELEPHANT_WORKSPACE):/workspace \
-p $(ELEPHANT_HTTP_PORT):$(ELEPHANT_HTTP_PORT) \
-p $(ELEPHANT_RABBITMQ_NODE_PORT):$(ELEPHANT_RABBITMQ_NODE_PORT) \
-p $(ELEPHANT_RABBITMQ_MANAGEMENT_PORT):$(ELEPHANT_RABBITMQ_MANAGEMENT_PORT) \
-e LOCAL_UID=$(shell id -u) \
-e LOCAL_GID=$(shell id -g) \
-e NVIDIA_GID=$(ELEPHANT_NVIDIA_GID) \
-e RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME) \
-e RABBITMQ_NODE_PORT=$(ELEPHANT_RABBITMQ_NODE_PORT) \
-e RABBITMQ_MANAGEMENT_PORT=$(ELEPHANT_RABBITMQ_MANAGEMENT_PORT) \
-e RABBITMQ_USER=$(ELEPHANT_RABBITMQ_USER) \
-e RABBITMQ_PASSWORD=$(ELEPHANT_RABBITMQ_PASSWORD) \
-e RABBITMQ_PID_FILE=$(ELEPHANT_RABBITMQ_PID_FILE) \
-e ELEPHANT_REDIS_PORT=$(ELEPHANT_REDIS_PORT) \
-e ELEPHANT_HTTP_PORT=$(ELEPHANT_HTTP_PORT) \
-e ELEPHANT_BATCH_ID=$(ELEPHANT_BATCH_ID) \
$(ELEPHANT_IMAGE_NAME)

bash: warmup
Expand All @@ -59,7 +78,7 @@ bashroot: warmup
notebook: warmup
$(ELEPHANT_DOCKER) run -it --rm $(GPU_ARG) --shm-size=8g -v $(ELEPHANT_WORKSPACE):/workspace \
-e LOCAL_UID=$(shell id -u) -e LOCAL_GID=$(shell id -g) -e AS_LOCAL_USER=1 -e NVIDIA_GID=$(ELEPHANT_NVIDIA_GID) \
--network host -p 8888:8888 $(ELEPHANT_IMAGE_NAME) jupyter notebook --no-browser --notebook-dir=/workspace
--network host -p $(ELEPHANT_NOTEBOOK_PORT):$(ELEPHANT_NOTEBOOK_PORT) $(ELEPHANT_IMAGE_NAME) jupyter notebook --no-browser --port=$(ELEPHANT_NOTEBOOK_PORT) --notebook-dir=/workspace

test:
$(ELEPHANT_DOCKER) build -t $(ELEPHANT_IMAGE_NAME)-test -f Dockerfile-test . && $(ELEPHANT_DOCKER) image prune -f
Expand All @@ -72,23 +91,61 @@ apptainer-init:
apptainer run --fakeroot --bind $(HOME):/root elephant.sif

apptainer-launch:
apptainer instance start --nv --bind $(HOME),$(HOME)/.elephant_binds/var/lib:/var/lib,$(HOME)/.elephant_binds/var/log:/var/log,$(HOME)/.elephant_binds/var/run:/var/run,$(HOME)/.elephant_binds/etc/nginx:/etc/nginx,$(ELEPHANT_WORKSPACE):/workspace elephant.sif elephant$(ELEPHANT_BATCH_ID)
apptainer instance start --nv \
--bind \
$(HOME),\
$(HOME)/.elephant_binds/var/lib:/var/lib,\
$(HOME)/.elephant_binds/var/log:/var/log,\
$(HOME)/.elephant_binds/var/run:/var/run,\
$(HOME)/.elephant_binds/etc/nginx:/etc/nginx,\
$(ELEPHANT_WORKSPACE):/workspace \
elephant.sif elephant$(ELEPHANT_BATCH_ID)
if [ $(ELEPHANT_GPU) = all ]; then \
apptainer exec --env RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME),RABBITMQ_NODE_PORT=$(ELEPHANT_RABBITMQ_NODE_PORT),ELEPHANT_REDIS_PORT=$(ELEPHANT_REDIS_PORT) instance://elephant$(ELEPHANT_BATCH_ID) /start.sh; \
apptainer exec \
--env RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME) \
--env RABBITMQ_NODE_PORT=$(ELEPHANT_RABBITMQ_NODE_PORT) \
--env RABBITMQ_MANAGEMENT_PORT=$(ELEPHANT_RABBITMQ_MANAGEMENT_PORT) \
--env RABBITMQ_USER=$(ELEPHANT_RABBITMQ_USER) \
--env RABBITMQ_PASSWORD=$(ELEPHANT_RABBITMQ_PASSWORD) \
--env RABBITMQ_PID_FILE=$(ELEPHANT_RABBITMQ_PID_FILE) \
--env ELEPHANT_REDIS_PORT=$(ELEPHANT_REDIS_PORT) \
--env ELEPHANT_HTTP_PORT=$(ELEPHANT_HTTP_PORT) \
--env ELEPHANT_BATCH_ID=$(ELEPHANT_BATCH_ID) \
instance://elephant$(ELEPHANT_BATCH_ID) /start.sh; \
else \
apptainer exec --env CUDA_VISIBLE_DEVICES=$(ELEPHANT_GPU),RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME),RABBITMQ_NODE_PORT=$(ELEPHANT_RABBITMQ_NODE_PORT),ELEPHANT_REDIS_PORT=$(ELEPHANT_REDIS_PORT) instance://elephant$(ELEPHANT_BATCH_ID) /start.sh; \
apptainer exec \
--env CUDA_VISIBLE_DEVICES=$(ELEPHANT_GPU) \
--env RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME) \
--env RABBITMQ_NODE_PORT=$(ELEPHANT_RABBITMQ_NODE_PORT) \
--env RABBITMQ_MANAGEMENT_PORT=$(ELEPHANT_RABBITMQ_MANAGEMENT_PORT) \
--env RABBITMQ_USER=$(ELEPHANT_RABBITMQ_USER) \
--env RABBITMQ_PASSWORD=$(ELEPHANT_RABBITMQ_PASSWORD) \
--env RABBITMQ_PID_FILE=$(ELEPHANT_RABBITMQ_PID_FILE) \
--env ELEPHANT_REDIS_PORT=$(ELEPHANT_REDIS_PORT) \
--env ELEPHANT_HTTP_PORT=$(ELEPHANT_HTTP_PORT) \
--env ELEPHANT_BATCH_ID=$(ELEPHANT_BATCH_ID) \
instance://elephant$(ELEPHANT_BATCH_ID) /start.sh; \
fi

apptainer-shell:
if [ $(ELEPHANT_GPU) = all ]; then \
apptainer shell --fakeroot --nv --env RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME) --bind $(HOME),$(HOME)/.elephant_binds/var/lib:/var/lib,$(HOME)/.elephant_binds/var/log:/var/log,$(HOME)/.elephant_binds/var/run:/var/run,$(HOME)/.elephant_binds/etc/nginx:/etc/nginx elephant.sif; \
apptainer shell --fakeroot --nv \
--bind $(HOME) \
--bind $(HOME)/.elephant_binds/var/lib:/var/lib \
--bind $(HOME)/.elephant_binds/var/log:/var/log \
--bind $(HOME)/.elephant_binds/var/run:/var/run \
--bind $(HOME)/.elephant_binds/etc/nginx:/etc/nginx \
elephant.sif; \
else \
apptainer shell --fakeroot --nv --env CUDA_VISIBLE_DEVICES=$(ELEPHANT_GPU) --bind $(HOME),$(HOME)/.elephant_binds/var/lib:/var/lib,$(HOME)/.elephant_binds/var/log:/var/log,$(HOME)/.elephant_binds/var/run:/var/run,$(HOME)/.elephant_binds/etc/nginx:/etc/nginx elephant.sif; \
apptainer shell --fakeroot --nv \
--env CUDA_VISIBLE_DEVICES=$(ELEPHANT_GPU) \
--bind $(HOME) \
--bind $(HOME)/.elephant_binds/var/lib:/var/lib \
--bind $(HOME)/.elephant_binds/var/log:/var/log \
--bind $(HOME)/.elephant_binds/var/run:/var/run \
--bind $(HOME)/.elephant_binds/etc/nginx:/etc/nginx \
elephant.sif; \
fi

apptainer-create-rabbitmq-user:
apptainer exec --fakeroot --env RABBITMQ_NODENAME=$(ELEPHANT_RABBITMQ_NODENAME) --bind $(HOME),$(HOME)/.elephant_binds/var/lib:/var/lib,$(HOME)/.elephant_binds/var/log:/var/log,$(HOME)/.elephant_binds/var/run:/var/run elephant.sif docker/create_rabbitmq_user.sh


apptainer-stop:
apptainer instance stop elephant
apptainer instance stop elephant$(ELEPHANT_BATCH_ID)
6 changes: 0 additions & 6 deletions docker/create_rabbitmq_user.sh

This file was deleted.

2 changes: 1 addition & 1 deletion docker/nginx.conf → docker/nginx.conf.template
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ http {
client_max_body_size 0;

server {
listen 80;
listen ${ELEPHANT_HTTP_PORT};
location / {
try_files $uri @app;
}
Expand Down
10 changes: 8 additions & 2 deletions docker/rabbitmq.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,15 @@ rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD 2>/dev/null ; \
rabbitmqctl set_user_tags $RABBITMQ_USER administrator ; \
rabbitmqctl set_permissions -p / $RABBITMQ_USER ".*" ".*" ".*" ; \
echo "*** User '$RABBITMQ_USER' with password '$RABBITMQ_PASSWORD' completed. ***" ; \
echo "*** Log in the WebUI at port 5672 (example: http:/localhost:5672) ***") &
echo "*** RabbitMQ server is working at $RABBITMQ_NODENAME:$RABBITMQ_NODE_PORT ***"; \
echo "*** Log in the WebUI at port $RABBITMQ_MANAGEMENT_PORT (example: http://localhost:$RABBITMQ_MANAGEMENT_PORT) ***") &

# enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_management

echo "management.tcp.port = $RABBITMQ_MANAGEMENT_PORT" > /etc/rabbitmq/rabbitmq.conf

# $@ is used to pass arguments to the rabbitmq-server command.
# For example if you use it like this: docker run -d rabbitmq arg1 arg2,
# it will be as you run in the container rabbitmq-server arg1 arg2
/etc/init.d/rabbitmq-server $@
rabbitmq-server $@
14 changes: 14 additions & 0 deletions docker/setup-rabbitmq.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
/etc/init.d/rabbitmq-server start
rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD 2>/dev/null
rabbitmqctl set_user_tags $RABBITMQ_USER administrator
rabbitmqctl set_permissions -p / $RABBITMQ_USER ".*" ".*" ".*"
/etc/init.d/rabbitmq-server stop
echo "*** User '$RABBITMQ_USER' with password '$RABBITMQ_PASSWORD' completed. ***"
echo "*** RabbitMQ server is working at $RABBITMQ_NODENAME:$RABBITMQ_NODE_PORT ***"
echo "*** Log in the WebUI at port $RABBITMQ_MANAGEMENT_PORT (example: http://localhost:$RABBITMQ_MANAGEMENT_PORT) ***"

# enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_management

echo "management.tcp.port = $RABBITMQ_MANAGEMENT_PORT" > /etc/rabbitmq/rabbitmq.conf
4 changes: 2 additions & 2 deletions docker/supervisord.conf
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ killasgroup=true
priority=700

[program:nginx]
command=/usr/sbin/nginx
command=/bin/bash -c "envsubst '$$ELEPHANT_HTTP_PORT'< /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf && /usr/sbin/nginx"
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
Expand All @@ -33,7 +33,7 @@ stderr_logfile_maxbytes=0
priority=600

[program:rabbitmq-server]
command=/usr/bin/pidproxy /var/lib/rabbitmq/mnesia/rabbitmq.pid /bin/bash -c "/rabbitmq.sh"
command=/usr/bin/pidproxy %(ENV_RABBITMQ_PID_FILE)s /bin/bash -c "/rabbitmq.sh"
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
Expand Down
2 changes: 1 addition & 1 deletion elephant-core/elephant/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@
# ==============================================================================
"""Version definition."""

__version__ = "0.5.2"
__version__ = "0.5.3"
47 changes: 32 additions & 15 deletions elephant.def
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Bootstrap: docker
From: pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
From: nvidia/cuda:11.3.1-runtime-ubuntu20.04

%files
./docker /docker
Expand All @@ -15,8 +15,14 @@ From: pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
export PYTHONPATH=/app
export MKL_THREADING_LAYER=GNU
export GRPC_POLL_STRATEGY=epoll1
export PATH=/opt/conda/bin:$PATH
export RABBITMQ_USER=user
export RABBITMQ_PASSWORD=user
export RABBITMQ_MANAGEMENT_PORT=15672
export RABBITMQ_PID_FILE=/var/lib/rabbitmq/mnesia/rabbitmq.pid
export ElEPHANT_HTTP_PORT=8080

%post
%post -c /bin/bash
# Install requirements
set -x \
&& apt-get update \
Expand All @@ -26,33 +32,43 @@ From: pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
supervisor \
ca-certificates \
curl \
gnupg && \
gnupg \
gosu \
gettext-base && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Install Python modules
sed -i 's/.\/elephant-core/\/src\/elephant-core/g' /src/environment.yml \
&& conda install -c conda-forge -y mamba \
&& curl -OL https://repo.continuum.io/miniconda/Miniconda3-py37_4.11.0-Linux-x86_64.sh \
&& bash Miniconda3-py37_4.11.0-Linux-x86_64.sh -bfp /opt/conda \
&& rm Miniconda3-py37_4.11.0-Linux-x86_64.sh \
&& . /opt/conda/etc/profile.d/conda.sh \
&& conda init \
&& echo "conda activate base" >> ~/.bashrc \
&& conda install -c conda-forge -y mamba==0.19.1 \
&& mamba clean -qafy \
&& mamba env update -f /src/environment.yml \
&& mamba clean -qafy \
&& rm -rf /src/elephant-core \
&& rm /src/environment.yml

# Install and set up RabbbitMQ
chmod +x /docker/install-rabbitmq.sh && /docker/install-rabbitmq.sh
echo "rabbitmq-server \$@" > /rabbitmq.sh
chmod +x /rabbitmq.sh
cp /docker/rabbitmq-env.conf /etc/rabbitmq/rabbitmq-env.conf
export RABBITMQ_USER=user
export RABBITMQ_PASSWORD=user
export RABBITMQ_MANAGEMENT_PORT=15672
cp /docker/setup-rabbitmq.sh /setup-rabbitmq.sh
chmod +x /setup-rabbitmq.sh

RABBITMQ_USER=user && RABBITMQ_PASSWORD=user
/etc/init.d/rabbitmq-server start
rabbitmqctl add_user $RABBITMQ_USER $RABBITMQ_PASSWORD 2>/dev/null
rabbitmqctl set_user_tags $RABBITMQ_USER administrator
rabbitmqctl set_permissions -p / $RABBITMQ_USER ".*" ".*" ".*"
/etc/init.d/rabbitmq-server stop
/setup-rabbitmq.sh

# Set up nginx
cp /docker/nginx.conf /etc/nginx/nginx.conf
groupadd nginx && useradd -g nginx nginx
sed -i 's/listen 80/listen 8080/g' /etc/nginx/nginx.conf
cp /docker/nginx.conf.template /etc/nginx/nginx.conf.template
groupadd -r nginx && useradd -r -g nginx nginx

# forward request and error logs to docker log collector
ln -sf /dev/stdout /var/log/nginx/access.log && \
Expand All @@ -64,7 +80,6 @@ From: pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime

# Custom Supervisord config
cp /docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
sed -i 's#/usr/bin/pidproxy /var/lib/rabbitmq/mnesia/rabbitmq.pid /bin/bash -c "/rabbitmq.sh"#rabbitmq-server#g' /etc/supervisor/conf.d/supervisord.conf
sed -i '/user=user/d' /etc/supervisor/conf.d/supervisord.conf
sed -i '/group=user/d' /etc/supervisor/conf.d/supervisord.conf

Expand All @@ -84,6 +99,8 @@ From: pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
mkdir -p $HOME/.elephant_binds/etc
cp -a /etc/nginx $HOME/.elephant_binds/etc/
cp -a /etc/rabbitmq $HOME/.elephant_binds/etc/
chown -R $(id -u):$(id -g) $HOME/.elephant_binds


%labels
Author Ko Sugawara <[email protected]>
Expand All @@ -92,7 +109,7 @@ From: pytorch/pytorch:1.10.0-cuda11.3-cudnn8-runtime
This is a container to run ELEPHANt server.
Usage:
apptainer build --fakeroot elephant.sif elephant.def
apptainer run --bind $HOME elephant.sif
apptainer run --fakeroot --bind $HOME:/root elephant.sif
apptainer instance start --nv --bind $HOME,$HOME/.elephant_binds/var/lib:/var/lib,$HOME/.elephant_binds/var/log:/var/log,$HOME/.elephant_binds/var/run:/var/run,$HOME/.elephant_binds/etc/nginx:/etc/nginx,$HOME/.elephant_binds/etc/rabbitmq:/etc/rabbitmq,$ELEPHANT_WORKSPACE:/workspace elephant.sif elephant
apptainer exec instance://elephant python /opt/elephant/script/dataset_generator.py --uint16 /workspace/datasets/elephant-demo/elephant-demo.h5 /workspace/datasets/elephant-demo
SINGULARITYENV_CUDA_VISIBLE_DEVICES=0 apptainer exec instance://elephant /start.sh
Expand Down
4 changes: 2 additions & 2 deletions elephant_server.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
},
"outputs": [],
"source": [
"%env ELEPHANT_SERVER_VERSION = v0.5.2"
"%env ELEPHANT_SERVER_VERSION = v0.5.3"
]
},
{
Expand Down Expand Up @@ -380,4 +380,4 @@
},
"nbformat": 4,
"nbformat_minor": 0
}
}
Loading

0 comments on commit b707888

Please sign in to comment.