forked from pelmer/hsc2014
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhsc2014.tex
202 lines (169 loc) · 9.37 KB
/
hsc2014.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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
\documentclass[12pt,letterpaper,fleqn]{article}
\usepackage{graphicx}
\usepackage{lineno}
\usepackage{hyperref}
\usepackage{subfigure}
\usepackage{cite}
\usepackage{xcolor,colortbl}
\usepackage{wrapfig}
\usepackage{enumitem} %%% uncommenting this line and associated
%% options only saves about 1/4 page
% enumitem options
%\setlist{nosep}
%\setitemize{wide}
%\setlist[itemize]{leftmargin=*}
%\setlist[enumerate]{leftmargin=*}
\definecolor{Gray}{gray}{0.85}
\textwidth 6.65 in
\textheight 9.0 in
\topmargin 0.5 in
\oddsidemargin 0.0 in
\evensidemargin 0.0 in
\headheight = -1.0 in
\author{Lothar Bauerdick, Paolo Calafiura, Peter Elmer, Torre Wenaus, Liz Sexton, \\
Panagiotis Spentzouris, Avi Yagil}
\title{ HEP Software Consortium}
\begin{document}
\maketitle
\linenumbers
\section{HEP Software Challenges}
\label{sec:challenges}
HEP computing is facing many challenges ahead, including the High
Luminosity LHC program in Europe, the Intensity Frontier (IF) program
in the US and the evolution of computing hardware technology. In
this document we describe a proposal for an HEP Software Consortium
(HSC) whose aim is to foster the development of a high quality,
innovative, efficient and sustainable software ecosystem of general
utility for the HEP community.
Significant resources are required to maintain and further develop
the scientific computing infrastructure needed by the current and
future HEP programs. Data analysis campaigns last for many years
(decades!) and involve hundreds of developers and experimenters.
The data volumes and processing needs for the LHC continue to
increase while the many IF
experiments will be in various phases of design and operations in
the next decade. In addition, the evolution of the technical
landscape calls for major software re-engineering. Because the
overall HEP funding has been declining in the past few years, it
will be difficult to sustain the necessary effort without increasing
the efficiency of our software development model. Thus, it is
desirable to evolve this model to take advantage of commonality in
needs of experiments and leverage expertise across all programs and
projects.
\section{Software Consortium}
\label{sec:consortium}
In order to facilitate this evolution of our software development
model, we propose to form a consortium of HEP software projects
whose purpose will be to establish a framework for collaboration
on specific software aspects, an {\it ecosystem} of software activities
in which new ideas could be formed and communicated, and technology
transitions could be facilitated. This HEP Software Consortium
(HSC) would aim for identifying areas that benefit from collaboration
between individual projects and for facilitating the sharing/pooling
of expertise and resources to solve common problems. It will
organize forums to discuss best practice and software development
issues and propose better software engineering solutions. Eventually,
the HSC could evolve to also incorporate an HSC centric project.
Because many of our tools have broader applicability for science
outside HEP, the existence of such a project could help generate
new funding opportunities outside our traditional funding “sandbox”
(funding agencies with narrow HEP focus) by increasing the visibility
and appeal of our scientific software activities.
There is a plethora of mature and successful HEP software projects,
each with different models of organization, established processes,
programs, and sponsors. The HSC will provide an effective mechanism
for these projects to connect and collaborate, while maintaining
their separate and independent entities. We envision the HSC as a
partnership of projects, which explores the common needs and interests
of the participants, identifies community goals and deliverables,
and facilitates community contributions. Consortium participants
will come initially from HEP scientific software projects (e.g.
Root, Geant4, GENIE, xrootd, etc), HEP experiments, and university and
laboratory scientific software and computer science groups. In the
future, if the HSC enables and fosters outreach to other communities
beyond HEP, participation could be expanded to similar groups from
non-HEP domains.
The Consortium will involve all partners in the design, development
and possibly deployment process to ensure that the HSC will function
and evolve consistently while meeting the needs of the individual
partners. The Consortium will sponsor activities (workshops,
meetings, discussion forums) to facilitate the development of
software engineering standards and software architecture guidelines
by identifying common needs and encouraging common solutions. The
participating institutions and partner projects will contribute to
the Consortium by providing input and expertise in defining common
goals and developing such principles and guidelines. In addition,
they will contribute to the HSC software infrastructure by developing
and deploying software within the common development and testing
guidelines and following the HSC software architecture principles.
This will include adapting existing software tools to the HSC
standards, when possible. The partner projects will maintain their
independent organization frameworks and have ownership of the
software they are developing and deploying utilizing the common
standards. The HSC will publish the code that complies with the
standards and organize peer-reviews for the software that is developed
under its process and guidelines. More specifically, the scope of
the HSC work will be to
\begin{itemize}
\item provide technical expertise in architecture and design issues,
\item propose standards for component interfaces and layout, to
enable independent development and easy component integration,
\item facilitate the development of non-domain specific components
(geometry representation, data representation, …) that can be used
by many projects,
\item develop standards and guidelines for testing releasing and
documenting software,
\item propose solutions for distributed collaborative environment
and common infrastructure such as build tools, testing and validation
suites, and
\item publish a list of recommended software products that follow HSC
architectural and engineering recommendations.
\end{itemize}
In order for this program of work to be successful, the Consortium
will adopt an “open-source” software model and rely on agile
development methods. The organization framework of the Consortium
will include Technical Domain Forums each with responsibility in a
technical domain such as simulation, analytics, frameworks, and
crosscutting R\&D activities (the concurrency forum is a good example).
The Forums will facilitate the organization of workshops and meetings,
document and distribute the findings (wikis, blogs, etc).
\section{Governance}
\label{sec:governance}
Advisory Board: consists of representatives from the user community
(HEP experiments, non-HEP in future) and projects, and software
industry experts. The role of the Advisory Board is to provide feedback
and recommendations on scientific and technical priorities and needs. The membership of the
Board is solicited by the Consortium Council.
Software Engineering Board: consistes of software experts with expertise covering
all project domain areas. The participating experiments and partner
projects contribute the members of this board. The members of the Board elect a fixed term chair to moderate discussions and foster concensus. The Board provides expertise
and advise on software architecture and engineering issues, organizes and contributes to
peer-reviews, discusses and proposes best practices and provides guidelines.
The members of the board play a leading role in the activities of
the Technical Domain Forums by organizing and chairing the Forum discussions and meetings, and discussing the outcome
of the Forum activities at the Board meetings. Essentially, the activities of the Board provide the "ecosystem" functionality of the Consortium.
Technical Domain Forums: provide coordination and facilitate
communication between the participating projects and the consortium.
Organize workshops; maintain wikis, blogs, etc.
Consortium Council: consists of representatives of participating
institutions, projects, and experiments; the stakeholders board. The role of the council is to enable the work of the Software Engineering Board. The Council holds infrequent meetings (at least once a year) to
identify common areas of interest and discuss common goals and overall
direction based on the input from the Advisory Board and the results of the activities of the Software Engineering Board.
\section{Summary}
A HEP Software Consortium will provide the means to leverage and
coordinate HEP ongoing software activities and facilitate the creation of an {\it ecosystem} of
software acticities. The proposed HSC will:
\begin{itemize}
\item provide the means to recognize and encourage the common aspects
of successful projects, facilitate collaboration between partner
projects, and facilitate adoption of successful software engineering
practices,
\item provide software architecture assistance and expertise,
\item help coordinate exploration of new technologies and provide expertise in their implementation,
\item and eventually enable contact with other scientific fields,
providing access to either resources or software tools and expertise.
\end{itemize}
\newpage
%\bibliographystyle{unsrt}
%\bibliography{hsc2014}
\end{document}