Skip to content

Commit 40c0a12

Browse files
committed
Updating ptyrex_basic workflow to use latest container
1 parent a9dfa18 commit 40c0a12

3 files changed

Lines changed: 78 additions & 67 deletions

File tree

e02/schema/ptyrex_Schema.json

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,11 @@
1616
"title": "Scan number",
1717
"type": "integer"
1818
},
19-
"proj_start": {
19+
"proj_number": {
2020
"default": null,
2121
"maximum": 10000000,
2222
"minimum": 0,
23-
"title": "Proj Start",
24-
"type": "integer"
25-
},
26-
"proj_end": {
27-
"default": null,
28-
"maximum": 10000000,
29-
"minimum": 0,
30-
"title": "Proj End",
23+
"title": "Proj Number",
3124
"type": "integer"
3225
},
3326
"nprocs": {
@@ -40,7 +33,7 @@
4033
"memory": {
4134
"type": "string",
4235
"pattern": "^[0-9]+[GMK]i$",
43-
"default": "16Gi"
36+
"default": "32Gi"
4437
}
4538
},
4639
"title": "RexSubmission"

e02/schema/ptyrex_ui.json

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,17 @@
2323
},
2424
{
2525
"type": "Control",
26-
"label": "Projection start number",
27-
"scope": "#/properties/proj_start"
26+
"label": "Projection number",
27+
"scope": "#/properties/proj_number"
2828
},
2929
{
3030
"type": "Control",
31-
"label": "Projection end number",
32-
"scope": "#/properties/proj_end"
33-
},
34-
{
35-
"type": "Control",
36-
"label": "Number of Processors",
31+
"label": "Requested number of Processors",
3732
"scope": "#/properties/nprocs"
3833
},
3934
{
4035
"type": "Control",
41-
"label": "Amount of memory",
36+
"label": "Requested memory",
4237
"scope": "#/properties/memory"
4338
}
4439
]

e02/templates/ptyrex_basic.yaml

Lines changed: 71 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,11 @@ spec:
2222
configMapKeyRef:
2323
name: sessionspaces
2424
key: data_directory
25-
##
2625
volumes:
2726
- name: session
2827
hostPath:
2928
path: "{{`{{ workflows.parameters.visitdir}}`}}"
3029
type: Directory
31-
##
32-
#should claim and use a volume called workflows within the visit directory called workflows
33-
##
3430
volumeClaimTemplates:
3531
- metadata:
3632
name: tmpdir
@@ -40,50 +36,77 @@ spec:
4036
requests:
4137
storage: 1Gi
4238
storageClassName: netapp
43-
##
4439
templates:
45-
- name: ptyrex-container
46-
steps:
47-
- - name: ptyrex
48-
template: ptyrex
49-
##
50-
- name: ptyrex
51-
inputs:
52-
parameters:
53-
- name: config_json
54-
value: "{{`{{workflows.parameters.config_json}}`}}"
55-
- name: scan_number
56-
value: "{{`{{workflows.parameters.scan_number}}`}}"
57-
- name: projection_start
58-
value: "{{`{{workflows.parameters.proj_start}}`}}"
59-
- name: projection_end
60-
value: "{{`{{workflows.parameters.proj_end}}`}}"
61-
- name: nprocs
62-
value: "{{`{{workflows.parameters.nprocs}}`}}"
63-
- name: memory
64-
value: "{{`{{ workflow.parameters.memory }}`}}"
65-
script:
66-
image: gitlab.diamond.ac.uk:5050/scisoft/ptychography/dimtools/mib2x #I am using this image to test the workflow generates its inputs correctly not to run anything at the moment
67-
imagePullPolicy: Always
68-
env:
69-
- name: BLOSC_NTHREADS
70-
value: "{{`{{ inputs.parameters.nprocs }}`}}"
71-
- name: OMP_NUM_THREADS
72-
value: "{{`{{ inputs.parameters.nprocs }}`}}"
73-
volumeMounts:
74-
- name: tmpdir
75-
mountPath: /tmp
76-
- name: session
77-
mountPath: "{{`{{workflows.parameters.visitdir}}`}}"
78-
command: [sh]
79-
source: |
80-
#!/bin/sh
81-
set -e
82-
83-
cmd=("python mpiexec -np nprocs ptyrex_recon -c {{`{{workflows.parameters.config_json}}`}} -s {{`{{workflows.parameters.scan_number}}`}} -p {{`{{workflows.parameters.projection_start}}`}}-{{`{{workflows.parameters.projection_end}}`}}")
84-
echo "Executing: ${cmd[@]}"
85-
#exec "${cmd[@]}"
86-
87-
40+
- name: ptyrex-container
41+
inputs:
42+
parameters:
43+
- name: config_json
44+
value: "{{`{{workflow.parameters.config_json}}`}}"
45+
- name: scan_number
46+
value: "{{`{{workflow.parameters.scan_number}}`}}"
47+
- name: projection_start
48+
value: "{{`{{workflow.parameters.proj_number}}`}}"
49+
- name: nprocs
50+
value: "{{`{{workflow.parameters.nprocs}}`}}"
51+
- name: memory
52+
value: "{{`{{ workflow.parameters.memory }}`}}"
53+
container:
54+
image: gitlab.diamond.ac.uk:5050/scisoft/ptychography/dimtools/ptyrex:latest
55+
imagePullPolicy: Always
56+
env:
57+
- name: CUPY_CACHE_DIR
58+
value: /tmp/.cupy/kernel_cache
59+
- name: MKL_NUM_THREADS
60+
value: "1"
61+
- name: NUMEXPR_NUM_THREADS
62+
value: "1"
63+
- name: OMP_NUM_THREADS
64+
value: "1"
65+
command:
66+
- "/opt/conda/bin/mpirun"
67+
args:
68+
- "-np"
69+
- "{{`{{ inputs.parameters.nprocs }}`}}"
70+
- "/home/ptyrex_recon"
71+
- "-c"
72+
- "{{`{{ inputs.parameters.config_json }}`}}"
73+
- "-s"
74+
- "{{`{{ inputs.parameters.scan_number }}`}}"
75+
- "-p"
76+
- "{{`{{ inputs.parameters.proj_number }}`}}"
8877

78+
volumeMounts:
79+
- name: tmpdir
80+
mountPath: /tmp
81+
- name: session
82+
mountPath: "{{`{{ workflow.parameters.visitdir }}`}}"
83+
podSpecPatch: |
84+
containers:
85+
- name: main
86+
resources:
87+
requests:
88+
cpu: "{{`{{ inputs.parameters.nprocs }}`}}"
89+
memory: "{{`{{ inputs.parameters.memory }}`}}"
90+
nvidia.com/gpu: "{{`{{ inputs.parameters.nprocs }}`}}"
91+
limits:
92+
cpu: "{{`{{ inputs.parameters.nprocs }}`}}"
93+
memory: "{{`{{ inputs.parameters.memory }}`}}"
94+
nvidia.com/gpu: "{{`{{ inputs.parameters.nprocs }}`}}"
95+
tolerations:
96+
- key: nvidia.com/gpu
97+
operator: Exists
98+
effect: NoSchedule
99+
- key: nodetype
100+
operator: Equal
101+
value: gpu
102+
effect: NoSchedule
103+
- key: nodegroup
104+
operator: Equal
105+
value: workflows
106+
effect: NoSchedule
107+
volumes:
108+
- name: session
109+
hostPath:
110+
path: "{{`{{ workflow.parameters.visitdir }}`}}"
111+
type: Directory
89112

0 commit comments

Comments
 (0)