Skip to content

Commit af1c633

Browse files
authored
Merge pull request #294 from stackhpc/fix/jupyter
Use Python3.9 for jupyter notebook server
2 parents eb10a25 + 6df61ae commit af1c633

File tree

6 files changed

+146
-18
lines changed

6 files changed

+146
-18
lines changed

.github/workflows/stackhpc.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,11 @@ jobs:
9090
. environments/.stackhpc/activate
9191
ansible-playbook -vv ansible/adhoc/hpctests.yml
9292
93-
- name: Run EESSI tests
94-
run: |
95-
. venv/bin/activate
96-
. environments/.stackhpc/activate
97-
ansible-playbook -vv ansible/ci/check_eessi.yml
93+
# - name: Run EESSI tests
94+
# run: |
95+
# . venv/bin/activate
96+
# . environments/.stackhpc/activate
97+
# ansible-playbook -vv ansible/ci/check_eessi.yml
9898

9999
- name: Confirm Open Ondemand is up (via SOCKS proxy)
100100
run: |

ansible/ci/check_eessi.yml

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,34 @@
1717
repo: "https://github.com/eessi/eessi-demo.git"
1818
dest: "{{ eessi_test_rootdir }}/eessi-demo"
1919

20-
- name: Run test job
21-
ansible.builtin.shell:
22-
cmd: |
20+
- name: Create batch script
21+
copy:
22+
dest: "{{ eessi_test_rootdir }}/eessi-demo/TensorFlow/tensorflow.sh"
23+
content: |
24+
#!/usr/bin/env bash
25+
#SBATCH --output=%x.out
26+
#SBATCH --error=%x.out
2327
source /cvmfs/pilot.eessi-hpc.org/latest/init/bash
2428
srun ./run.sh
29+
30+
- name: Run test job
31+
ansible.builtin.shell:
32+
cmd: sbatch --wait tensorflow.sh
2533
chdir: "{{ eessi_test_rootdir }}/eessi-demo/TensorFlow"
26-
executable: /bin/bash
2734
register: job_output
2835

36+
- name: Retrieve job output
37+
slurp:
38+
src: "{{ eessi_test_rootdir }}/eessi-demo/TensorFlow/tensorflow.sh.out"
39+
register: _tensorflow_out
40+
no_log: true # as its base64 encoded so useless
41+
42+
- name: Show job output
43+
debug:
44+
msg: "{{ _tensorflow_out.content | b64decode }}"
45+
2946
- name: Fail if job output contains error
3047
fail:
3148
# Note: Job prints live progress bar to terminal, so use regex filter to remove this from stdout
3249
msg: "Test job using EESSI modules failed. Job output was: {{ job_output.stdout | regex_replace('\b', '') }}"
33-
when: '"Epoch 5/5" not in job_output.stdout'
34-
50+
when: '"Epoch 5/5" not in _tensorflow_out.content | b64decode'
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Python3.9, pip 23.2.1
2+
anyio==3.7.1
3+
argon2-cffi==21.3.0
4+
argon2-cffi-bindings==21.2.0
5+
arrow==1.2.3
6+
asttokens==2.2.1
7+
async-lru==2.0.4
8+
attrs==23.1.0
9+
Babel==2.12.1
10+
backcall==0.2.0
11+
beautifulsoup4==4.12.2
12+
bleach==6.0.0
13+
certifi==2023.7.22
14+
cffi==1.15.1
15+
charset-normalizer==3.2.0
16+
comm==0.1.3
17+
debugpy==1.6.7
18+
decorator==5.1.1
19+
defusedxml==0.7.1
20+
exceptiongroup==1.1.2
21+
executing==1.2.0
22+
fastjsonschema==2.18.0
23+
fqdn==1.5.1
24+
idna==3.4
25+
importlib-metadata==6.8.0
26+
ipykernel==6.25.0
27+
ipython==8.14.0
28+
ipython-genutils==0.2.0
29+
ipywidgets==8.1.0
30+
isoduration==20.11.0
31+
jedi==0.19.0
32+
Jinja2==3.1.2
33+
json5==0.9.14
34+
jsonpointer==2.4
35+
jsonschema==4.18.4
36+
jsonschema-specifications==2023.7.1
37+
jupyter==1.0.0
38+
jupyter-console==6.6.3
39+
jupyter-events==0.7.0
40+
jupyter-lsp==2.2.0
41+
jupyter_client==8.3.0
42+
jupyter_core==5.3.1
43+
jupyter_server==2.7.0
44+
jupyter_server_terminals==0.4.4
45+
jupyterlab==4.0.3
46+
jupyterlab-pygments==0.2.2
47+
jupyterlab-widgets==3.0.8
48+
jupyterlab_server==2.24.0
49+
MarkupSafe==2.1.3
50+
matplotlib-inline==0.1.6
51+
mistune==3.0.1
52+
nbclient==0.8.0
53+
nbconvert==7.7.3
54+
nbformat==5.9.2
55+
nest-asyncio==1.5.7
56+
notebook==7.0.1
57+
notebook_shim==0.2.3
58+
overrides==7.3.1
59+
packaging==23.1
60+
pandocfilters==1.5.0
61+
parso==0.8.3
62+
pexpect==4.8.0
63+
pickleshare==0.7.5
64+
platformdirs==3.10.0
65+
prometheus-client==0.17.1
66+
prompt-toolkit==3.0.39
67+
psutil==5.9.5
68+
ptyprocess==0.7.0
69+
pure-eval==0.2.2
70+
pycparser==2.21
71+
Pygments==2.15.1
72+
python-dateutil==2.8.2
73+
python-json-logger==2.0.7
74+
PyYAML==6.0.1
75+
pyzmq==25.1.0
76+
qtconsole==5.4.3
77+
QtPy==2.3.1
78+
referencing==0.30.0
79+
requests==2.31.0
80+
rfc3339-validator==0.1.4
81+
rfc3986-validator==0.1.1
82+
rpds-py==0.9.2
83+
Send2Trash==1.8.2
84+
six==1.16.0
85+
sniffio==1.3.0
86+
soupsieve==2.4.1
87+
stack-data==0.6.2
88+
terminado==0.17.1
89+
tinycss2==1.2.1
90+
tomli==2.0.1
91+
tornado==6.3.2
92+
traitlets==5.9.0
93+
typing_extensions==4.7.1
94+
uri-template==1.3.0
95+
urllib3==2.0.4
96+
wcwidth==0.2.6
97+
webcolors==1.13
98+
webencodings==0.5.1
99+
websocket-client==1.6.1
100+
widgetsnbextension==4.0.8
101+
zipp==3.16.2

ansible/roles/openondemand/tasks/jupyter_compute.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,31 @@
22
# See https://osc.github.io/ood-documentation/latest/app-development/tutorials-interactive-apps/add-jupyter/software-requirements.html
33
# - Will already have openssl and lmod
44

5+
- name: Ensure python3.9 installed
6+
dnf:
7+
name: python39
8+
tags: install
9+
510
- name: Install jupyter venv
611
# Requires separate step so that the upgraded pip is used to install packages
712
pip:
813
name: pip
914
state: latest
10-
virtualenv: /opt/jupyter
11-
virtualenv_command: python3 -m venv
15+
virtualenv: /opt/jupyter-py39
16+
virtualenv_command: python3.9 -m venv
17+
tags: install
18+
19+
- name: Copy jupyter requirements file
20+
copy:
21+
src: jupyter_requirements.txt
22+
dest: /opt/jupyter-py39/jupyter_requirements.txt
1223
tags: install
1324

1425
- name: Install jupyter package in venv
1526
pip:
16-
name: jupyter
17-
virtualenv: /opt/jupyter
18-
virtualenv_command: python3 -m venv
27+
virtualenv: /opt/jupyter-py39
28+
virtualenv_command: python3.9 -m venv
29+
requirements: /opt/jupyter-py39/jupyter_requirements.txt
1930
tags: install
2031

2132

environments/.stackhpc/ansible.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ roles_path = ../../ansible/roles
1111
filter_plugins = ../../ansible/filter_plugins
1212

1313
[ssh_connection]
14-
ssh_args = -o ControlMaster=auto -o ControlPersist=240s -o PreferredAuthentications=publickey -o UserKnownHostsFile=/dev/null
14+
ssh_args = -o ControlMaster=auto -o ControlPath=~/.ssh/%r@%h-%p -o ControlPersist=240s -o PreferredAuthentications=publickey -o UserKnownHostsFile=/dev/null
1515
pipelining = True

environments/common/inventory/group_vars/all/openondemand.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ openondemand_clusters:
3737
basic:
3838
script_wrapper: |
3939
module purge
40-
export PATH=/opt/jupyter/bin/:$PATH
40+
export PATH=/opt/jupyter-py39/bin/:$PATH
4141
%s
4242
set_host: host=$(hostname -s)
4343
vnc:

0 commit comments

Comments
 (0)