Changeset 40020
- Timestamp:
- Apr 27, 2017, 2:49:02 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/release.2015/ps1.datasystem/datasystem.tex
r40009 r40020 179 179 \label{sec:overview} 180 180 181 \subsection{Elements of the Pan-STARRS Data Processing System} 182 181 183 The Pan-STARRS Data Analysis system contains many features to support 182 thewide range of activities: archiving and management of the raw and184 a wide range of activities: archiving and management of the raw and 183 185 processed image files; real-time nightly processing of images for 184 186 transient and moving object science; large-scale re-processing and … … 194 196 \item Summit : both the camera and observatory summit systems perform 195 197 data analysis tasks needed to support the on-going observations. 196 In this article, we focus on those aspects used by the off-summit198 In this article, we focus only on those aspects used by the off-summit 197 199 analysis stages. 198 200 \item Image Processing Pipeline (IPP) : this portion of the data … … 202 204 \item Moving Object Processing System (MOPS) : this system is 203 205 responsible for linking individual detections of solar-system 204 objects together and determining the orbits. 206 objects together and determining the orbits. \note{Denneau REF} 205 207 \item PSPS : this system ingests the calibrated measurements from the 206 208 IPP, MOPS, and others and generates a high-availability database … … 220 222 Pan-STARRS community have implemented a variety of science-level 221 223 analyses of their own to support their science goals (e.g., M31 222 Cepheid search). 224 Cepheid search). This article discusses the analysis elements which 225 take place at the IfA except as noted. 223 226 224 227 Figure~\ref{fig:analysis.elements} illustrates the many elements of … … 228 231 The MOPS is described in detail by \cite{MOPS}, while the summit 229 232 systems are described by \note{REF?}. 233 234 \subsection{Nightly Processing Analysis Stages} 230 235 231 236 Data analysis to support nighly science operations is driven by two … … 241 246 determined (camera), and finally images are geometric transformed to a 242 247 common pixel representation (warp). Warped images may either be added 243 together (stack) or used in an image subtraction (diff). Fornightly244 science operations, images for certain fields such as the Medium Deep248 together (stack) or used in an image subtraction (diff). As part of nightly 249 science processing, images for certain fields such as the Medium Deep 245 250 survey fields (see \cite{}), are stacked together in nightly chunks, 246 251 providing deeper detection capability on short timescales. Depending … … 252 257 253 258 \note{need earlier mention of 3pi, MD, etc} 259 260 \subsection{Re-processing Analysis Stages} 254 261 255 262 Pan-STARRS has performed several large-scale reprocessings of both the … … 270 277 analysis stages are ingested into the internal calibration database 271 278 (DVO, the Desktop Virtual Observatory) and used for photometric and 272 astrometric calibrations. 279 astrometric calibrations (see Section~\ref{sec:dvo}) 280 281 \subsection{Data Access and Distribution} 273 282 274 283 During the PS1 Science Consortium operations, data products were … … 281 290 demand via the Postage Stamp server; access to large sets of 282 291 pre-defined raw and reduced data products was provided via the 283 Distribution and Publication systems. The inter al calibration DVO292 Distribution and Publication systems. The internal calibration DVO 284 293 databases were provided at several stages via a separate DVO 285 294 distribution mechanism. For the first two large-scale reprocessings … … 1415 1424 commands and update the processing database as needed. Within the 1416 1425 Pan-STARRS IPP, the top-level management of these operations is 1417 performed withthe program called \ippprog{pantasks}.1426 performed by the program called \ippprog{pantasks}. 1418 1427 1419 1428 The core capability of the \ippprog{pantasks} program is to take a 1420 1429 collection of ``tasks'' which describe the concept of a command which 1421 1430 might be run and to regularly generate new commands based on that 1422 concept. These commands may the be run by the pantasks program 1431 concept. The ``tasks'' are defined using the opihi scripting language 1432 (also shared by DVO and other user-interative programs within the 1433 IPP). 1434 1435 Pantasks repeatedly checks each task in an attempt to generate a new 1436 command: we say pantasks attempts to 'execute' the task. Tasks may 1437 specify the time between execution attempts, with a 1 second default. 1438 1439 Each task must at a minimum define a command to generate. Commands 1440 may be static or dynamic. For a task with a static command, the 1441 command is explicity defined in the task block (see code example in 1442 Figure~\ref{fig:task_example1}) and is identical each time the task is 1443 execute. For a task with a dynamic command, the command is defined 1444 within a special block of the task, called \code{task.exec}. This 1445 block is a snipet of code (in the opihi language) which is run when 1446 the task is executed. The \code{task.exec} code may refer to 1447 variables or other data structures defined by the opihi langage within 1448 the pantasks environment. Within a single \ippprog{pantasks} 1449 instance, all opihi variables and data structures have global context 1450 (\ie, all are visible to all tasks). Variables are by default global, 1451 but within the context of an opihi macro (equivalent of a function 1452 call), variables may be locally-scoped. Other data structures (see 1453 below) are global and must be protected with name space choices. 1454 1455 Within the \ippprog{task.exec} macro, at some point the command to be 1456 run must be defined with the function 'command'. Once the 1457 \ippprog{task.exec} macro exits successfully, the command is the added 1458 to the list of jobs to be run within the UNIX environment. Jobs 1459 may be run in one of two ways: locally or via the parallel processing 1460 system. The task, or the \ippprog{task.exec} macro, uses the 'host' 1461 command to define how to run the job. If the host is set to 'local', 1462 then the job is run in the background by pantasks itself (using the 1463 C \code{execvp} function). Otherwise, the job is sent to the parallel 1464 processing system to be run on another machine within the cluster. 1465 If the host is set to the special value 'anyhost', then the parallel 1466 processing system is allowed to choose the processing computer 1467 arbitrarily. Any other value is taken to be the DNS name of the 1468 computer on which this job should run. If the option \code{-required} 1469 is supplied to the \code{host} command, then the parallel processing 1470 system must ensure that the job only runs on the specifically named 1471 system. Otherwise, the parallel processing system may choose to 1472 redirect the command to another computer (based on whatever rules are 1473 defined for the parallel processing system). 1474 1475 When the \ippprog{task.exec} macro is run, the code may choose (e.g., based 1476 on tests of some global variables) to exit the macro with an error 1477 condition, e.g., with the 'break' command. In this circumstance, no 1478 job is produced by the task. The task will try again the next time it 1479 is executed. This feature allows for the user to set processing 1480 blocks which depend on some external tests. For example, some task 1481 may check external network connectivity and set a 1482 variable based on the network status; other tasks may then choose to 1483 wait until the network is available before attempting to run. 1484 1485 Other task options discussed below exist to control the system 1486 behavior in detail. Note that the options below may be dynamically 1487 reset by the \ippprog{task.exec} macro. 1488 1489 The option 'npending' may be used to limit the number of jobs which 1490 are simultaneously executed for a specific task. For example, some 1491 classes of jobs should only be run one-at-a-time because they are not 1492 protected against collisions or they may overload a resource. The use 1493 of 'npending' allows these situations to be handled cleanly within 1494 pantasks (avoiding cumbersome coding within with program or supporting 1495 script). 1496 1497 The option 'nmax' limits the total number of jobs which a task 1498 generates. This option may be useful in cases where 1499 \ippprog{pantasks} is used to perform a limited set of operations. 1500 \note{do we actually use this in IPP?} 1501 1502 The option 'trange' allows the user to restrict the time period during 1503 which the specific tasks is executed. This option is given with a 1504 start and an end time for the limiting time range. These times may be 1505 of one of several forms: ``HH:MM:SS'' specifies a time within a day 1506 (in UT or local time?). ``Day[@HH:MM:SS]'' specifies a time on a 1507 specific day, e.g., \code{trange Mon@13:00 Tue@09:00} says the task 1508 should be run from 1pm on Mondays to 9am on Tuesdays. ``YYYY/MM/DD,HH:MM:SS'' 1509 specifies a time on a specific date within the year. The start and 1510 end times must be of the same class. The \code{trange} command has 1511 some optional arguments as well. The option \code{-nmax NNN} defines 1512 the maximum number of jobs which may be run in that time range. The 1513 option \code{-exclude} specifies that the time range is a period when 1514 the task should {\em not} be executed. An arbirary number of time 1515 ranges may be specified \note{how are they evaluated?} 1516 1517 The option \code{nice} specifies the 'nice' level at which the job is 1518 run when it is executed. The parallel processing system must respect 1519 this concept. 1520 1521 The option \code{active} can be used to turn on and off a task for 1522 periods. Since a user command or a macro run by pantasks can 1523 re-define task options, the \code{active} state may be changed 1524 independently of the task execute. This is useful for keeping tasks 1525 defined by a \ippprog{pantasks} instance, but allowing the user to 1526 prevent them from running for some reason. 1527 1528 \note{discuss pcontrol} 1529 1530 Jobs which are generated by \ippprog{pantasks} may be run locally on 1531 the machine running \ippprog{pantasks} or they may be distributed 1532 across many machines in the computing cluster. The parallel 1533 processing system used by \ippprog{pantasks} is an independent 1534 software system (and alternatives are possible). The default parallel 1535 processing system is a program called \ippprog{pcontrol}. 1536 1537 This program is based on the same \ippprog{opihi} shell language used 1538 by \ippprog{pantasks}. The two programs communicate via a shared set 1539 of pipes: \ippprog{pantasks} sends commands to the standard input of 1540 the \ippproc{pcontrol}, and accepts back responses on the standard 1541 output and standard error. 1542 1543 \ippprog{pcontrol} maintains a list of jobs and a list of hosts, 1544 computers on which a job could be run. Jobs may have one of several 1545 states: pending (ready to run), running, jobs which are 1546 running 1547 1548 \note{discuss pclient} 1549 1550 \begin{verbatim} 1551 * pantasks_client vs pantasks_server 1552 * opihi scripting language 1553 * task options (show example?) 1554 1555 \end{verbatim} 1556 1557 These commands may the be run by the pantasks program 1423 1558 directly, or they may be passed to another program which 1424 1559 1425 1560 * task vs job 1561 1562 \begin{figure} 1563 \begin{center} 1564 \begin{verbatim} 1565 task example.static.task 1566 host local 1567 command ls /tmp 1568 periods -exec 5.0 1569 npending 1 1570 stdout NULL 1571 stderr /data/local/example.task 1572 end 1573 \end{verbatim} 1574 1575 \caption{\label{fig:peaks} Illustration of peak finding and culling peaks within a 1576 footprint. Insignificant peaks within the footprint of a brighter 1577 peak are ignored in further processing. } 1578 \end{center} 1579 \end{figure} 1580 1581 1426 1582 1427 1583 \note{this section needs to be re-written : pclient vs pcontrol vs pantasks}
Note:
See TracChangeset
for help on using the changeset viewer.
