Skip to content

Commit c5a5206

Browse files
committed
Create a new image for end-to-end tests of CV2.
This commit creates a new image, with corresponding support scripts, to run the end-to-end tests for the chimbuko-visualization2 (CV2) package. A README is included to explain its usage. This commit also updates some of the spack package dependencies for the CV2 package. There seem to be more incompatibilities that will need to be resolved in order to fully upgrade CV2.
1 parent 11d8742 commit c5a5206

6 files changed

Lines changed: 133 additions & 18 deletions

File tree

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
FROM chimbuko/chimbuko-spack-env:ubuntu18.04
2+
3+
RUN apt-get update && apt-get install -y emacs-nox gdb tmux vim
4+
5+
WORKDIR /src
6+
7+
RUN echo 0.0.5
8+
9+
RUN git clone https://github.com/CODARcode/PerformanceAnalysis.git \
10+
--branch ckelly_develop_ddb \
11+
&& git -C PerformanceAnalysis checkout ckelly_develop_ddb \
12+
&& cp -r PerformanceAnalysis/spack/repo/chimbuko /sds/ \
13+
&& cp -r PerformanceAnalysis/benchmark_suite . \
14+
&& rm -rf PerformanceAnalysis
15+
16+
ENV TAU_OPTIONS="-optShared -optRevert -optVerbose -optCompInst"
17+
18+
WORKDIR /bld/benchmark_suite/func_multimodal
19+
20+
RUN cp -s /src/benchmark_suite/func_multimodal/main.C . \
21+
&& cp /src/benchmark_suite/func_multimodal/*.sh . \
22+
&& cp /src/benchmark_suite/func_multimodal/Makefile .
23+
24+
RUN source /spack/spack/share/spack/setup-env.sh \
25+
&& cd /opt/spack-environment && spack env activate . \
26+
&& cd - \
27+
&& make
28+
29+
COPY docker/ubuntu18.04/openmpi4.0.4/all_spack/env.yaml \
30+
/opt/spack-environment/spack.yaml
31+
32+
RUN source /spack/spack/share/spack/setup-env.sh \
33+
&& cd /opt/spack-environment \
34+
&& spack env activate . \
35+
&& spack concretize -f \
36+
&& spack install \
37+
&& spack gc -y \
38+
&& spack clean -a
39+
40+
COPY docker/ubuntu18.04/openmpi4.0.4/all_spack/chimbuko_config.sh \
41+
/bld/benchmark_suite/func_multimodal/
42+
43+
COPY scripts/docker/spack_dev_ddb.sh /build.spack.sh
44+
RUN /build.spack.sh
45+
46+
COPY scripts/docker/spack_dev_ddb.rcfile.sh /rcfile.sh
47+
48+
# ENTRYPOINT ["/bin/bash"] # see Dockerfile.spack_env
49+
50+
CMD ["--rcfile", "/rcfile.sh"]
51+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Dockerfiles
2+
3+
## `Dockerfile.spack_dev_ddb`
4+
5+
This Dockerfile defines an image which can be used to validate the visualization
6+
package upgrades. The build will clone the `chimbuko-visualization2` (CV2) repository
7+
and checkout the `dependency_upgrades` branch. Here is how to use this image to
8+
test changes to CV2:
9+
10+
1. Build the image.
11+
2. Use `docker ps` to find an open port `HOST_PORT`.
12+
3. Then running the image with the `HOST_PORT` will execute `run.sh` and start
13+
the server simulation.
14+
4. Load the frontend in a browser (`http://hostname:$HOST_PORT`).
15+
16+
### Build the image.
17+
18+
```sh
19+
docker build \
20+
-f docker/ubuntu18.04/openmpi4.0.4/all_spack/Dockerfile.spack_dev_ddb \
21+
-t chimbuko/chimbuko-spack-dev-ddb:ubuntu18.04 \
22+
.
23+
```
24+
25+
### Run the image.
26+
27+
```sh
28+
docker run --rm -it --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
29+
-p $HOST_PORT:5002 \
30+
-v $(pwd):$(pwd) \
31+
-name ddb-csd \
32+
chimbuko/chimbuko-spack-dev:ubuntu18.04
33+
```
34+

docker/ubuntu18.04/openmpi4.0.4/all_spack/env.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ spack:
33
- chimbuko-performance-analysis @git.bcb0f724d8579abeb620a0f9f4a9fdd839f3475f ^mochi-sonata~bedrock~unqlite_st ^cmake@3.27.7
44
- tau+mpi+openmp+adios2+python+binutils@git.9ec064a2f5ebc6deb63cfb3c10595ccba902b017=2.33.1
55
- libfabric fabrics=sockets,tcp,udp,rxm
6-
- chimbuko-visualization2 @git.8568d3c2ecdabfd61634a603e64e4a408cb731fc ^curl@8.4.0 ^python@3.8.18 ^py-cryptography@3.2.1 ^py-celery@4.4.7 ^py-flask@1.1.2 ^py-werkzeug@0.16.0 ^py-jinja2@2.11.3 ^py-itsdangerous@2.0.1 ^py-flask-sqlalchemy@2.5.1 ^py-wheel@0.37.1 ^py-eventlet@0.30.0 ^py-setuptools@65.5.0
6+
- chimbuko-visualization2 @git.dependency_upgrades=dev ^curl@8.4.0 ^python@3.8.18 ^py-cryptography@3.2.1 ^py-celery@4.4.7 ^py-flask@1.1.2 ^py-werkzeug@0.16.0 ^py-itsdangerous@2.0.1 ^py-flask-sqlalchemy@2.5.1 ^py-wheel@0.37.1 ^py-eventlet@0.30.0 ^py-setuptools@65.5.0
77
concretizer:
88
unify: true
99
compilers:
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/bash
2+
3+
set -eux
4+
5+
source /spack/spack/share/spack/setup-env.sh
6+
cd /opt/spack-environment/
7+
spack env activate .
8+
export CHIMBUKO_VIZ_ROOT=$(spack location -i chimbuko-visualization2)
9+
cd /bld/benchmark_suite/func_multimodal
10+
./run.sh

scripts/docker/spack_dev_ddb.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
set -eux
4+
5+
source /spack/spack/share/spack/setup-env.sh
6+
cd /opt/spack-environment/
7+
spack env activate .
8+
spack develop chimbuko-visualization2 @git.dependency_upgrades=dev
9+
spack concretize -f
10+
spack install
11+
cd /opt/spack-environment/chimbuko-visualization2
12+
# git checkout dependency_upgrades
13+
# spack install

spack/repo/chimbuko/packages/chimbuko-visualization2/package.py

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,35 @@ class ChimbukoVisualization2(Package):
88
"""The Visualization component of Chimbuko"""
99

1010
homepage = "https://github.com/CODARcode/ChimbukoVisualizationII"
11-
git = "https://github.com/CODARcode/ChimbukoVisualizationII"
11+
git = "https://github.com/dakotablair/ChimbukoVisualizationII"
1212

13-
version('master', branch='master')
13+
version('dependency_upgrades', branch='dependency_upgrades')
1414

15-
depends_on('python@3:')
15+
depends_on('python@3.8')
1616
depends_on('py-mochi-sonata', type=('build', 'run'))
17-
depends_on('py-celery@4.4.7:', type=('build', 'run'))
18-
depends_on('py-certifi@2024.7.4:', type=('build', 'run'))
19-
depends_on('py-dns-python@2.6.1:', type=('build', 'run'))
20-
depends_on('py-eventlet@0.35.2:', type=('build', 'run'))
21-
depends_on('py-flask-script@2.0.6:', type=('build', 'run'))
22-
depends_on('py-flask-socketio@2.9.6:', type=('build', 'run'))
23-
depends_on('py-flask-sqlalchemy@2.5.1:', type=('build', 'run'))
24-
depends_on('py-flask@1.1.2:', type=('build', 'run'))
17+
depends_on('py-celery@4.4.7:4.4', type=('build', 'run'))
18+
# depends_on('py-certifi@2024.7.4:2024.7', type=('build', 'run'))
19+
depends_on('py-certifi', type=('build', 'run'))
20+
# depends_on('py-dnspython@2.6.1:2.6', type=('build', 'run'))
21+
depends_on('py-dnspython', type=('build', 'run'))
22+
# depends_on('py-eventlet@0.35.2:0.35', type=('build', 'run'))
23+
depends_on('py-eventlet', type=('build', 'run'))
24+
# depends_on('py-flask-script@=2.0.6', type=('build', 'run'))
25+
depends_on('py-flask-script', type=('build', 'run'))
26+
depends_on('py-flask-socketio@2.9.6:2.9', type=('build', 'run'))
27+
depends_on('py-flask-sqlalchemy@2.5.1:2.5', type=('build', 'run'))
28+
depends_on('py-flask@=1.1.2', type=('build', 'run'))
2529
depends_on('py-gevent@23.7.0:', type=('build', 'run'))
26-
depends_on('py-idna@3.7:', type=('build', 'run'))
27-
depends_on('py-jinja2@3.0.3:', type=('build', 'run'))
28-
depends_on('py-redis@4.5.1:', type=('build', 'run'))
29-
depends_on('py-requests@2.32.3:', type=('build','run'))
30+
# depends_on('py-idna@3.7:', type=('build', 'run'))
31+
depends_on('py-idna', type=('build', 'run'))
32+
# depends_on('py-jinja2@3.0.3:3.0', type=('build', 'run'))
33+
depends_on('py-jinja2', type=('build', 'run'))
34+
depends_on('py-redis@4.5.1:4.5', type=('build', 'run'))
35+
# depends_on('py-requests@2.32.3:', type=('build','run'))
36+
depends_on('py-requests', type=('build','run'))
3037
depends_on('py-runstats@1.8.0:', type=('build', 'run'))
31-
depends_on('py-sqlalchemy@1.4.45:', type=('build', 'run'))
32-
depends_on('py-urllib@1.26.19:', type=('build', 'run'))
38+
depends_on('py-sqlalchemy@1.4.45:1.4', type=('build', 'run'))
39+
# depends_on('py-urllib3@1.26.19:1.26', type=('build', 'run'))
3340
depends_on('py-werkzeug@0.16.0:', type=('build', 'run'))
3441
depends_on('redis', type='run')
3542
depends_on('curl', type='run')

0 commit comments

Comments
 (0)