Project

General

Profile

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.