-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.tex
322 lines (284 loc) · 14.3 KB
/
main.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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
%%
%% This is a sample doctoral dissertation. It shows the appropriate
%% structure for your dissertation. It should handle most of the
%% strange requirements imposed by the Grad school; like the different
%% handling of titles of one/many appendices. It will automatically
%% handle the linespacing changes. The body default is double-spaced
%% (except when you use the singlespace or condensed options). The
%% default for quotations is single-space, and the default for tabularmultithreaded programs
%% environments is also single-space.
%%
%% This class adds the following commands and environments to the
%% report class, upon which it is based:
%% Commands
%% ------------
%% \degree{name}{abbrv} -- Sets the name and abbreviation for the degree.
%% These default to ``Doctor of Philosopy''
%% and ``Ph.D.'', respectively.
%% \copyrightyear{year} -- for the copyright page.
%% \bachelors{degree}{institution} -- for the abstract
%% \masters{degree}{institution} -- "
%% if you have other degrees you may use
%% \secondbachelors{degree}{institution}
%% \thirdbachelors{degree}{institution}
%% \secondmasters{degree}{institution}
%% \thirdmasters{degree}{institution}
%% \priordoctorate{degree}{institution}
%%
%% \committeechair{name} -- for the signature page
%% or, if you have two co-chairs:
%% \cochairs{first name}{second name}
%%
%% \firstreader{name} -- "
%% \secondreader{name} -- "
%% \thirdreader{name} -- (optional)
%% \fourthreader{name} -- "
%% \fifthreader{name} -- "
%% \sixthreader{name} -- "
%% \departmentchair{name} -- for the signature page
%% \departmentname{name} -- "
%%
%% \copyrightpage -- produces the copyright page
%% \signaturepage -- produces the signature page
%%
%% \frontmatter -- these are required in their various
%% \mainmatter -- appropriate locations
%% \backmatter --
%%
%% \unnumberedchapter[toc]{name} -- like \chapter, except that it
%% produces an unnumbered chapter;
%% alternatively, like \chapter*,
%% except that it lists the chapter
%% in the table of contents.
%%
%% New environments:
%% dedication -- for the dedication
%% abstract -- for the abstract
%%
%% The thesis documentclass is built on top of the report document class.
%% It accepts all of the options that the report class accepts, plus the
%% following:
%% doublespace -- the default, indicates double spacing as per U.Mass.
%% requirements. You will need this when you do your
%% final copy.
%% singlespace -- for earlier work, not acceptable to the Grad school
%% condensed -- for earlier work, not acceptable to the Grad school,
%% creates condensed versions of the frontmatter.
%% Condensed implies singlespace.
%% dissertation - the default, indicates that this document is a
%% dissertation.
%% proposal -- indicates that this document is a dissertation proposal,
%% rather than a dissertation. This will only change the
%% wording on the title and signature pages.
%% thesis -- indicates that this document is a Master's thesis
%% rather than a doctoral dissertation. This also changes
%% the default for \degree to Master of Science, M.S.
%% allowlisthypenation -- (the default), allows hyphenation of words in
%% the table of contents, the list of figures, and the list
%% of tables. I believe that this is acceptable to the
%% Graduate School.
%% nolisthyphenation -- disallows hyphenation of words in the table of
%% contents and the list of figures and tables. Use this
%% option if the Grad School doesn't like your hyphenation.
%% nicerdraft -- relaxes some of the Grad School's rules for working with
%% drafts -- has no effect when doublespace is in effect
%% nonicerdraft -- the default, leaves things in draft as they will be in
%% the final version
%% umthesis changes the default font size to 12pt, but you may specify 10pt or
%% 11pt in the options.
%%\documentclass[proposal]{umthesis} % for Ph.D. dissertation or proposal
\documentclass{umthesis} % for Ph.D. dissertation or proposal
%\documentclass{umthesis} % for Ph.D. dissertation or proposal
% \documentclass[thesis]{umthesis} % for Master's thesis
\usepackage{color}
\usepackage{listings}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{comment}
\usepackage{graphicx, subfigure}
\usepackage{url}
\PassOptionsToPackage{hyphens}{url}
\usepackage{pifont}% http://ctan.org/pkg/pifont
\usepackage{tabularx}
%\usepackage{hyperref}
%\lstset{ %
% language=C, % choose the language of the code
% basicstyle=\footnotesize, % the size of the fonts that are used for the code
%numbers=left, % where to put the line-numbers
%numberstyle=\footnotesize, % the size of the fonts that are used for the line-numbers
%stepnumber=1, % the step between two line-numbers. If it is 1 each line will be numbered
%numbersep=5pt, % how far the line-numbers are from the code
%backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color}
%showspaces=false, % show spaces adding particular underscores
%showstringspaces=false, % underline spaces within strings
%showtabs=false, % show tabs within strings adding particular underscores
%frame=single, % adds a frame around the code
%tabsize=2, % sets default tabsize to 2 spaces
%captionpos=b, % sets the caption-position to bottom
%breaklines=true, % sets automatic line breaking
%breakatwhitespace=false % sets if automatic breaks should only happen at whitespace
%escapeinside={\%*}{*)} % if you want to add a comment within your code
%}
%%
%% If you have enough figures or tables that you run out of space for their
%% numbers in the List of Tables or List of figures, you can use the following
%% command to adjust the space left for numbers. The default is shown:
%%
%% \setlength{\tablenumberwidth}{2.3em}
\newcommand{\dthreads}{{\scshape Dthreads}}
\newcommand{\Dthreads}{{\scshape Dthreads}}
\newcommand{\Grace}{{\scshape Grace}}
\newcommand{\grace}{{\scshape Grace}}
\newcommand{\Sheriff}{{\scshape Sheriff}}
\newcommand{\sheriff}{{\scshape Sheriff}}
\newcommand{\SheriffProtect}{\textsc{Sheriff-Protect}}
\newcommand{\sheriffProtect}{\textsc{Sheriff-Protect}}
\newcommand{\sheriffprotect}{\textsc{Sheriff-Protect}}
\newcommand{\SheriffDetect}{\textsc{Sheriff-Detect}}
\newcommand{\sheriffDetect}{\textsc{Sheriff-Detect}}
\newcommand{\sheriffdetect}{\textsc{Sheriff-Detect}}
\newcommand{\Predator}{\textsc{Predator}}
\newcommand{\predator}{\textsc{Predator}}
\newcommand{\DoubleTake}{\textsc{DoubleTake}}
\newcommand{\doubletake}{\textsc{DoubleTake}}
\newcommand{\pthreads}{\texttt{pthreads}}
\newcommand{\cmark}{\ding{52}} %51 or 52
\newcommand{\xmark}{\ding{53}}% 53, 54, 55, 56
\newcommand{\CC}[1]{{\large \textbf{\color{red}CC:} \emph{#1} \newline}}
\lstdefinestyle{tt}{basicstyle=\small\ttfamily,keywordstyle=\bfseries,language=C, numbers=left, firstline=1}
%numberblanklines=false
\lstdefinestyle{rm}{basicstyle=\ttfamily,keywordstyle=\slshape,language=[LaTeX]{TeX}}
\begin{document}
%%
%% You must fill in all of these appropriately
\title{Reliable and Efficient Multithreading}
\author{Tongping Liu}
\date{May 2014} % The date you'll actually graduate -- must be
% February, May, or September
\copyrightyear{2014}
\bachelors{B.S.}{Harbin Institute of Technology}
\masters{M.E.}{Huazhong University of Science and Technology}
\secondmasters{M.S.}{UNIVERSITY OF MASSACHUSETTS AMHERST}
\committeechair{Emery D. Berger}
\firstreader{Scott F. H. Kaplan}
\secondreader{Yuriy Brun}
\thirdreader{Israel Koren} % Optional
%\fifthreader{} % Optional
%\sixthreader{} % Optional
\departmentchair{Lori A. Clarke}
\departmentname{School of Computer Science}
%% If your degree is something other than a Ph.D. (for a dissertation), or
%% an M.S. (for a thesis), you will need to uncomment the appropriate
%% following line:
%%
%% \degree{Doctor of Education}{Ed.D.}
%% \degree{Doctor of Philosophy}{Ph.D.}
%%
%% \degree{Master of Arts}{M.A.}
%% \degree{Master of Arts in Teaching}{M.A.T.}
%% \degree{Master of Business Administration}{M.B.A.}
%% \degree{Master of Education}{M.Ed.}
%% \degree{Master of Fine Arts}{M.F.A.}
%% \degree{Master of Landscape Architecture}{M.L.A.}
%% \degree{Master of Music}{M.M.}
%% \degree{Master of Public Administration}{M.P.A.}
%%\degree{Master of Public Health}{M.P.H.}
%% \degree{Master of Regional Planning}{M.R.P.}
%% \degree{Master of Science}{M.S.}
%% \degree{Master of Science in Accounting}{M.S. Acctg.}
%% \degree{Master of Science in Chemical Engineering}{M.S. Ch.E.}
%% \degree{Master of Science in Civil Engineering}{M.S.C.E.}
%% \degree{Master of Science in Electrical and Computer Engineering}{M.S.E.C.E.}
%% \degree{Master of Science in Engineering Management}{M.S. Eng. Mgt.}
%% \degree{Master of Science in Environmental Engineering}{M.S. Env. E.}
%% \degree{Master of Science in Industrial Engineering and Operations Research}{M.S.I.E.O.R.}
%% \degree{Master of Science in Manufacturing Engineering}{M.S. Mfg. Eng.}
%% \degree{Master of Science in Mechanical Engineering}{M.S.M.E.}
%%
%% \degree{Professional Master of Business Administration}{P.M.B.A.}
%%
%% These lines produce the title, copyright, and signature pages.
%% They are Mandatory; except that you could leave out the copyright page
%% if you were preparing an M.S. thesis instead of a PhD dissertation.
\frontmatter
\maketitle
\copyrightpage %% not required for an M.S. thesis
\signaturepage
%%
%% Dedication is optional -- but this is how you create it
%\begin{dedication} % Dedication page
% \begin{center}
% \emph{ XXXXXX }
% \end{center}
%\end{dedication}
%%
%% Epigraph goes here...(aka frontispiece)
%% \chapter{Epigraph}?????
%%
%% Acknowledgements are optional...yeah, right.
\chapter{Acknowledgments} % Acknowledgements page
% Thanks to all those fine shepherds. Not to mention all the great
% border collies and suchlike fine animals.
%%
%% Abstract is MANDATORY. -- Except for MS theses
\input{acknowledgements}
\begin{abstract} % Abstract
The advent of multicore architecture has increased the demand for multithreaded programs. It is notoriously far more challenging to write parallel programs correctly and efficiently than sequential ones because of the wide range of concurrency errors and performance problems.
In this thesis, I developed a series of runtime systems and tools to combat concurrency errors and performance problems of multithreaded programs.
The first system, \dthreads{}, automatically ensures determinism for unmodified C/C++ applications using the \pthreads{} library without requiring programmer intervention and hardware support. \dthreads{} greatly simplifies the understanding and debugging of multithreaded programs. \dthreads{} often matches or even exceeds the performance of standard thread libraries, making deterministic multithreading a practical alternative for the first time.
The second system attacks one notorious performance problem of multithreaded programs: false sharing. We provide the first accurate and precise detection tool, \sheriffdetect{}, which can pinpoint the name of global variables or the allocation context of heap objects that involve in false sharing problems, without false positives. However, rewriting a program to fix false sharing can be infeasible when source code is unavailable, or undesirable when padding objects can increase excessive memory consumption or further worsen runtime performance. To resolve this problem, we provide a runtime system, \SheriffProtect{}, to automatically boost the performance of programs with false sharing problems.
The third system, \predator{}, improves the effectiveness of false sharing detection. It can detect one more type of false sharing: {\it read-write} false sharing. Also, it can even detect false sharing problems without occurrences, thus overcomes a shortcoming of all existing tools: they can only detect those observed false sharing problems.
%\Predator{} is the first tool to uncover false sharing problems of real applications.
\end{abstract}
%%
%% Preface goes here...would be just like Acknowledgements -- optional
%% \chapter{Preface}
%% ...
%%
%% Table of contents is mandatory, lists of tables and figures are
%% mandatory if you have any tables or figures; must be in this order.
\tableofcontents % Table of contents
%\listoftables % List of Tables
\listoffigures % List of Figures
%%
%% We don't handle List of Abbreviations
%% We don't handle Glossary
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Time for the body of the dissertation
\mainmatter %% <-- This line is mandatory
%%
%% If you want an introduction, which is not a numbered chapter, insert
%% the following two lines. This is OPTIONAL:
\unnumberedchapter{Introduction}
\input{intro}
\chapter{Problems of multithreaded programs}
\input{problems}
%\chapter{\DoubleTake{}: Evidence-Based Dynamic Analysis}
%\input {doubletake/doubletakemain}
\chapter{Processes-As-Threads Framework}
\input{framework}
\chapter{\dthreads{}:Efficient Deterministic Multithreading}
\input {dthreadsmain}
\chapter{Precise Detection and Automatic Mitigation of False Sharing}
\input {sheriffmain}
\chapter{\Predator{}: Predictive False Sharing Detection}
\input {predatormain}
\chapter{Related Work}
\input{relatedwork}
\chapter{Conclusions and Future Work}
\input{conclusion}
%%
%% Beginning of back matter
\backmatter %% <--- mandatory
%%
%% We don't support endnotes
%%
%% A bibliography is required.
\bibliographystyle{umthesis}
\bibliography{refs}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: