Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new changes after meeting #3

Merged
merged 5 commits into from Sep 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -17,6 +17,7 @@ one.*
*.fot
*.cb
*.cb2
*.xdv


## Intermediate documents:
Expand Down
5 changes: 5 additions & 0 deletions acronyms.tex
Expand Up @@ -13,21 +13,26 @@
DMTN & DM Technical Note \\\hline
DP0 & Data Preview 0 \\\hline
DRP & Data Release Production \\\hline
FITS & Flexible Image Transport System \\\hline
FY24 & Financial Year 24 \\\hline
GB & Gigabyte \\\hline
IDAC & Independent Data Access Center \\\hline
IVOA & International Virtual-Observatory Alliance \\\hline
LINCC & LSST Interdisciplinary Network for Collaboration and Computing \\\hline
LPM & LSST Project Management (Document Handle) \\\hline
LSE & LSST Systems Engineering (Document Handle) \\\hline
LSST & Legacy Survey of Space and Time (formerly Large Synoptic Survey Telescope) \\\hline
NCSA & National Center for Supercomputing Applications \\\hline
NERSC & National Energy Research Scientific Computing Center \\\hline
NSF & National Science Foundation \\\hline
PanDA & Production ANd Distributed Analysis system \\\hline
Parsl & Parallel Scripting Library \url{http://parsl-project.org/} \\\hline
RAC & Resource Allocation Committee \\\hline
RDO & Rubin Directors Office \\\hline
RSP & Rubin Science Platform \\\hline
RTN & Rubin Technical Note \\\hline
SDSS & Sloan Digital Sky Survey \\\hline
SLAC & SLAC National Accelerator Laboratory \\\hline
TACC & Texas Advanced Computing Center \\\hline
USDF & United States Data Facility \\\hline
\end{longtable}
43 changes: 35 additions & 8 deletions proposal.tex
@@ -1,7 +1,7 @@
\section{Proposal} \label{sec:proposal}

Let us assume the resources available are fairly fixed in line with \secref{sec:resources}.
Hence we will need an arbitration committee \secref{sec:arbitration}
Hence we will need a resource allocation committee \secref{sec:arbitration} to arbitrate requests.

We promised some form of user batch which it seems likely will be needed at least initially as many users understand batch processing of images say. By batch here we should be clear we mean a BPS command line interface to something like PanDA. \secref{sec:bpsbatch}

Expand All @@ -10,19 +10,34 @@ \section{Proposal} \label{sec:proposal}

\subsection{Science Platform}\label{sec:rsp}
The RSP is now well established and is following the vision \citeds{LSE-319}.
Data Preview 0 has introduced tn early version of this to the community.
Data Preview 0 has introduced an early version of this to the community.

\citeds{DMTN-202} points 4 (\secref{sec:requirements}) on catalogs we can assume means a sort of Dask/Spark access to the Parquet files. The baseline answer for catalog queries was Qserv and but we so not have the "next to the database processing". The DAC team feel the parquet files provide a good mechanism for this and there is some effort in FY24 to implement it.{\textbf We should consider carefully what the minimum system we need here is to cover our requirements.}
\citeds{DMTN-202} point 4 (\secref{sec:requirements}) in respect of catalogs we now propose to be satisfied by some form of Dask/Spark access to the catalogs as spatially sharded Parquet files.
The previous baseline design for this was a layer on top of Qserv, but in practice we do not have this ``next to the database processing'' implemented, and the RSP and Data Access teams feel that, with the advance of data-science software, a Parquet-based solution is now a good solution.
There is some effort available in FY24 to prototype and implement this.
We shall consider carefully what the minimum system we need here is to cover our requirements.

We will not at this point promise extensive Dask/Spark like services but should work on that in the background with LINCC. I think we all agree this will be scientifically useful, but we need to finish construction as a priority.
We will not at this point promise extensive Dask/Spark like services.
The minimum needed to meet requirements will be done on construction and we shall work further on it in the background with LINCC.
We all agree this will be scientifically useful, but we need to finish construction as a priority and this is not a requirement. We will work with LINCC on it certainly and something will be available but we are not promising this and we are not accepting requirements on it.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the "this" that is not a requirement? Having a catalog-processing framework at all, or a fancy one?


\textbf{Do we agree to work with LINCC on DASK/Spark ? and promise the minimum batch system and next to the database processing as the construction deliverable}
The standard/default allocation for any data rights user will be RSP access.
Users with bulk needs will use BPS (\secref{sec:bpsbatch}) at a Data Facility.

\subsection{Butler Gen3}

\subsection{Butler Gen3} \label{sec:gen3}

Whether Batch or RSP a butler is available with provenance information which should cover DMS-REQ-0106 and DMS-REQ-0121.
If users do not use the Butler they will not have provenance.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requirement -0106 is about images, specifically, so that's out of the scope of any Dask-like processing.

But -0121 applies equally to user catalog processing and image processing, so a minimal "Here's Dask, here's a pile of Parquet files, have fun" solution won't meet this.

I don't think we yet have a specific proposal for how to interpose Butler and PipelineTask into Dask/Spark in such a way as to maintain provenance, but it doesn't seem out of the question. This would need some R&D; perhaps LINCC could help with this.


\subsection{BPS Batch }\label{sec:bpsbatch}

Our baseline is user batch based on Gen3 Task framework.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it should say "PipelineTask" - "Task" alone is too thin a layer to be meaningful in this context.

Users needing batch will need to go via the Resource Allocation Committee (\secref{sec:arbitration}) and
will be given SLAC accounts to run user Batch jobs at SLAC.
Those who do not wish to use the Rubin pipelines could be facilitated see \secref{sec:othercode}.


We set DP0.2 as an initial test of seeing how we could work with PanDA \citeds{RTN-013}
for DRP. Potentially it could also be used for Prompt Processing and user batch processing.
In fact we use the BPS front end to submit jobs and middleware which to keep BPS working with at least on other back end as well as PanDA.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this sentence ("In fact ...") be reworded? I am not sure what the message is. That we are designing the BPS system so that it's not too tightly coupled to PanDA?

Expand All @@ -37,9 +52,21 @@ \subsection{BPS Batch }\label{sec:bpsbatch}
This would also cover DMS-REQ-0119, DMS-REQ-0125, DMS-REQ-0128, DMS-REQ-0123, DMS-REQ-0127.


\subsection{Arbitration or Resource Allocation Committee}\label{sec:arbitration}
\subsubsection{Non Rubin code} \label{sec:othercode}
Users may wish to run arbitrary code on Rubin images.
It should be possible to provide a butler recipe to get an image or set of images to the users space and allow them to run any code which takes FITS images.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"butler recipe... and allow them" => "PipelineTask-based shim, using in the BPS system, for iterating over a defined set of image data, extracting the images to user space, and allowing the user"

Done in a container this could be done for a large volume of images - it would have to get past the resource allocation committee of course.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the Parquet shards for the catalogs were also treated as Butler datasets, the same mechanism would allow for batch processing of catalogs with arbitrary user code.

This would require custom work by the user and would not be a general facility.
Run in this mode little provenance would be kept. (See \secref{sec:gen3})
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Run in this mode, without using Butler for user outputs, little ..."


Some provenance could be garnered by ingesting the generated files which could at least give the execution graph of their creation.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The shim could be extended with basic support for ingesting output files via the Butler back into the user's personal space; this would provide some elementary provenance, including at least the execution graph of the files' creation."

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we have to require they use the datastore templates for file-naming conventions otherwise we won't know which file goes with which dataId.

If users wish only to write files they would have to go in their user space or potentially a VOSpace end point - the user would need to organize and track such files themselves.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"If users instead wish to write files entirely on their own, they would have to ... - and the user would ..."



\subsection{Resource Allocation Committee}\label{sec:arbitration}
As \secref{sec:resources} points out we will need an arbitration committee of some sort.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment here: "a Resource Allocation Committee"

It seems this should also favor individuals from under represented and under resourced groups though that is being proposed here for the first time.
womullan marked this conversation as resolved.
Show resolved Hide resolved
We note also proposals committing to releasing Level 3 data products that are made available to all data rights holders will also be allowed to be given a preference by the RAC.
The committee is called out in the operations plan \citedsp{RDO-018} Section 12.2 but we have as yet not created a charge for it.
This committee would at least be responsible for creating, implementing and updating policies on at least:

Expand All @@ -63,5 +90,5 @@ \subsection{Other catalogs}
LINCC may again help here by coordinating IDACs to provide neighbor tables/services for other catalogs.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this section, it's important to note that "externally provided catalogs" was here intended to mean "catalog data brought to the Level 3 systems by the user, and shouldn't be confused with "external catalogs", which in the community generally means "well-known publicly available catalogs" like Gaia or CatWISE.

Therefore it's not a problem that "getting a list has proved fairly inconclusive" - this wasn't meant to be defined in advance, but was part of what a user could submit an RAC request for space to do. A user could say, in 2026, e.g., "I have a list of 1 billion objects from SPHEREx and I want to request 500 GB of space to store that catalog within the RSP to facilitate matching to the Rubin catalogs on Qserv and/or in the Parquet environment -- and here's the science that will enable based on the published performance of that dataset." The RAC would then weigh that against other space requests.

Similarly, a user might have personally recomputed (offsite, say at TACC) improved photometric redshifts for 3B objects from the Rubin Object catalog, and want to store those "next to" - and joinable with - the Object table itself.

This doesn't invalidate your other points, but it's important context for understanding the original requirement.

One notion would be to have a the Object catalog at IDACs matched to their local holdings.
We could consider migrating some of those neighbor catalogs back to USDF Qserv.
Gaia will be provided as part of the processing - there is no requirement listing catalogs so from a verification perspective we can put this on IDACs
womullan marked this conversation as resolved.
Show resolved Hide resolved

\textbf{How do we answer this fairly open requirement ? Do we say we deliver Gaia matched for construction and will work on an IDAC/LINCC service ?}
2 changes: 1 addition & 1 deletion requirements.tex
Expand Up @@ -4,7 +4,7 @@ \section{DM requirements on user batch} \label{sec:requirements}
has a few requirements which require some sort of user driven processing.
Many of these pertain to {\em user generated data products}\footnote{Previously known as Level 3 data products.}.
In the era of pre-operations many of these user generated products will be created and may exist at IDACs.
The a broad summary of requirements pertaining to user batch and more broadly to the topic of user generated products and services is covered on confluence\footnote{Should this be in a DMTN or put here ?} \url{https://confluence.lsstcorp.org/display/DM/Level+3+Definition+and+Traceability}{Level 3 Definition and Traceability}.
The a broad summary of requirements pertaining to user batch and more broadly to the topic of user generated products and services is covered in \href{https://confluence.lsstcorp.org/display/DM/Level+3+Definition+and+Traceability}{Level 3 Definition and Traceability}i on confluence.

The requirements most pertinent to user batch from \citeds{LSE-61} are :

Expand Down
24 changes: 17 additions & 7 deletions resources.tex
Expand Up @@ -14,6 +14,8 @@ \subsection{Compute} \label{sec:compute}
User batch would therefore have about 1K cores depending on load.
This implies the need for a controlled sharing mechanism (\secref{sec:quotas}).

It would also be excellent to pursue a research project with an NSF facility (e.g. TACC) into what could be done with Rubin data at such a facility in terms of arbitrary compute. TACC have expressed interest in this.



\subsection{Storage}
Expand All @@ -38,38 +40,46 @@ \subsection{Quotas and allocation} \label{sec:quotas}
This however needs more work.


%{\bf In operations should we use all Google Cores for interactive batch Dask/Spark ? Send all PanDA to USDF ? But then we do not have 10\% there since we spent on Google.} - PROBALBY NOT FEASABLE
In operations we propose catalog processing with Dask/Spark goes to Google;
any processing (images or, less often, catalogs) done with BPS goes to USDF batch.

We will send all batch jobs to USDF. We have some capacity at USDF for this and potentially some spare cycles in the shared data facility.

\citeds{DMTN-135} table 40 allocates 2PB in year 1 growing to 9PB in year 10 for science user home space.
This is still driven by the original requirement to support 7500 users. Table 40 assumes 5K users in year 1
yielding a limit of 40GB per user. Of course usage will not be even so we could set the limit higher like 60GB
and monitor what happens. On SDSS we kept the quota low and accepted justified requests to get more - most people kept within the quota by keeping their user space. Its not obvious what a good number is here but perhaps we should start the RSP users on 10GB quota.
and monitor what happens. On SDSS and BaBar the quota was kept low and justified requests to get more were accepted - most people kept within the quota by keeping their user space. Its not obvious what a good number is here but perhaps we should start the RSP users on 10GB quota.

KT points out on NCSA "9\% (81 of 892) of NCSA home directories had more than 10 GB on 2022-02-07."
This would indicate starting allocation on RSP of 10GB may work for 90\% of users - we can then increase on request for some users.

Power users who would be some of that other 10\% may be more likely to seek batch production at SLAC in any case.


{\bf Should we start user space quota at 10GB ? is there a reason for more ? (or less?)}

It is not clear we have the technology in place to enforce disk quotas yet.

\subsubsection{Peak times}
There are going to be known events such as a Data Release which we know will put pressure on the system.
For these event we would want to scale back to basic quotas like 0.5 core per user and disabling DASK or even batch execution.
For these event we would want to scale back to basic quotas like 0.5 core per user and potentially disabling DASK.
We should also experiment with paying for the surge and see if subsequent lulls even out the bill.
The latter approach would allow us to maintain a good service level and would be a more equitable approach since it would
not penalize the users who have no other form of access.

\subsubsection{Unused home space}
Space on cloud means cost.
If a user is not using their space for long period it should be migrated to cheaper storage.
Along period could be a year but six months seems long enough.
Again we have no mechanism for this - Richard even suggested taking it to USDF but I wonder if cold storage on google is better.
Again we have no mechanism for this - Richard even suggested taking it to USDF but cold storage on google might work.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Google"


{\bf Should we have user home migration to get un touched home spaces moved off cloud?}


\subsection{Other sites}\label{sec:othersites}
SLAC have some potential cores available on site to give more batch possibilities.

Some science collaborations, most notably DESC, will have their own resources at some center (NERSC for DESC). In the DESC case there are good links between NERSC and SLAC making this easy to manage.

No NSF facility is currently planned to hold the data.
No NSF facility is currently planned to hold the data. TACC are interested to experiment with us.

These sites are true batch sites with Slurm workload management. Users would submit jobs with BPS
allowing it to figure out if the Parsl, PanDA for job submission on the back end.
Expand Down