You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TLDR: Search for `todo` and update all occurrences to your desired name
13
+
Docker and singularity is not a must unless you cannot install some dependencies locally on HPC shell environment due to permission issue
14
+
11
15
### Base Repo
12
16
13
17
1. Change [LICENSE](LICENSE) if necessary
@@ -18,20 +22,59 @@
18
22
19
23
### Docker Config
20
24
21
-
1. Modify **DOCKER_USER**, **IMAGE_NAME** in [.env](.env)
25
+
1. Modify `DOCKER_USER`, `IMAGE_NAME`, `IMAGE_USER` in [.env](.env)
26
+
27
+
-[.env](env) will be loaded when you use docker compose for build/run/push/...
28
+
-`DOCKER_USER` refers to your docker hub account username
29
+
-`IMAGE_USER` refers to the default user inside the image, which is used to determine home folder
30
+
31
+
1. Modify the service name from `default` to your service name in [docker-compose.yml](docker-compose.yml), add additional volume mounting options such as dataset directories
32
+
33
+
1. Update [Dockerfile](docker/latest/Dockerfile) and [.dockerignore](.dockerignore)
34
+
35
+
- Existing dockerfile has screen & tmux config, oh-my-zsh, cmake, and other basic goodies
36
+
- Add any additional dependency installations at appropriate locations
37
+
38
+
1.[build_docker_image.sh](scripts/build_docker_image.sh) to build and test the image locally in your machine's architecture
39
+
40
+
- Do this on a machine where you have docker permission, HPC clusters usually restrict docker access for security reasons
41
+
- The scripts uses buildx to build multi-arch image, you can disable this by removing redundant archs in [docker-compose.yml](docker-compose.yml)
42
+
- Building stage does not have GPU access, if some of your dependencies need GPU, build them inside a running container and commit to the final image
43
+
44
+
1. To run and test a built image, use [run_docker_container.sh](scripts/run_docker_container.sh) or `docker compose up -d`
45
+
46
+
- The service by default will mount the whole repository onto `CODE_FOLDER` inside the container so any modification inside also takes effect outside, which is useful when you use vscode remote extension to develop inside a running container with docker context
47
+
48
+
1.[push_docker_image.sh](scripts/push_docker_image.sh) to push the multi-arch image to docker hub
49
+
50
+
- You should have the docker hub repository set up before pushing
51
+
52
+
### Singularity Config
53
+
54
+
1.[pull_singularity_image.sh](scripts/pull_singularity_image.sh) to build the singularity image locally
55
+
56
+
- Singularity image can be built upon existing docker image
57
+
58
+
1.[run_singularity_instance.sh](scripts/run_singularity_instance.sh) to test the image
59
+
60
+
- Add additional volume binding options to the script such as dataset directories, best practice is to define in [.env](.env) then export in [variables.sh](scripts/variables.sh) with `resolve_host_path` to turn relative path into absolute real path
61
+
- Singularity instances by default has less environment separation than docker containers unless you specify the additional options like the script
62
+
63
+
### Job Config
22
64
23
-
1. Modify the service name from **default** to your service name in [docker-compose.yml](docker-compose.yml)
65
+
1. Modify job specifications under [jobs/](jobs/)
24
66
25
-
1. Update [Dockerfile](docker/latest/Dockerfile)
67
+
- Each (HPC) Slurm environment has different partition definitions, which are often heterogeneous, you can query this by `sinfo` with some options
68
+
- All the jobs has `-l`(login) options in shebang so that any command working in your current shell environment should also run as a job
26
69
27
-
1.[build.sh](scripts/build.sh) to build and test the image locally in your machine's architecture
70
+
1.Submit job by `sbatch jobs/your-cluster/your-job.job` or `jobs/your-cluster/your-job.job`
28
71
29
-
1.[push.sh](scripts/push.sh) to push the multi-arch image to the registry
72
+
1.Recommend [turm](https://github.com/kabouzeid/turm) for job monitor, use `turn -u your-slurm-user` after installation
30
73
31
74
## Developer Quick Start
32
75
33
-
- Run [scripts/dev-setup.sh](scripts/dev-setup.sh) to setup the development environment
76
+
- Run [dev_setup.sh](scripts/dev_setup.sh) to setup the development environment
34
77
35
-
## Note
78
+
## Maintainer
36
79
37
-
-This template currently only supports docker image for amd64 and arm64, if you want to support other architectures, please modify the [build.sh](scripts/build.sh) script and [docker-compose.yml](docker-compose.yml) accordingly
# follow the error information,replace all the “ipcp-unit-growth” with “ipa-cp-unit-growth” in 3rdparty/carotene/CMakeLists.txt and 3rdparty/carotene/hal/CMakeLists.txt
# # follow the error information,replace all the “ipcp-unit-growth” with “ipa-cp-unit-growth” in 3rdparty/carotene/CMakeLists.txt and 3rdparty/carotene/hal/CMakeLists.txt
0 commit comments