38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
Create the container on the login node:
|
|
|
|
```bash
|
|
export WS_DIR=$(ws_find workspace_dir) # adjust this
|
|
cd $WS_DIR
|
|
wget https://fex.hlrs.de/fop/FYaJqyzw/ray.tar # download the container archive
|
|
export CONTAINER_NAME=ray
|
|
export CONTAINER_TAG=latest
|
|
export UDOCKER_DIR="$WS_DIR/.udocker/" # to store the image layers
|
|
udocker images -l # this will create a repo the first time you use it
|
|
udocker rmi $CONTAINER_NAME:$CONTAINER_TAG # results in error since the image does not exist
|
|
udocker load -i $WS_DIR/$CONTAINER_NAME.tar $CONTAINER_NAME
|
|
rm /$WS_DIR/$CONTAINER_NAME.tar # you no longer need the tar archive
|
|
```
|
|
|
|
Allocate a CPU node, and then:
|
|
|
|
```bash
|
|
module load bigdata/udocker/1.3.4
|
|
export WS_DIR=$(ws_find workspace_dir) # adjust this
|
|
export UDOCKER_DIR="$WS_DIR/.udocker/"
|
|
export UDOCKER_CONTAINERS="/run/user/$PBS_JOBID/udocker/containers"
|
|
mkdir -p $UDOCKER_CONTAINERS
|
|
mkdir -p /run/user/$PBS_JOBID/tmp
|
|
export CONTAINER_NAME=ray
|
|
export CONTAINER_TAG=latest
|
|
udocker create --name=$CONTAINER_NAME:$CONTAINER_TAG
|
|
udocker ps
|
|
udocker run --volume $WS_DIR:/workspace --volume /run/user/$PBS_JOBID/tmp:/tmp $CONTAINER_NAME
|
|
```
|
|
|
|
You should see a Python shell.
|
|
|
|
```python
|
|
import ray
|
|
# ray.init(num_cpus=4) # Works with a small number of CPUs
|
|
ray.init() # But, it can't use all the available CPUs
|
|
```
|