| | 1 | == 2014-05-16 == |
| | 2 | |
| | 3 | After sending Ken a summary of how the remote processing works, I thought it would useful to copy that information here. |
| | 4 | |
| | 5 | |
| | 6 | |
| | 7 | [[Image(IMG_20140516_165558_259.jpg)]] |
| | 8 | |
| | 9 | * Password issue (box 1 on the diagram). |
| | 10 | |
| | 11 | The head node runs the pantasks controlling all processing. The user |
| | 12 | doing the processing needs to have a key-card validated connection to |
| | 13 | LANL. Due to the LANL security system, this connection is |
| | 14 | disconnected every 12 hours, and must be re-established to do any |
| | 15 | executing or polling of remote jobs. |
| | 16 | |
| | 17 | * Slow preparation issue (box 2 on the diagram). |
| | 18 | |
| | 19 | Each remote job needs to have all of its file depenencies and commands |
| | 20 | structured, and this can happen on any node in the pantasks. This |
| | 21 | does not require an active connection to LANL, as it is purely |
| | 22 | IPP-side. As each remote job consists of ~1000 exposures, and each |
| | 23 | exposure has on order 60-80 sub-components, these jobs take a long |
| | 24 | time (each subcomponent seems to take on the order of a second or |
| | 25 | less). However, as we can run many of these simultaneously, the |
| | 26 | average cost of these prep jobs can be brought down. This runs into |
| | 27 | the issue that if we have many jobs being prepared, we will need to |
| | 28 | run them all. |
| | 29 | |
| | 30 | * Data persistence issue (not directly visible on diagram). |
| | 31 | |
| | 32 | Having many jobs in the queue requires a lot of data to be transfered, |
| | 33 | and subsequent stages (cam/warp/stack) need to be executed before the |
| | 34 | LANL disk quota removes needed results from previous stages. We are |
| | 35 | only transferring back (box 7) permanent data products that we want to |
| | 36 | keep, not all intermediate products. |
| | 37 | |
| | 38 | * Remainder of explanation (boxes 2+ on diagram) |
| | 39 | |
| | 40 | * Box 2: Prepare |
| | 41 | Each stage has a different prepare script, but they all output the |
| | 42 | same products: a list of filename requirements (in multiple formats to |
| | 43 | match nebulous/disk formats), a list of commands to execute (the |
| | 44 | ppImage/psastro/pswarp/ppStack, but also various mkdir commands to |
| | 45 | ensure output products can be constructed, and symlink commands to |
| | 46 | alias files from their nebulous key to nebulous disk representation), |
| | 47 | and a resource requirement. |
| | 48 | |
| | 49 | * Box 3-5: Exec |
| | 50 | Once the prepare is finished, pantasks can launch an exec script [3] |
| | 51 | via the ssh link that feeds that data through to "mu-fe", the Mustang |
| | 52 | front-end computer. This launches the transfer tool on mu-fe [4], |
| | 53 | which in turn connects via ssh and tar to the IPP storage accessible |
| | 54 | from ippc2X. Once all required data has been downloaded to the |
| | 55 | scratch disk at LANL, the job resource requiest is submitted to the |
| | 56 | MOAB scheduler [5]. |
| | 57 | |
| | 58 | * Box 6-7: Poll |
| | 59 | |
| | 60 | After some amount of time (currently one hour after the GPC1 database |
| | 61 | entry for the remoteRun was last updated), pantasks launches a poll |
| | 62 | command over the ssh link to mu-fe [6]. If the job has completed, the |
| | 63 | filelists calculated in the prepare step are used to pass back any |
| | 64 | permanent data to the IPP storage nodes [7]. Included in this are the |
| | 65 | dbinfo files, which contain the update commands necessary to update |
| | 66 | the GPC1 database, and these are executed by the poll command before |
| | 67 | it sets the remoteRun state to 'full'. |
| | 68 | |
| | 69 | Unpictured are the IPP advance commands that can also run in the |
| | 70 | pantasks, which launch the next stage processing for the data |
| | 71 | returned. |
| | 72 | |
| | 73 | |