IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 39887


Ignore:
Timestamp:
Dec 16, 2016, 6:11:01 PM (10 years ago)
Author:
watersc1
Message:

Done working for today. Added discussion of remote processing at LANL and the UHCray. Started Nebulous discussion.

File:
1 edited

Legend:

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

    r39868 r39887  
    222222
    223223\subsection{Nebulous}
     224
     225Storing the large volume of data that is generated by the GPC1 camera
     226was recognized early in the Pan-STARRS project as a major concern.
     227The \ippprog{Nebulous} system was designed to organize this data.  The
     228main components of this system is a database storing the locations of
     229the files, with a Simple Object Access Protocol interface between the
     230database and the other IPP programs.  The actual files are stored on
     231NFS mounted partitions on a series of storage nodes in the IPP
     232cluster.
     233
     234The original design of \ippprog{Nebulous} intended to aid in the
     235targetted processing of data, by having specific image data (such as
     236all the images from one OTA device) located on a single storage node.
     237This would allow any jobs involving that data to be assigned to the
     238storage node, eliminating network IO.  Important data could be
     239duplicated to a further data nodes, with the alternate locations
     240stored in the database.  In practice, however, hardware failures and
     241increases in hard drive storage volumes and network bandwidth have
     242reduced the amount that the IPP processing is targeted.
     243
     244When a program creates a new file in \ippprog{Nebulous}, it supplies
     245an URI of the form \texttt{neb://HOST.VOLUME/PATH/FILENAME}.  The host
     246and volume specifiers are optional, and allow a file to be created on
     247a specific node.  The path and filename appear as a standard full file
     248location, and are used internally as the ``external id''.  A
     249storage\_object is then created in the database for this id, and an
     250instance of the file created on the specified node (or at random from
     251available nodes if left empty). 
     252
    224253
    225254\subsection{Pantasks \& Parallel Processing}
     
    907936\subsection{Los Alamos National Labs}
    908937
     938In order to increase the processing rate for the $3\Pi$ PV3 data, we
     939partnered with Los Alamos National Lab to gain access to the Mustang
     940supercomputer.  The supercomputer is comprised of 3088 processing
     941nodes, each with 12 cores and 64GB of RAM.  The processing nodes do
     942not have significant local disks, but are connected to multiple
     943petabyte scale scratch disks.  Job management is controlled by the
     944Moab HPC system\footnote{\url{http://www.adaptivecomputing.com/}},
     945which schedules resource requests among users, allocating processing
     946nodes to satisfy jobs, and terminating those jobs if they exceed their
     947scheduled time limit.
     948
     949This system is part of the lab's ``Turquoise'' network, allowing it to
     950be used for research projects that do not handle sensitive data.  It
     951is, however, subject to stricter access controls than are in place at
     952the main IPP processing cluster.  Login sessions are terminated after
     95312 hours, requiring new sessions to be initiated regularly.  Network
     954access is also filtered, with only SSH connections allowed between the
     955IPP cluster and Los Alamos.  This restriction removes the ability for
     956the processing to contact the IPP processing database directly.
     957
     958To work around this, additional steps were needed to ensure efficient
     959use of the computing resources.  A periodic poll of outstanding tasks
     960was done on the IPP cluster, using the information stored in the
     961database, and those tasks assigned to a processing bundle.  Each
     962component task in the bundle was then checked to identify the set of
     963input files needed to complete the task, the commands necessary to
     964complete the task, and the set of output files that should be
     965generated if the task completed successfully.  Once this information
     966had been generated for all tasks, the component lists were merged, and
     967the Moab job control file was constructed.
     968
     969The control file contains the resource requests for the job, as well
     970as the commands to be executed to complete it.  The resource request
     971was calculated based on the number of tasks included in the job bundle
     972$N_\mathrm{tasks}$, and scaled by the expected execution time
     973($t_\mathrm{task}$) and computational intensity of the component tasks
     974($S_\mathrm{task}$).  For a given job bundle, an initial estimate of
     975the number of compute nodes needed is simply $\mathrm{nodes} =
     976S_\mathrm{task} * N_\mathrm{tasks} / 12$.  To ensure that jobs were
     977not prematurely terminated, we attempted to design the requested job
     978processing time to be 25\% longer than the expected time to complete
     979the component tasks.  Based on the initial node count, we calculated
     980the request time as $t_\mathrm{request} = \lfloor 1.25
     981\frac{\mathrm{nodes} * t_\mathrm{task}}{\mathrm{nodes}_\mathrm{max}}
     982\rfloor + 1$, where $\mathrm{nodes}_\mathrm{max}$ is the maximum
     983number of nodes that can be requested in a single job (1000 for
     984Mustang).  Table \ref{tab:SC processing parameters} contains the cost
     985values used for the various IPP processing stages.
     986
     987\begin{deluxetable}{lcc}
     988  \tablecolumns{3}
     989  \tablewidth{0pc}
     990  \tablecaption{Cost values for remote processing}
     991  \tablehead{\colhead{IPP Stage}&\colhead{$t_\mathrm{task}$ (s)}&\colhead{$S_\mathrm{task}$}}
     992  \startdata
     993  \ippstage{chip} & 150 & 2 \\
     994  \ippstage{camera} & 1700 & 2 \\
     995  \ippstage{warp} & 110 & 2 \\
     996  \ippstage{stack} & 1500 & 6 \\
     997  \ippstage{staticsky} & 7200 & 6 \\
     998%  \ippstage{diff} & 300 & 2 \\
     999  \ippstage{fullforce} & 300 & 2
     1000  \enddata
     1001  \label{tab:SC processing parameters}
     1002\end{deluxetable}
     1003
     1004Once the preparation for the job is complete, the input and output
     1005file lists, the task list, and the job control file are transferred
     1006via SCP to the Mustang cluster.  Local tasks are then initiated on the
     1007user interface nodes to SCP the input files onto the scratch storage
     1008disks if they do not already exist.  Once all the input files have
     1009been copied, the job is submitted to Moab for scheduling.  The Moab
     1010interface is periodically polled to determine the job status, and
     1011after it has completed, the results are retrieved in a similar way.
     1012Local tasks again SCP the output products, but to copy the results
     1013back to the IPP cluster.
     1014
     1015In addition to the standard output products, ``dbinfo'' files are
     1016constructed as part of the job execution.  These files contain
     1017database update commands to ensure that the IPP processing database
     1018has the correct entries for the tasks that were remotely executed.
     1019These commands are executed after confirming that all retrieved output
     1020products are present.
     1021
     1022Approximately half of the chip through warp processing for the PV3
     1023reduction was performed on Mustang, with 201,040 / 375,573 of the
     1024\ippstage{camera} stage products reduced there.  Only processing
     1025through the \ippstage{stack} stage was attempted, although with a
     1026smaller fraction of the total compared to the \ippstage{camera} stage,
     1027with 290,257 / 998,886 being produced at Los Alamos.  One reason for
     1028this decrease is that due to the memory constraints on the Mustang
     1029processing nodes, we were unable to run stacks with more than 25
     1030inputs there.  Stacks with this larger number of inputs overflow the
     1031memory of the processing node, and as they do not have disk space
     1032available for use as virtual memory, cause the machine to hang until
     1033the job time limit is reached.  These stacks were instead processed on
     1034the regular IPP cluster, where hosts with sufficent memory were
     1035available.
     1036
    9091037\subsection{UH Cray Cluster}
     1038
     1039In December 2014, the University of Hawaii installed a 178-compute
     1040node Cray supercomputer on the main Manoa campus.  As part of the
     1041initial commissioning of this computer, Pan-STARRS was invited to use
     1042this resource in February 2015, roughly corresponding with the
     1043completion of the initial processing of the \ippstage{chip} through
     1044\ippstage{stack} processing.  Although the number of nodes was much
     1045smaller than that available on Mustang, the nodes were more robust,
     1046with 20 cores and 128 GB of memory.  The scratch data storage was
     1047somewhat smaller than at Los Alamos, with only a single 600 TB volume.
     1048We had the unique ability to rapidly deploy to the UH Cray, using
     1049almost all nodes for IPP processing as other users at the university
     1050were designing code.  This rapid deployment was made possible by the
     1051similarity of the Slurm\footnote{\url{https://slurm.schedmd.com/}}
     1052scheduler and tools to those used by Moab (although the UH Cray has a
     1053smaller $\mathrm{nodes}_\mathrm{max}$ of 10).
     1054
     1055The UH Cray was used to do processing for the \ippstage{staticsky}
     1056stage, running approximately half of that photometry (101,528 /
     1057200,720).  We were also able to run part of the \ippstage{fullforce}
     1058photometry there as well, although more had to be run on the IPP
     1059cluster as other users started to utilize the system, with 168,685 /
     1060994,890 runs processed there.
     1061
    9101062
    9111063\acknowledgments
Note: See TracChangeset for help on using the changeset viewer.