-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpriorities.tex
120 lines (96 loc) · 5.69 KB
/
priorities.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
\section{Prioritized Recommendations}
\subsection{Cross-Experiment Effort}
This section presents priority recommendations that the working group
gives to the HEP-FCE with an understanding that they are of interest
to funding entities.
\begin{enumerate}
\item The goals of the HEP Software Foundation are
largely overlapping with HEP-FCE. The two groups can be mutually
beneficial. HSF is forming a general, grassroots organization while
HEP-FCE potentially can fund specifically targeted efforts. HSF can
be a source of requirements, working groups, review panels, project
proposals and expertise all of which HEP-FCE can beneficially
leverage to carry out its goals. It is recommended that HEP-FCE
continue to participate in HSF formation activities and look into
how the two groups might partner on specific actions.
\item Various detailed ``opportunities'' listed in the following
survey sections call out the need for further work to be carried out
in some detail by technical working groups. These are needed to
better understand the nature of a specific problem shared across
many experiments, formulate requirements for and in some cases
design and implement solutions. The HEP-FCE should organize such
working groups from suitable expertise from the HEP software community.
\item Packages or frameworks (or significant subsets) which have proven
popular (used by more than one experiment) and useful should be considered for
cross-experiment support, especially in terms of providing support for
easy adoptability (setup and install by other experiments, on other
O/S platforms) and documentation (detailed guides and non-experiment-specific manuals).
\end{enumerate}
\subsection{Effort by Experiments}
Throughout the following survey sections, a number of best practices
and pitfalls relevant to the development and use of software libraries
and tools by individual experiments were identified. First, some
generalities were identified:
\begin{enumerate}
\item New experiments should not underestimate the importance of
software to their success. It should be treated as a major
subsystem at least on par with other important aspects such as
detector design, DAQ/electronics, civil construction, etc.
\item Experiments should understand the pitfalls listed in
section~\ref{subsec:pitfalls}). New experiments should plan and
implement mechanisms to avoid them and existing experiments should
reflect on which ones may apply and develop ways to address them.
Likewise, the best practices listed in
section~\ref{subsec:bestpractices}) should be considered. New
experiments should attempt to follow them and if practical and
beneficial, existing experiments should seek to make the changes
needed to implement them.
\item New and existing experiments should join the effort to organize
and otherwise supply representative members to the HEP Software
Foundation.
\end{enumerate}
\noindent The remaining sections below contain surveys of select areas
of software libraries and tools in HEP. For each we list a summary of
aspects that make for success in the associated area.
\begin{itemize}
\item Aspects of successful Event Processing Software Frameworks include:
those with flexible (possibly hierarchical) notions of ``events'',
those that are easily adopable by new experiments, are well-documented,
have dynamically configuable (possibly scriptable) configuration
parameter sets and are modular and efficient (allow C++ like modules
for low level
operations combined with a scripting layer like python for flexible
higher level control).
\item Aspects of successful Software Development tools include:
those that follow licence-free availablity and free-software distribution models,
those that include code repositories, build systems that work on a variety of platforms
with a small number of clearly defined base element dependencies
(i.e. C compiler, compression library, specific version of python) and those with release
configuration systems with versioning that understand a variety of
platforms; those that support automatic continuous integration and
regression testing; those that have open documentation updating and
bug-reporting and tracking.
\item Aspects of successful Data Management tools include:
those that are inherently modular and avoid tight couplings to either
specific technologies or to other parts of the computing ecosystem, in
particular to the Workload Management System and the Metadata Catalogs;
those that, while being complex and originallly developed for large scale operations
at for example the LHC, may be simplified and downscaled for use by smaller experiments
with minimal manpower and technical expertise.
\item Aspects of successful Workflow and Workload Management tools include:
those that understand the distinction between and support flexible, efficient
interaction between workflow, workload, and data management aspects
of a system; those that make efficient use of resources (CPU, RAM-memory,
disk, network, tape) for processing in parallel; those that allow
granular, multi-level monitoring of status; those that handle error
cases effectively and inclusively; those that are properly scaled
to the size of the experiment.
\item Aspects of successful Geometry Information Management tools include:
those that follow or set widely used standards for representation of
geometric information; those that follow standards for visualization.
\item Aspects of successful Conditions Database tools include:
those that allow standardized, experiment-wide access to representative
or specific event conditions so that realistic simulations or statistics
can be generated by users without detailed knowledge of detectors or specific
event.
\end{itemize}