IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 40020


Ignore:
Timestamp:
Apr 27, 2017, 2:49:02 AM (9 years ago)
Author:
eugene
Message:

various text updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/release.2015/ps1.datasystem/datasystem.tex

    r40009 r40020  
    179179\label{sec:overview}
    180180
     181\subsection{Elements of the Pan-STARRS Data Processing System}
     182
    181183The Pan-STARRS Data Analysis system contains many features to support
    182 the wide range of activities: archiving and management of the raw and
     184a wide range of activities: archiving and management of the raw and
    183185processed image files; real-time nightly processing of images for
    184186transient and moving object science; large-scale re-processing and
     
    194196\item Summit : both the camera and observatory summit systems perform
    195197  data analysis tasks needed to support the on-going observations.
    196   In this article, we focus on those aspects used by the off-summit
     198  In this article, we focus only on those aspects used by the off-summit
    197199  analysis stages.
    198200\item Image Processing Pipeline (IPP) : this portion of the data
     
    202204\item Moving Object Processing System (MOPS) : this system is
    203205  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}
    205207\item PSPS : this system ingests the calibrated measurements from the
    206208  IPP, MOPS, and others and generates a high-availability database
     
    220222Pan-STARRS community have implemented a variety of science-level
    221223analyses of their own to support their science goals (e.g., M31
    222 Cepheid search).
     224Cepheid search).  This article discusses the analysis elements which
     225take place at the IfA except as noted.
    223226
    224227Figure~\ref{fig:analysis.elements} illustrates the many elements of
     
    228231The MOPS is described in detail by \cite{MOPS}, while the summit
    229232systems are described by \note{REF?}.
     233
     234\subsection{Nightly Processing Analysis Stages}
    230235
    231236Data analysis to support nighly science operations is driven by two
     
    241246determined (camera), and finally images are geometric transformed to a
    242247common pixel representation (warp).  Warped images may either be added
    243 together (stack) or used in an image subtraction (diff).  For nightly
    244 science operations, images for certain fields such as the Medium Deep
     248together (stack) or used in an image subtraction (diff).  As part of nightly
     249science processing, images for certain fields such as the Medium Deep
    245250survey fields (see \cite{}), are stacked together in nightly chunks,
    246251providing deeper detection capability on short timescales.  Depending
     
    252257
    253258\note{need earlier mention of 3pi, MD, etc}
     259
     260\subsection{Re-processing Analysis Stages}
    254261
    255262Pan-STARRS has performed several large-scale reprocessings of both the
     
    270277analysis stages are ingested into the internal calibration database
    271278(DVO, the Desktop Virtual Observatory) and used for photometric and
    272 astrometric calibrations.
     279astrometric calibrations (see Section~\ref{sec:dvo})
     280
     281\subsection{Data Access and Distribution}
    273282
    274283During the PS1 Science Consortium operations, data products were
     
    281290demand via the Postage Stamp server; access to large sets of
    282291pre-defined raw and reduced data products was provided via the
    283 Distribution and Publication systems.  The interal calibration DVO
     292Distribution and Publication systems.  The internal calibration DVO
    284293databases were provided at several stages via a separate DVO
    285294distribution mechanism.  For the first two large-scale reprocessings
     
    14151424commands and update the processing database as needed.  Within the
    14161425Pan-STARRS IPP, the top-level management of these operations is
    1417 performed with the program called \ippprog{pantasks}. 
     1426performed by the program called \ippprog{pantasks}. 
    14181427
    14191428The core capability of the \ippprog{pantasks} program is to take a
    14201429collection of ``tasks'' which describe the concept of a command which
    14211430might be run and to regularly generate new commands based on that
    1422 concept.  These commands may the be run by the pantasks program
     1431concept.  The ``tasks'' are defined using the opihi scripting language
     1432(also shared by DVO and other user-interative programs  within the
     1433IPP). 
     1434
     1435Pantasks repeatedly checks each task in an attempt to generate a new
     1436command: we say pantasks attempts to 'execute' the task.  Tasks may
     1437specify the time between execution attempts, with a 1 second default.
     1438
     1439Each task must at a minimum define a command to generate.  Commands
     1440may be static or dynamic.  For a task with a static command, the
     1441command is explicity defined in the task block (see code example in
     1442Figure~\ref{fig:task_example1}) and is identical each time the task is
     1443execute.  For a task with a dynamic command, the command is defined
     1444within a special block of the task, called \code{task.exec}.  This
     1445block is a snipet of code (in the opihi language) which is run when
     1446the task is executed.  The \code{task.exec} code may refer to
     1447variables or other data structures defined by the opihi langage within
     1448the pantasks environment.  Within a single \ippprog{pantasks}
     1449instance, all opihi variables and data structures have global context
     1450(\ie, all are visible to all tasks).  Variables are by default global,
     1451but within the context of an opihi macro (equivalent of a function
     1452call), variables may be locally-scoped.  Other data structures (see
     1453below) are global and must be protected with name space choices.
     1454
     1455Within the \ippprog{task.exec} macro, at some point the command to be
     1456run must be defined with the function 'command'.  Once the
     1457\ippprog{task.exec} macro exits successfully, the command is the added
     1458to the list of jobs to be run within the UNIX environment.  Jobs
     1459may be run in one of two ways: locally or via the parallel processing
     1460system.  The task, or the \ippprog{task.exec} macro, uses the 'host'
     1461command to define how to run the job.  If the host is set to 'local',
     1462then the job is run in the background by pantasks itself (using the
     1463C \code{execvp} function).  Otherwise, the job is sent to the parallel
     1464processing system to be run on another machine within the cluster.
     1465If the host is set to the special value 'anyhost', then the parallel
     1466processing system is allowed to choose the processing computer
     1467arbitrarily.  Any other value is taken to be the DNS name of the
     1468computer on which this job should run.  If the option \code{-required}
     1469is supplied to the \code{host} command, then the parallel processing
     1470system must ensure that the job only runs on the specifically named
     1471system.  Otherwise, the parallel processing system may choose to
     1472redirect the command to another computer (based on whatever rules are
     1473defined for the parallel processing system).
     1474
     1475When the \ippprog{task.exec} macro is run, the code may choose (e.g., based
     1476on tests of some global variables) to exit the macro with an error
     1477condition, e.g., with the 'break' command.  In this circumstance, no
     1478job is produced by the task.  The task will try again the next time it
     1479is executed.  This feature allows for the user to set processing
     1480blocks which depend on some external tests.  For example, some task
     1481may check external network connectivity and set a
     1482variable based on the network status; other tasks may then choose to
     1483wait until the network is available before attempting to run.
     1484
     1485Other task options discussed below exist to control the system
     1486behavior in detail.  Note that the options below may be dynamically
     1487reset by the \ippprog{task.exec} macro.   
     1488
     1489The option 'npending' may be used to limit the number of jobs which
     1490are simultaneously executed for a specific task.  For example, some
     1491classes of jobs should only be run one-at-a-time because they are not
     1492protected against collisions or they may overload a resource.  The use
     1493of 'npending' allows these situations to be handled cleanly within
     1494pantasks (avoiding cumbersome coding within with program or supporting
     1495script).
     1496
     1497The option 'nmax' limits the total number of jobs which a task
     1498generates.  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
     1502The option 'trange' allows the user to restrict the time period during
     1503which the specific tasks is executed.  This option is given with a
     1504start and an end time for the limiting time range.  These times may be
     1505of 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
     1507specific day, e.g., \code{trange Mon@13:00 Tue@09:00} says the task
     1508should be run from 1pm on Mondays to 9am on Tuesdays.  ``YYYY/MM/DD,HH:MM:SS''
     1509specifies a time on a specific date within the year.  The start and
     1510end times must be of the same class.  The \code{trange} command has
     1511some optional arguments as well.  The option \code{-nmax NNN} defines
     1512the maximum number of jobs which may be run in that time range.  The
     1513option \code{-exclude} specifies that the time range is a period when
     1514the task should {\em not} be executed.  An arbirary number of time
     1515ranges may be specified \note{how are they evaluated?}
     1516
     1517The option \code{nice} specifies the 'nice' level at which the job is
     1518run when it is executed.  The parallel processing system must respect
     1519this concept.
     1520
     1521The option \code{active} can be used to turn on and off a task for
     1522periods.  Since a user command or a macro run by pantasks can
     1523re-define task options, the \code{active} state may be changed
     1524independently of the task execute.  This is useful for keeping tasks
     1525defined by a \ippprog{pantasks} instance, but allowing the user to
     1526prevent them from running for some reason.
     1527
     1528\note{discuss pcontrol}
     1529
     1530Jobs which are generated by \ippprog{pantasks} may be run locally on
     1531the machine running \ippprog{pantasks} or they may be distributed
     1532across many machines in the computing cluster.  The parallel
     1533processing system used by \ippprog{pantasks} is an independent
     1534software system (and alternatives are possible).  The default parallel
     1535processing system is a program called \ippprog{pcontrol}.
     1536
     1537This program is based on the same \ippprog{opihi} shell language used
     1538by \ippprog{pantasks}.  The two programs communicate via a shared set
     1539of pipes: \ippprog{pantasks} sends commands to the standard input of
     1540the \ippproc{pcontrol}, and accepts back responses on the standard
     1541output and standard error. 
     1542
     1543\ippprog{pcontrol} maintains a list of jobs and a list of hosts,
     1544computers on which a job could be run.  Jobs may have one of several
     1545states: pending (ready to run), running, jobs which are
     1546running
     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
     1557These commands may the be run by the pantasks program
    14231558directly, or they may be passed to another program which
    14241559
    14251560* task vs job
     1561
     1562\begin{figure}
     1563 \begin{center}
     1564\begin{verbatim}
     1565task       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
     1572end 
     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
    14261582
    14271583\note{this section needs to be re-written : pclient vs pcontrol vs pantasks}
Note: See TracChangeset for help on using the changeset viewer.