Cluster job overview » History » Version 3
Amber Herold, 07/21/2014 11:28 AM
1 | 1 | Amber Herold | h1. Cluster job overview |
---|---|---|---|
2 | |||
3 | From the user perspective, a refinement job includes 3 parts: |
||
4 | # Preparation step |
||
5 | ** prepares any data that is needed for the method to be run |
||
6 | ** includes modifying a selected stack to be in any required format |
||
7 | # Run step |
||
8 | ** User selects which cluster they would like to run the job on |
||
9 | ** The job file is built and submitted to a queue |
||
10 | # Upload step |
||
11 | ** Results are converted to a format that Appion accepts |
||
12 | ** Converted results are uploaded to the Appion Database |
||
13 | |||
14 | From a programming perspective, the following pieces of code need to be written: |
||
15 | 3 | Amber Herold | # GUI prep step launch form - see [[Refine_Refactor_documentation|Refinement GUI tutorial]] |
16 | 1 | Amber Herold | # Python prep step run script |
17 | 3 | Amber Herold | # GUI run step launch form - see [[Refine_Refactor_documentation|Refinement GUI tutorial]] |
18 | 1 | Amber Herold | # Python run step run script |
19 | 3 | Amber Herold | # GUI upload step launch form - see [[Refine_Refactor_documentation|Refinement GUI tutorial]] |
20 | 1 | Amber Herold | # Python upload step run script |
21 | # GUI results viewing page |
||
22 | |||
23 | Many of these pieces use the [[Object_Oriented_Programming|object-oriented programming]] feature of inheritance to create base classes that take care of common functions. |
||
24 | 2 | Amber Herold | To add a new cluster job to the Appion Pipeline, you will need to have a basic grasp of [[Object_Oriented_Programming|object-oriented programming]]. |
25 | This design is used to reduce the amount of copied and pasted repeated code which is error prone, fragile, and difficult to maintain. It can also reduce the learning curve for adding new packages to Appion if the base classes are well defined and easy to read examples are provided. |