Common DFOS tools:
Documentation
|
dfos
= Data Flow Operations System, the common tool set for DFO |
Condor® Project University Wisconsin
Simple simulations for Condor
1. FORS1
The following simple sketch illustrates the potential of using Condor, both on a dual processor and a multi-processor platform. We assume a model cascade with three levels (dependencies) and up to 6 independent ABs ("FORS1"). To simplify further, we also assume similar execution times per recipe and processor. Then the execution time for a batch of jobs is the fundamental cycle time of the system, by which we measure the system performance. Grey is idle time, blue is active time:
FORS1 model cascade: 1 BIAS, 3 depending FLATs, 6 depending STD |
traditional QC processing (DRS_TYPE="CPL") |
slightly more advanced dfo processing (DRS_TYPE="CON") |
processing on a small cluster (N=6) |
|
|
1 |
|
|
|
BIAS |
2 |
|
3 |
|
4 |
|
FLAT |
5 |
6 |
7 |
8 |
9 |
10 |
STD |
|
|
|
|
number of cycles: |
10 |
6
(2,3,4 can only start when 1 is done; 5-10 only when 2-4 is done) |
3
(cannot be reduced further) |
The very same cascade on a multi-processor platform with more than 6 nodes cannot be made any faster because of the dependencies.
2. OCAM
The survey instruments with up to 32 detectors will require a higher processing multiplexity. The idea is to have the pipeline recipe access a particular extension (both in raw and product files) and hence have the same AB running 32 times, indexed by detector ID. Then there is an additional job, #33, to merge all 32 product files into a single final product. In the following we take a very simple-minded cascade for a 32 detector instrument (1 BIAS, 1 FLAT; "OCAM"), executed on a small and on an adapted cluster. Again, similar execution and performance times are assumed:
OCAM model cascade: 1 BIAS, 1 depending FLAT |
processing on N=6 cluster |
processing on N=32 cluster |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
BIAS |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
FLAT |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
|
|
|
|
33 |
|
|
|
|
|
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
|
|
|
|
66 |
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
number of cycles: |
14
Jobs 33 and 66 are join job (to create MEF product file). 33 depends on 1-32. 34-65 depend on 33. 66 depends on 34-65. |
4
(cannot be reduced) |
3. Hybrid: OCAM plus FORS1
In general, CONDOR will be used by QC to execute all pipeline jobs. Hence a hybrid scenario (with the two cascades from above submitted to the same cluster) could look like following:
OCAM and FORS1 model cascades from above |
processing on N=6 cluster |
processing on N=32 cluster |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
BIAS |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
FLAT |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
1 |
|
|
|
33 |
2 |
3 |
4 |
|
|
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
5 |
6 |
7 |
8 |
66 |
9 |
10 |
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
2 |
3 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
6 |
7 |
8 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5
(an extra cycle is required because of the FORS dependencies)
Buying just one more CPU would reduce the cycle number to 4: |
processing on N=33 cluster |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
1 |
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
4 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
5 |
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
7 |
8 |
9 |
10 |
|
number of cycles |
14
(The FORS jobs can be scheduled to idle processors) |
4-5 |
Obviously the idle processor cycles could be used for further compute jobs. The important point is that by careful adaption of the resources to the compute needs the cost-to-benefit ratio can improve significantly (gain of 20% throughput by just adding 1 more CPU to existing 32).