1 | % -------------------------------------------------- |
---|
2 | % Cforall |
---|
3 | @misc{cfa:frontpage, |
---|
4 | howpublished = {\href{https://cforall.uwaterloo.ca}{https://\-cforall.uwaterloo.ca}} |
---|
5 | } |
---|
6 | @article{cfa:typesystem, |
---|
7 | author = {Aaron Moss and Robert Schluntz and Peter A. Buhr}, |
---|
8 | title = {{\CFA} : Adding modern programming language features to {C}}, |
---|
9 | journal = {Softw. Pract. Exp.}, |
---|
10 | volume = {48}, |
---|
11 | number = {12}, |
---|
12 | pages = {2111--2146}, |
---|
13 | year = {2018}, |
---|
14 | url = {https://doi.org/10.1002/spe.2624}, |
---|
15 | doi = {10.1002/spe.2624}, |
---|
16 | timestamp = {Thu, 09 Apr 2020 17:14:14 +0200}, |
---|
17 | biburl = {https://dblp.org/rec/journals/spe/MossSB18.bib}, |
---|
18 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
19 | } |
---|
20 | |
---|
21 | |
---|
22 | |
---|
23 | % -------------------------------------------------- |
---|
24 | % old survey mostly about job scheduling |
---|
25 | % talks about the literature mostly centering on upfront/static scheduling with task graphs as inputs |
---|
26 | % already mentions multi-core |
---|
27 | @article{DBLP:journals/csur/Gonzalez77, |
---|
28 | author = {Mario J. Gonzalez Jr.}, |
---|
29 | title = {Deterministic Processor Scheduling}, |
---|
30 | journal = {{ACM} Comput. Surv.}, |
---|
31 | volume = {9}, |
---|
32 | number = {3}, |
---|
33 | pages = {173--204}, |
---|
34 | year = {1977}, |
---|
35 | url = {https://doi.org/10.1145/356698.356700}, |
---|
36 | doi = {10.1145/356698.356700}, |
---|
37 | timestamp = {Tue, 06 Nov 2018 12:50:48 +0100}, |
---|
38 | biburl = {https://dblp.org/rec/journals/csur/Gonzalez77.bib}, |
---|
39 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
40 | } |
---|
41 | |
---|
42 | % very short survey, highlights more interseting surveys as : |
---|
43 | % Casavant and Kuhl [1988], Chapin [1993], Shirazi et al. [1995], and Singhal and Shivaratri [1994] |
---|
44 | % still seems to mention static or partially static scheduling as a dominating trend |
---|
45 | @article{DBLP:journals/csur/Chapin96, |
---|
46 | author = {Steve J. Chapin}, |
---|
47 | title = {Distributed and Multiprocessor Scheduling}, |
---|
48 | journal = {{ACM} Comput. Surv.}, |
---|
49 | volume = {28}, |
---|
50 | number = {1}, |
---|
51 | pages = {233--235}, |
---|
52 | year = {1996}, |
---|
53 | url = {https://doi.org/10.1145/234313.234410}, |
---|
54 | doi = {10.1145/234313.234410}, |
---|
55 | timestamp = {Tue, 06 Nov 2018 12:50:49 +0100}, |
---|
56 | biburl = {https://dblp.org/rec/journals/csur/Chapin96.bib}, |
---|
57 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
58 | } |
---|
59 | |
---|
60 | % more comprehensive survey that discusses many algorithms |
---|
61 | % still exclusively static scheduling |
---|
62 | @article{DBLP:journals/csur/KwokA99, |
---|
63 | author = {Yu{-}Kwong Kwok and Ishfaq Ahmad}, |
---|
64 | title = {Static scheduling algorithms for allocating directed task graphs to multiprocessors}, |
---|
65 | journal = {{ACM} Comput. Surv.}, |
---|
66 | volume = {31}, |
---|
67 | number = {4}, |
---|
68 | pages = {406--471}, |
---|
69 | year = {1999}, |
---|
70 | url = {https://doi.org/10.1145/344588.344618}, |
---|
71 | doi = {10.1145/344588.344618}, |
---|
72 | timestamp = {Fri, 30 Nov 2018 12:48:46 +0100}, |
---|
73 | biburl = {https://dblp.org/rec/journals/csur/KwokA99.bib}, |
---|
74 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
75 | } |
---|
76 | |
---|
77 | % recent survey on kernel-thread scheduling |
---|
78 | % specifically focusing on schedulers that try to optimize to |
---|
79 | % reduce contention or reduce cache conflicts or improve some other ressource sharing metric |
---|
80 | @article{DBLP:journals/csur/ZhuravlevSBFP12, |
---|
81 | author = {Sergey Zhuravlev and Juan Carlos Saez and Sergey Blagodurov and Alexandra Fedorova and Manuel Prieto}, |
---|
82 | title = {Survey of scheduling techniques for addressing shared resources in multicore processors}, |
---|
83 | journal = {{ACM} Comput. Surv.}, |
---|
84 | volume = {45}, |
---|
85 | number = {1}, |
---|
86 | pages = {4:1--4:28}, |
---|
87 | year = {2012}, |
---|
88 | url = {https://doi.org/10.1145/2379776.2379780}, |
---|
89 | doi = {10.1145/2379776.2379780}, |
---|
90 | timestamp = {Tue, 06 Nov 2018 12:50:49 +0100}, |
---|
91 | biburl = {https://dblp.org/rec/journals/csur/ZhuravlevSBFP12.bib}, |
---|
92 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
93 | } |
---|
94 | |
---|
95 | % great survey on work-stealing |
---|
96 | % highlights many of the recent work both theoretical and not |
---|
97 | @article{DBLP:journals/ijpp/YangH18, |
---|
98 | author = {Jixiang Yang and Qingbi He}, |
---|
99 | title = {Scheduling Parallel Computations by Work Stealing: {A} Survey}, |
---|
100 | journal = {Int. J. Parallel Program.}, |
---|
101 | volume = {46}, |
---|
102 | number = {2}, |
---|
103 | pages = {173--197}, |
---|
104 | year = {2018}, |
---|
105 | url = {https://doi.org/10.1007/s10766-016-0484-8}, |
---|
106 | doi = {10.1007/s10766-016-0484-8}, |
---|
107 | timestamp = {Wed, 01 Apr 2020 08:50:06 +0200}, |
---|
108 | biburl = {https://dblp.org/rec/journals/ijpp/YangH18.bib}, |
---|
109 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
110 | } |
---|
111 | |
---|
112 | % -------------------------------------------------- |
---|
113 | % introduction of work stealing |
---|
114 | @inproceedings{DBLP:conf/fpca/BurtonS81, |
---|
115 | author = {F. Warren Burton and M. Ronan Sleep}, |
---|
116 | editor = {Arvind and Jack B. Dennis}, |
---|
117 | title = {Executing functional programs on a virtual tree of processors}, |
---|
118 | booktitle = {Proceedings of the 1981 conference on Functional programming languages and computer architecture, {FPCA} 1981, Wentworth, New Hampshire, USA, October 1981}, |
---|
119 | pages = {187--194}, |
---|
120 | publisher = {{ACM}}, |
---|
121 | year = {1981}, |
---|
122 | url = {https://doi.org/10.1145/800223.806778}, |
---|
123 | doi = {10.1145/800223.806778}, |
---|
124 | timestamp = {Tue, 06 Nov 2018 11:07:48 +0100}, |
---|
125 | biburl = {https://dblp.org/rec/conf/fpca/BurtonS81.bib}, |
---|
126 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
127 | } |
---|
128 | |
---|
129 | % introduction of randomized work stealing |
---|
130 | @inproceedings{DBLP:conf/focs/Blumofe94, |
---|
131 | author = {Robert D. Blumofe}, |
---|
132 | title = {Scheduling Multithreaded Computations by Work Stealing}, |
---|
133 | booktitle = {35th Annual Symposium on Foundations of Computer Science, Santa Fe, New Mexico, USA, 20-22 November 1994}, |
---|
134 | pages = {356--368}, |
---|
135 | publisher = {{IEEE} Computer Society}, |
---|
136 | year = {1994}, |
---|
137 | url = {https://doi.org/10.1109/SFCS.1994.365680}, |
---|
138 | doi = {10.1109/SFCS.1994.365680}, |
---|
139 | timestamp = {Wed, 16 Oct 2019 14:14:54 +0200}, |
---|
140 | biburl = {https://dblp.org/rec/conf/focs/Blumofe94.bib}, |
---|
141 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
142 | } |
---|
143 | |
---|
144 | % migration cost |
---|
145 | @inproceedings{DBLP:conf/sigmetrics/SquillanteN91, |
---|
146 | author = {Mark S. Squillante and Randolph D. Nelson}, |
---|
147 | editor = {Tom W. Keller}, |
---|
148 | title = {Analysis of Task Migration in Shared-Memory Multiprocessor Scheduling}, |
---|
149 | booktitle = {Proceedings of the 1991 {ACM} {SIGMETRICS} conference on Measurement and modeling of computer systems, San Diego, California, USA, May 21-24, 1991}, |
---|
150 | pages = {143--155}, |
---|
151 | publisher = {{ACM}}, |
---|
152 | year = {1991}, |
---|
153 | url = {https://doi.org/10.1145/107971.107987}, |
---|
154 | doi = {10.1145/107971.107987}, |
---|
155 | timestamp = {Sat, 07 Sep 2019 11:59:22 +0200}, |
---|
156 | biburl = {https://dblp.org/rec/conf/sigmetrics/SquillanteN91.bib}, |
---|
157 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
158 | } |
---|
159 | |
---|
160 | @article{DBLP:journals/pe/EagerLZ86, |
---|
161 | author = {Derek L. Eager and Edward D. Lazowska and John Zahorjan}, |
---|
162 | title = {A Comparison of Receiver-Initiated and Sender-Initiated Adaptive Load Sharing}, |
---|
163 | journal = {Perform. Evaluation}, |
---|
164 | volume = {6}, |
---|
165 | number = {1}, |
---|
166 | pages = {53--68}, |
---|
167 | year = {1986}, |
---|
168 | url = {https://doi.org/10.1016/0166-5316(86)90008-8}, |
---|
169 | doi = {10.1016/0166-5316(86)90008-8}, |
---|
170 | timestamp = {Sat, 22 Feb 2020 19:26:16 +0100}, |
---|
171 | biburl = {https://dblp.org/rec/journals/pe/EagerLZ86.bib}, |
---|
172 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
173 | } |
---|
174 | |
---|
175 | % affinity for work-stealing |
---|
176 | @article{DBLP:journals/tpds/SquillanteL93, |
---|
177 | author = {Mark S. Squillante and Edward D. Lazowska}, |
---|
178 | title = {Using Processor-Cache Affinity Information in Shared-Memory Multiprocessor Scheduling}, |
---|
179 | journal = {{IEEE} Trans. Parallel Distributed Syst.}, |
---|
180 | volume = {4}, |
---|
181 | number = {2}, |
---|
182 | pages = {131--143}, |
---|
183 | year = {1993}, |
---|
184 | url = {https://doi.org/10.1109/71.207589}, |
---|
185 | doi = {10.1109/71.207589}, |
---|
186 | timestamp = {Fri, 02 Oct 2020 14:40:30 +0200}, |
---|
187 | biburl = {https://dblp.org/rec/journals/tpds/SquillanteL93.bib}, |
---|
188 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
189 | } |
---|
190 | |
---|
191 | systems with affinity scheduling |
---|
192 | @inproceedings{squillante2001threshold, |
---|
193 | title={Threshold-based priority policies for parallel-server systems with affinity scheduling}, |
---|
194 | author={Squillante, Mark S and Xia, Cathy H and Yao, David D and Zhang, Li}, |
---|
195 | booktitle={Proceedings of the 2001 American Control Conference.(Cat. No. 01CH37148)}, |
---|
196 | volume={4}, |
---|
197 | pages={2992--2999}, |
---|
198 | year={2001}, |
---|
199 | organization={IEEE} |
---|
200 | } |
---|
201 | |
---|
202 | @article{DBLP:journals/mst/AcarBB02, |
---|
203 | author = {Umut A. Acar and Guy E. Blelloch and Robert D. Blumofe}, |
---|
204 | title = {The Data Locality of Work Stealing}, |
---|
205 | journal = {Theory Comput. Syst.}, |
---|
206 | volume = {35}, |
---|
207 | number = {3}, |
---|
208 | pages = {321--347}, |
---|
209 | year = {2002}, |
---|
210 | url = {https://doi.org/10.1007/s00224-002-1057-3}, |
---|
211 | doi = {10.1007/s00224-002-1057-3}, |
---|
212 | timestamp = {Sun, 28 May 2017 13:18:25 +0200}, |
---|
213 | biburl = {https://dblp.org/rec/journals/mst/AcarBB02.bib}, |
---|
214 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
215 | } |
---|
216 | |
---|
217 | @article{DBLP:journals/tcs/NarangS11, |
---|
218 | author = {Ankur Narang and Rudrapatna K. Shyamasundar}, |
---|
219 | title = {Performance driven distributed scheduling of parallel hybrid computations}, |
---|
220 | journal = {Theor. Comput. Sci.}, |
---|
221 | volume = {412}, |
---|
222 | number = {32}, |
---|
223 | pages = {4212--4225}, |
---|
224 | year = {2011}, |
---|
225 | url = {https://doi.org/10.1016/j.tcs.2010.11.044}, |
---|
226 | doi = {10.1016/j.tcs.2010.11.044}, |
---|
227 | timestamp = {Sun, 28 May 2017 13:20:06 +0200}, |
---|
228 | biburl = {https://dblp.org/rec/journals/tcs/NarangS11.bib}, |
---|
229 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
230 | } |
---|
231 | |
---|
232 | Optimization via reflection on work stealing in TBB |
---|
233 | @inproceedings{DBLP:conf/ipps/RobisonVK08, |
---|
234 | author = {Arch Robison and Michael Voss and Alexey Kukanov}, |
---|
235 | title = {Optimization via Reflection on Work Stealing in {TBB}}, |
---|
236 | booktitle = {22nd {IEEE} International Symposium on Parallel and Distributed Processing, {IPDPS} 2008, Miami, Florida USA, April 14-18, 2008}, |
---|
237 | pages = {1--8}, |
---|
238 | publisher = {{IEEE}}, |
---|
239 | year = {2008}, |
---|
240 | url = {https://doi.org/10.1109/IPDPS.2008.4536188}, |
---|
241 | doi = {10.1109/IPDPS.2008.4536188}, |
---|
242 | timestamp = {Wed, 16 Oct 2019 14:14:51 +0200}, |
---|
243 | biburl = {https://dblp.org/rec/conf/ipps/RobisonVK08.bib}, |
---|
244 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
245 | } |
---|
246 | |
---|
247 | @article{DBLP:journals/ipl/SuksompongLS16, |
---|
248 | author = {Warut Suksompong and Charles E. Leiserson and Tao B. Schardl}, |
---|
249 | title = {On the efficiency of localized work stealing}, |
---|
250 | journal = {Inf. Process. Lett.}, |
---|
251 | volume = {116}, |
---|
252 | number = {2}, |
---|
253 | pages = {100--106}, |
---|
254 | year = {2016}, |
---|
255 | url = {https://doi.org/10.1016/j.ipl.2015.10.002}, |
---|
256 | doi = {10.1016/j.ipl.2015.10.002}, |
---|
257 | timestamp = {Fri, 26 May 2017 22:54:40 +0200}, |
---|
258 | biburl = {https://dblp.org/rec/journals/ipl/SuksompongLS16.bib}, |
---|
259 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
260 | } |
---|
261 | |
---|
262 | %theory |
---|
263 | @article{DBLP:journals/jpdc/MirchandaneyTS90, |
---|
264 | author = {Ravi Mirchandaney and Donald F. Towsley and John A. Stankovic}, |
---|
265 | title = {Adaptive Load Sharing in Heterogeneous Distributed Systems}, |
---|
266 | journal = {J. Parallel Distributed Comput.}, |
---|
267 | volume = {9}, |
---|
268 | number = {4}, |
---|
269 | pages = {331--346}, |
---|
270 | year = {1990}, |
---|
271 | url = {https://doi.org/10.1016/0743-7315(90)90118-9}, |
---|
272 | doi = {10.1016/0743-7315(90)90118-9}, |
---|
273 | timestamp = {Sat, 22 Feb 2020 19:36:31 +0100}, |
---|
274 | biburl = {https://dblp.org/rec/journals/jpdc/MirchandaneyTS90.bib}, |
---|
275 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
276 | } |
---|
277 | |
---|
278 | @article{DBLP:journals/mst/BenderR02, |
---|
279 | author = {Michael A. Bender and Michael O. Rabin}, |
---|
280 | title = {Online Scheduling of Parallel Programs on Heterogeneous Systems with Applications to Cilk}, |
---|
281 | journal = {Theory Comput. Syst.}, |
---|
282 | volume = {35}, |
---|
283 | number = {3}, |
---|
284 | pages = {289--304}, |
---|
285 | year = {2002}, |
---|
286 | url = {https://doi.org/10.1007/s00224-002-1055-5}, |
---|
287 | doi = {10.1007/s00224-002-1055-5}, |
---|
288 | timestamp = {Sun, 28 May 2017 13:18:24 +0200}, |
---|
289 | biburl = {https://dblp.org/rec/journals/mst/BenderR02.bib}, |
---|
290 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
291 | } |
---|
292 | |
---|
293 | @inproceedings{DBLP:conf/sigmetrics/GastG10, |
---|
294 | author = {Nicolas Gast and Bruno Gaujal}, |
---|
295 | editor = {Vishal Misra and Paul Barford and Mark S. Squillante}, |
---|
296 | title = {A mean field model of work stealing in large-scale systems}, |
---|
297 | booktitle = {{SIGMETRICS} 2010, Proceedings of the 2010 {ACM} {SIGMETRICS} International Conference on Measurement and Modeling of Computer Systems, New York, New York, USA, 14-18 June 2010}, |
---|
298 | pages = {13--24}, |
---|
299 | publisher = {{ACM}}, |
---|
300 | year = {2010}, |
---|
301 | url = {https://doi.org/10.1145/1811039.1811042}, |
---|
302 | doi = {10.1145/1811039.1811042}, |
---|
303 | timestamp = {Tue, 06 Nov 2018 11:07:18 +0100}, |
---|
304 | biburl = {https://dblp.org/rec/conf/sigmetrics/GastG10.bib}, |
---|
305 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
306 | } |
---|
307 | |
---|
308 | @article{DBLP:journals/jacm/BlellochGM99, |
---|
309 | author = {Guy E. Blelloch and Phillip B. Gibbons and Yossi Matias}, |
---|
310 | title = {Provably Efficient Scheduling for Languages with Fine-Grained Parallelism}, |
---|
311 | journal = {J. {ACM}}, |
---|
312 | volume = {46}, |
---|
313 | number = {2}, |
---|
314 | pages = {281--321}, |
---|
315 | year = {1999}, |
---|
316 | url = {https://doi.org/10.1145/301970.301974}, |
---|
317 | doi = {10.1145/301970.301974}, |
---|
318 | timestamp = {Tue, 06 Nov 2018 12:51:45 +0100}, |
---|
319 | biburl = {https://dblp.org/rec/journals/jacm/BlellochGM99.bib}, |
---|
320 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
321 | } |
---|
322 | |
---|
323 | @article{DBLP:journals/siamcomp/BerenbrinkFG03, |
---|
324 | author = {Petra Berenbrink and Tom Friedetzky and Leslie Ann Goldberg}, |
---|
325 | title = {The Natural Work-Stealing Algorithm is Stable}, |
---|
326 | journal = {{SIAM} J. Comput.}, |
---|
327 | volume = {32}, |
---|
328 | number = {5}, |
---|
329 | pages = {1260--1279}, |
---|
330 | year = {2003}, |
---|
331 | url = {https://doi.org/10.1137/S0097539701399551}, |
---|
332 | doi = {10.1137/S0097539701399551}, |
---|
333 | timestamp = {Sat, 27 May 2017 14:22:58 +0200}, |
---|
334 | biburl = {https://dblp.org/rec/journals/siamcomp/BerenbrinkFG03.bib}, |
---|
335 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
336 | } |
---|
337 | |
---|
338 | @article{DBLP:journals/mst/AroraBP01, |
---|
339 | author = {Nimar S. Arora and Robert D. Blumofe and C. Greg Plaxton}, |
---|
340 | title = {Thread Scheduling for Multiprogrammed Multiprocessors}, |
---|
341 | journal = {Theory Comput. Syst.}, |
---|
342 | volume = {34}, |
---|
343 | number = {2}, |
---|
344 | pages = {115--144}, |
---|
345 | year = {2001}, |
---|
346 | url = {https://doi.org/10.1007/s00224-001-0004-z}, |
---|
347 | doi = {10.1007/s00224-001-0004-z}, |
---|
348 | timestamp = {Sun, 28 May 2017 13:18:24 +0200}, |
---|
349 | biburl = {https://dblp.org/rec/journals/mst/AroraBP01.bib}, |
---|
350 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
351 | } |
---|
352 | |
---|
353 | @article{DBLP:journals/anor/TchiboukdjianGT13, |
---|
354 | author = {Marc Tchiboukdjian and Nicolas Gast and Denis Trystram}, |
---|
355 | title = {Decentralized list scheduling}, |
---|
356 | journal = {Ann. Oper. Res.}, |
---|
357 | volume = {207}, |
---|
358 | number = {1}, |
---|
359 | pages = {237--259}, |
---|
360 | year = {2013}, |
---|
361 | url = {https://doi.org/10.1007/s10479-012-1149-7}, |
---|
362 | doi = {10.1007/s10479-012-1149-7}, |
---|
363 | timestamp = {Thu, 13 Aug 2020 12:41:25 +0200}, |
---|
364 | biburl = {https://dblp.org/rec/journals/anor/TchiboukdjianGT13.bib}, |
---|
365 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
366 | } |
---|
367 | |
---|
368 | @inproceedings{DBLP:conf/isaac/TchiboukdjianGTRB10, |
---|
369 | author = {Marc Tchiboukdjian and Nicolas Gast and Denis Trystram and Jean{-}Louis Roch and Julien Bernard}, |
---|
370 | editor = {Otfried Cheong and Kyung{-}Yong Chwa and Kunsoo Park}, |
---|
371 | title = {A Tighter Analysis of Work Stealing}, |
---|
372 | booktitle = {Algorithms and Computation - 21st International Symposium, {ISAAC} 2010, Jeju Island, Korea, December 15-17, 2010, Proceedings, Part {II}}, |
---|
373 | series = {Lecture Notes in Computer Science}, |
---|
374 | volume = {6507}, |
---|
375 | pages = {291--302}, |
---|
376 | publisher = {Springer}, |
---|
377 | year = {2010}, |
---|
378 | url = {https://doi.org/10.1007/978-3-642-17514-5\_25}, |
---|
379 | doi = {10.1007/978-3-642-17514-5\_25}, |
---|
380 | timestamp = {Fri, 13 Dec 2019 13:08:09 +0100}, |
---|
381 | biburl = {https://dblp.org/rec/conf/isaac/TchiboukdjianGTRB10.bib}, |
---|
382 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
383 | } |
---|
384 | |
---|
385 | @inproceedings{DBLP:conf/ppopp/AgrawalLS10, |
---|
386 | author = {Kunal Agrawal and Charles E. Leiserson and Jim Sukha}, |
---|
387 | editor = {R. Govindarajan and David A. Padua and Mary W. Hall}, |
---|
388 | title = {Helper locks for fork-join parallel programming}, |
---|
389 | booktitle = {Proceedings of the 15th {ACM} {SIGPLAN} Symposium on Principles and Practice of Parallel Programming, {PPOPP} 2010, Bangalore, India, January 9-14, 2010}, |
---|
390 | pages = {245--256}, |
---|
391 | publisher = {{ACM}}, |
---|
392 | year = {2010}, |
---|
393 | url = {https://doi.org/10.1145/1693453.1693487}, |
---|
394 | doi = {10.1145/1693453.1693487}, |
---|
395 | timestamp = {Tue, 06 Nov 2018 16:57:27 +0100}, |
---|
396 | biburl = {https://dblp.org/rec/conf/ppopp/AgrawalLS10.bib}, |
---|
397 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
398 | } |
---|
399 | |
---|
400 | @inproceedings{DBLP:conf/spaa/AgrawalFLSSU14, |
---|
401 | author = {Kunal Agrawal and Jeremy T. Fineman and Kefu Lu and Brendan Sheridan and Jim Sukha and Robert Utterback}, |
---|
402 | editor = {Guy E. Blelloch and Peter Sanders}, |
---|
403 | title = {Provably good scheduling for parallel programs that use data structures through implicit batching}, |
---|
404 | booktitle = {26th {ACM} Symposium on Parallelism in Algorithms and Architectures, {SPAA} '14, Prague, Czech Republic - June 23 - 25, 2014}, |
---|
405 | pages = {84--95}, |
---|
406 | publisher = {{ACM}}, |
---|
407 | year = {2014}, |
---|
408 | url = {https://doi.org/10.1145/2612669.2612688}, |
---|
409 | doi = {10.1145/2612669.2612688}, |
---|
410 | timestamp = {Wed, 21 Nov 2018 11:18:43 +0100}, |
---|
411 | biburl = {https://dblp.org/rec/conf/spaa/AgrawalFLSSU14.bib}, |
---|
412 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
413 | } |
---|
414 | |
---|
415 | @inproceedings{DBLP:conf/ipps/ColeR13, |
---|
416 | author = {Richard Cole and |
---|
417 | Vijaya Ramachandran}, |
---|
418 | title = {Analysis of Randomized Work Stealing with False Sharing}, |
---|
419 | booktitle = {27th {IEEE} International Symposium on Parallel and Distributed Processing, |
---|
420 | {IPDPS} 2013, Cambridge, MA, USA, May 20-24, 2013}, |
---|
421 | pages = {985--998}, |
---|
422 | publisher = {{IEEE} Computer Society}, |
---|
423 | year = {2013}, |
---|
424 | url = {https://doi.org/10.1109/IPDPS.2013.86}, |
---|
425 | doi = {10.1109/IPDPS.2013.86}, |
---|
426 | timestamp = {Wed, 16 Oct 2019 14:14:51 +0200}, |
---|
427 | biburl = {https://dblp.org/rec/conf/ipps/ColeR13.bib}, |
---|
428 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
429 | } |
---|
430 | |
---|
431 | @inproceedings{Albers12, |
---|
432 | author = {Susanne Albers and Antonios Antoniadis}, |
---|
433 | title = {Race to Idle: New Algorithms for Speed Scaling with a Sleep State}, |
---|
434 | booktitle = {Proceedings of the 2012 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA)}, |
---|
435 | doi = {10.1137/1.9781611973099.100}, |
---|
436 | URL = {https://epubs.siam.org/doi/abs/10.1137/1.9781611973099.100}, |
---|
437 | eprint = {https://epubs.siam.org/doi/pdf/10.1137/1.9781611973099.100}, |
---|
438 | year = 2012, |
---|
439 | month = jan, |
---|
440 | pages = {1266-1285}, |
---|
441 | } |
---|
442 | |
---|
443 | @inproceedings{atikoglu2012workload, |
---|
444 | title={Workload analysis of a large-scale key-value store}, |
---|
445 | author={Atikoglu, Berk and Xu, Yuehai and Frachtenberg, Eitan and Jiang, Song and Paleczny, Mike}, |
---|
446 | booktitle={Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE joint international conference on Measurement and Modeling of Computer Systems}, |
---|
447 | pages={53--64}, |
---|
448 | year={2012} |
---|
449 | } |
---|
450 | |
---|
451 | @article{schillings1996engineering, |
---|
452 | title={Be engineering insights: Benaphores}, |
---|
453 | author={Schillings, Benoit}, |
---|
454 | journal={Be Newsletters}, |
---|
455 | volume={1}, |
---|
456 | number={26}, |
---|
457 | year={1996} |
---|
458 | } |
---|
459 | |
---|
460 | % Trevor's relaxed FIFO list |
---|
461 | @inproceedings{alistarh2018relaxed, |
---|
462 | title={Relaxed schedulers can efficiently parallelize iterative algorithms}, |
---|
463 | author={Alistarh, Dan and Brown, Trevor and Kopinsky, Justin and Nadiradze, Giorgi}, |
---|
464 | booktitle={Proceedings of the 2018 ACM Symposium on Principles of Distributed Computing}, |
---|
465 | pages={377--386}, |
---|
466 | year={2018} |
---|
467 | } |
---|
468 | |
---|
469 | @article{zhuravlev2012survey, |
---|
470 | title={Survey of energy-cognizant scheduling techniques}, |
---|
471 | author={Zhuravlev, Sergey and Saez, Juan Carlos and Blagodurov, Sergey and Fedorova, Alexandra and Prieto, Manuel}, |
---|
472 | journal={IEEE Transactions on Parallel and Distributed Systems}, |
---|
473 | volume={24}, |
---|
474 | number={7}, |
---|
475 | pages={1447--1464}, |
---|
476 | year={2012}, |
---|
477 | publisher={IEEE} |
---|
478 | } |
---|
479 | |
---|
480 | @article{vikranth2013topology, |
---|
481 | title={Topology aware task stealing for on-chip NUMA multi-core processors}, |
---|
482 | author={Vikranth, BRWACRR and Wankar, Rajeev and Rao, C Raghavendra}, |
---|
483 | journal={Procedia Computer Science}, |
---|
484 | volume={18}, |
---|
485 | pages={379--388}, |
---|
486 | year={2013}, |
---|
487 | publisher={Elsevier} |
---|
488 | } |
---|
489 | |
---|
490 | @inproceedings{min2011hierarchical, |
---|
491 | title={Hierarchical work stealing on manycore clusters}, |
---|
492 | author={Min, Seung-Jai and Iancu, Costin and Yelick, Katherine}, |
---|
493 | booktitle={Fifth Conference on Partitioned Global Address Space Programming Models (PGAS11)}, |
---|
494 | volume={625}, |
---|
495 | year={2011}, |
---|
496 | organization={Citeseer} |
---|
497 | } |
---|
498 | |
---|
499 | @article{ribic2014energy, |
---|
500 | title={Energy-efficient work-stealing language runtimes}, |
---|
501 | author={Ribic, Haris and Liu, Yu David}, |
---|
502 | journal={ACM SIGARCH Computer Architecture News}, |
---|
503 | volume={42}, |
---|
504 | number={1}, |
---|
505 | pages={513--528}, |
---|
506 | year={2014}, |
---|
507 | publisher={ACM New York, NY, USA} |
---|
508 | } |
---|
509 | |
---|
510 | @inproceedings{torng2016asymmetry, |
---|
511 | title={Asymmetry-aware work-stealing runtimes}, |
---|
512 | author={Torng, Christopher and Wang, Moyang and Batten, Christopher}, |
---|
513 | booktitle={2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA)}, |
---|
514 | pages={40--52}, |
---|
515 | year={2016}, |
---|
516 | organization={IEEE} |
---|
517 | } |
---|
518 | |
---|
519 | % -------------------------------------------------- |
---|
520 | % ULE FreeBSD scheduler |
---|
521 | @inproceedings{DBLP:conf/bsdcon/Roberson03, |
---|
522 | author = {Jeff Roberson}, |
---|
523 | editor = {Gregory Neil Shapiro}, |
---|
524 | title = {{ULE:} {A} Modern Scheduler for FreeBSD}, |
---|
525 | booktitle = {Proceedings of BSDCon 2003, San Mateo, California, USA, September 8-12, 2003}, |
---|
526 | pages = {17--28}, |
---|
527 | publisher = {{USENIX}}, |
---|
528 | year = {2003}, |
---|
529 | url = {http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/roberson.html}, |
---|
530 | timestamp = {Wed, 04 Jul 2018 13:06:34 +0200}, |
---|
531 | biburl = {https://dblp.org/rec/conf/bsdcon/Roberson03.bib}, |
---|
532 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
533 | } |
---|
534 | |
---|
535 | % -------------------------------------------------- |
---|
536 | % Martin's LibFibre |
---|
537 | @article{DBLP:journals/pomacs/KarstenB20, |
---|
538 | author = {Martin Karsten and Saman Barghi}, |
---|
539 | title = {User-level Threading: Have Your Cake and Eat It Too}, |
---|
540 | journal = {Proc. {ACM} Meas. Anal. Comput. Syst.}, |
---|
541 | volume = {4}, |
---|
542 | number = {1}, |
---|
543 | pages = {17:1--17:30}, |
---|
544 | year = {2020}, |
---|
545 | url = {https://doi.org/10.1145/3379483}, |
---|
546 | doi = {10.1145/3379483}, |
---|
547 | timestamp = {Thu, 09 Jul 2020 22:58:54 +0200}, |
---|
548 | biburl = {https://dblp.org/rec/journals/pomacs/KarstenB20.bib}, |
---|
549 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
550 | } |
---|
551 | |
---|
552 | % -------------------------------------------------- |
---|
553 | % Linux CFS |
---|
554 | @inproceedings{DBLP:conf/eurosys/LoziLFGQF16, |
---|
555 | author = {Jean{-}Pierre Lozi and Baptiste Lepers and Justin R. Funston and Fabien Gaud and Vivien Qu{\'{e}}ma and Alexandra Fedorova}, |
---|
556 | editor = {Cristian Cadar and Peter R. Pietzuch and Kimberly Keeton and Rodrigo Rodrigues}, |
---|
557 | title = {The Linux scheduler: a decade of wasted cores}, |
---|
558 | booktitle = {Proceedings of the Eleventh European Conference on Computer Systems, EuroSys 2016, London, United Kingdom, April 18-21, 2016}, |
---|
559 | pages = {1:1--1:16}, |
---|
560 | publisher = {{ACM}}, |
---|
561 | year = {2016}, |
---|
562 | url = {https://doi.org/10.1145/2901318.2901326}, |
---|
563 | doi = {10.1145/2901318.2901326}, |
---|
564 | timestamp = {Tue, 06 Nov 2018 16:58:31 +0100}, |
---|
565 | biburl = {https://dblp.org/rec/conf/eurosys/LoziLFGQF16.bib}, |
---|
566 | bibsource = {dblp computer science bibliography, https://dblp.org} |
---|
567 | } |
---|
568 | |
---|
569 | @misc{MAN:linux/cfs, |
---|
570 | title = {{CFS} Scheduler - The Linux Kernel documentation}, |
---|
571 | howpublished = {\href{https://www.kernel.org/doc/html/latest/scheduler/sched-design-CFS.html}{https://\-www.kernel.org/\-doc/\-html/\-latest/\-scheduler/\-sched-design-CFS.html}} |
---|
572 | } |
---|
573 | |
---|
574 | @misc{MAN:linux/cfs2, |
---|
575 | title = {{CFS}: Completely fair process scheduling in Linux}, |
---|
576 | author = {Marty Kalin}, |
---|
577 | year = {2019}, |
---|
578 | month = {February}, |
---|
579 | howpublished = {\href{https://opensource.com/article/19/2/fair-scheduling-linux}{https://\-opensource.com/\-article/\-19/2\-/\-fair-scheduling-linux}} |
---|
580 | } |
---|
581 | |
---|
582 | @article{MAN:linux/cfs/pelt, |
---|
583 | title={Per-entity load tracking}, |
---|
584 | author={Corbet, Jonathan}, |
---|
585 | journal={LWN article, available at: {\href{https://lwn.net/Articles/531853}{https://\-lwn.net/\-Articles/\-531853}}}, |
---|
586 | year={2013} |
---|
587 | } |
---|
588 | |
---|
589 | @misc{MAN:linux/cfs/balancing, |
---|
590 | title={Reworking {CFS} load balancing}, |
---|
591 | journal={LWN article}, |
---|
592 | year={2019}, |
---|
593 | howpublished = {\href{https://lwn.net/Articles/793427}{https://\-lwn.net/\-Articles/\-793427}}, |
---|
594 | } |
---|
595 | |
---|
596 | @manual{MAN:linux/sched, |
---|
597 | title = {SCHED(7) - Linux Programmer's Manual}, |
---|
598 | url = {https://man7.org/linux/man-pages/man7/sched.7.html}, |
---|
599 | year = {2019}, |
---|
600 | month = {august} |
---|
601 | } |
---|
602 | |
---|
603 | @manual{MAN:bsd/kqueue, |
---|
604 | title = {KQUEUE(2) - FreeBSD System Calls Manual}, |
---|
605 | url = {https://www.freebsd.org/cgi/man.cgi?query=kqueue}, |
---|
606 | year = {2020}, |
---|
607 | month = {may} |
---|
608 | } |
---|
609 | |
---|
610 | % Apple's MAC OS X |
---|
611 | @manual{MAN:apple/scheduler, |
---|
612 | title = {Mach Scheduling and Thread Interfaces - Kernel Programming Guide}, |
---|
613 | organization = {Apple Inc.}, |
---|
614 | note = {\href{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}{https://\-developer.apple.com/\-library/archive/\-documentation/\-Darwin/\-Conceptual/\-KernelProgramming/\-scheduler/\-scheduler.html}} |
---|
615 | } |
---|
616 | |
---|
617 | @book{MAN:inteldev, |
---|
618 | key = {Intel 64 and IA-32 Architectures Software Developer’s Manual}, |
---|
619 | title = {Intel® 64 and IA-32 Architectures Software Developer’s Manual}, |
---|
620 | publisher = {Intel{\textregistered}}, |
---|
621 | year = {2016}, |
---|
622 | volume = {3B: System Programming Guide, Part 2}, |
---|
623 | url = {\href{https://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.html}{https://\-www.intel.com/\-content/\-www/\-us/\-en/\-architecture\--and\--technology/\-64\--ia\--32\--architectures\--software\--developer\--vol\--3b\--part\--2\--manual\-.html}}, |
---|
624 | } |
---|
625 | |
---|
626 | @misc{MemcachedThreading, |
---|
627 | author = {Oracle}, |
---|
628 | title = {MySQL 5.6 Reference Manual Including MySQL NDB Cluster 7.3-7.4 Reference Guide}, |
---|
629 | howpublished = {\href{https://docs.oracle.com/cd/E17952_01/mysql-5.6-en/ha-memcached-using-threads.html}{https://docs.oracle.com/\-cd/E17952\_01/\-mysql-5.6-en/\-ha-memcached-using-threads.html}}, |
---|
630 | note = "[Online; accessed 5-August-2022]" |
---|
631 | } |
---|
632 | |
---|
633 | Windows's Scheduler |
---|
634 | @inbook{MAN:windows/scheduler, |
---|
635 | author = {Kate Chase and Mark E. Russinovich}, |
---|
636 | title = {Windows Internals}, |
---|
637 | chapter = {Processes, Threads, and Jobs in the Windows Operating System}, |
---|
638 | edition = {5th Edition}, |
---|
639 | publisher = {Microsoft Press}, |
---|
640 | year = {2009}, |
---|
641 | month = {June}, |
---|
642 | series = {Developer Reference}, |
---|
643 | howpublished = {\href{https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=7#:~:text=Overview\%20of\%20Windows\%20Scheduling,a\%20phenomenon\%20called\%20processor\%20affinity}{https://\-www.microsoftpressstore.com/\-articles/\-article.aspx?p=2233328&seqNum=7#:~:text=Overview\%20of\%20Windows\%20Scheduling,a\%20phenomenon\%20called\%20processor\%20affinity}} |
---|
644 | } |
---|
645 | |
---|
646 | @misc{GITHUB:go, |
---|
647 | title = {GitHub - The Go Programming Language}, |
---|
648 | author = {The Go Programming Language}, |
---|
649 | howpublished = {\href{https://github.com/golang/go}{https://\-github.com/\-golang/\-go}}, |
---|
650 | version = {Change-Id: If07f40b1d73b8f276ee28ffb8b7214175e56c24d} |
---|
651 | } |
---|
652 | |
---|
653 | @inproceedings{YTUBE:go, |
---|
654 | author = {Dmitry Vyukov}, |
---|
655 | title = {Go scheduler: Implementing language with lightweight concurrency}, |
---|
656 | year = {2019}, |
---|
657 | booktitle = {Hydra}, |
---|
658 | howpublished = {\href{https://www.youtube.com/watch?v=-K11rY57K7k&ab_channel=Hydra}{https://\-www.youtube.com/\-watch?v=-K11rY57K7k&ab_channel=Hydra}} |
---|
659 | } |
---|
660 | |
---|
661 | @inproceedings{:erlang, |
---|
662 | author = {Kenneth Lundin, Ericsson AB}, |
---|
663 | title = {Inside the Erlang VM}, |
---|
664 | year = {2008}, |
---|
665 | booktitle = {Erlang User Conference}, |
---|
666 | howpublished = {\href{http://www.erlang.se/euc/08/euc_smp.pdf}{http://\-www.erlang.se/\-euc/\-08/\-euc_smp.pdf}} |
---|
667 | } |
---|
668 | |
---|
669 | @manual{MAN:tbb/scheduler, |
---|
670 | title = {Scheduling Algorithm - Intel{\textregistered} Threading Building Blocks Developer Reference}, |
---|
671 | organization = {Intel{\textregistered}}, |
---|
672 | howpublished = {\href{https://www.threadingbuildingblocks.org/docs/help/reference/task_scheduler/scheduling_algorithm.html}{https://\-www.threadingbuildingblocks.org/\-docs/\-help/\-reference/\-task\_scheduler/\-scheduling\_algorithm.html}} |
---|
673 | } |
---|
674 | |
---|
675 | @manual{MAN:quasar, |
---|
676 | title = {Quasar Core - Quasar User Manual}, |
---|
677 | organization = {Parallel Universe}, |
---|
678 | howpublished = {\href{https://docs.paralleluniverse.co/quasar}{https://\-docs.paralleluniverse.co/\-quasar}} |
---|
679 | } |
---|
680 | @misc{MAN:project-loom, |
---|
681 | howpublished = {\href{https://www.baeldung.com/openjdk-project-loom}{https://\-www.baeldung.com/\-openjdk-project-loom}} |
---|
682 | } |
---|
683 | |
---|
684 | @misc{MAN:kotlin, |
---|
685 | howpublished = {\href{https://kotlinlang.org/docs/multiplatform-mobile-concurrency-and-coroutines.html}{https://\-kotlinlang.org\-/docs\-/multiplatform\--mobile\--concurrency\--and\--coroutines.html}} |
---|
686 | } |
---|
687 | |
---|
688 | @misc{MAN:java/fork-join, |
---|
689 | howpublished = {\href{https://www.baeldung.com/java-fork-join}{https://\-www.baeldung.com/\-java-fork-join}} |
---|
690 | } |
---|
691 | |
---|
692 | @misc{apache, |
---|
693 | key = {Apache Software Foundation}, |
---|
694 | title = {{T}he {A}pache Web Server}, |
---|
695 | howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}}, |
---|
696 | note = "[Online; accessed 6-June-2022]" |
---|
697 | } |
---|
698 | |
---|
699 | @misc{memcached, |
---|
700 | key = {Brad Fitzpatrick}, |
---|
701 | title = {{M}emcached}, |
---|
702 | year = {2003}, |
---|
703 | howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}}, |
---|
704 | note = "[Online; accessed 6-June-2022]" |
---|
705 | } |
---|
706 | |
---|
707 | @misc{libuv, |
---|
708 | author = {libuv team}, |
---|
709 | title = {libuv: Asynchronous I/O made simple.}, |
---|
710 | howpublished = {\href{https://libuv.org/}{https://\-libuv.org/}}, |
---|
711 | note = "[Online; accessed 5-August-2022]" |
---|
712 | } |
---|
713 | |
---|
714 | @misc{SeriallyReusable, |
---|
715 | author = {IBM}, |
---|
716 | title = {Serially reusable programs}, |
---|
717 | month = mar, |
---|
718 | howpublished= {\href{https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=structures-serially-reusable-programs}{https://www.ibm.com/\-docs/\-en/\-ztpf/\-1.1.0.15?\-topic=structures\--serially\--reusable-programs}}, |
---|
719 | year = 2021, |
---|
720 | } |
---|
721 | |
---|
722 | @misc{GITHUB:mutilate, |
---|
723 | title = {Mutilate: high-performance memcached load generator }, |
---|
724 | author = { Jacob Leverich }, |
---|
725 | howpublished = {\href{https://github.com/leverich/mutilate}{https://\-github.com/\-leverich/\-mutilate}}, |
---|
726 | version = {Change-Id: d65c6ef7c2f78ae05a9db3e37d7f6ddff1c0af64} |
---|
727 | } |
---|
728 | |
---|
729 | @misc{GITHUB:SchedulingBenchmarks, |
---|
730 | title = {Scheduling Benchmarks}, |
---|
731 | author = {Thierry Delisle}, |
---|
732 | howpublished = {\href{https://github.com/cforall/SchedulingBenchmarks_PhD22}{https://\-github.com/\-cforall/\-Scheduling\-Benchmarks\_\-PhD22}}, |
---|
733 | } |
---|
734 | |
---|
735 | % -------------------------------------------------- |
---|
736 | % Tech documents |
---|
737 | @techreport{rfc:tcp, |
---|
738 | title={Transmission control protocol}, |
---|
739 | author={Postel, Jon}, |
---|
740 | year={1981} |
---|
741 | } |
---|
742 | |
---|
743 | @manual{win:priority, |
---|
744 | key = {TaskSettings Priority}, |
---|
745 | title = {TaskSettings.Priority property}, |
---|
746 | year = "2020", |
---|
747 | month = "September", |
---|
748 | howpublished = {\href{https://docs.microsoft.com/en-us/windows/win32/taskschd/tasksettings-priority}{https://\-docs.microsoft.com/\-en-us/\-windows/\-win32/\-taskschd/\-tasksettings-priority}}, |
---|
749 | note = "[Online; accessed 5-August-2022]" |
---|
750 | } |
---|
751 | |
---|
752 | @manual{win:overlap, |
---|
753 | key = {Synchronous and Asynchronous IO}, |
---|
754 | title = {Synchronous and Asynchronous I\/O}, |
---|
755 | year = "2021", |
---|
756 | month = "March", |
---|
757 | howpublished = {\href{https://docs.microsoft.com/en-us/windows/win32/fileio/synchronous-and-asynchronous-i-o}{https://\-docs.microsoft.com/\-en-us/\-windows/\-win32/\-fileio/\-synchronous-and-asynchronous-i-o}}, |
---|
758 | note = "[Online; accessed 5-August-2022]" |
---|
759 | } |
---|
760 | |
---|
761 | @book{russinovich2009windows, |
---|
762 | title={Windows Internals}, |
---|
763 | author={Russinovich, M.E. and Solomon, D.A. and Ionescu, A.}, |
---|
764 | isbn={9780735625303}, |
---|
765 | lccn={2009927697}, |
---|
766 | series={Developer Reference Series}, |
---|
767 | url={https://books.google.ca/books?id=SfglSQAACAAJ}, |
---|
768 | year={2009}, |
---|
769 | publisher={Microsoft Press} |
---|
770 | } |
---|
771 | |
---|
772 | @manual{apple:gcd, |
---|
773 | key = {Grand Central Dispatch}, |
---|
774 | title = {Grand Central Dispatch}, |
---|
775 | year = "2022", |
---|
776 | author = {Apple Inc.}, |
---|
777 | howpublished = {https://developer.apple.com/documentation/DISPATCH}, |
---|
778 | note = "[Online; accessed 5-August-2022]" |
---|
779 | } |
---|
780 | |
---|
781 | @techreport{apple:gcd2, |
---|
782 | key = {Grand Central Dispatch}, |
---|
783 | title = {Grand Central Dispatch, A better way to do multicore.}, |
---|
784 | year = "2009", |
---|
785 | month = "August", |
---|
786 | author = {Apple Inc.}, |
---|
787 | howpublished = {\href{http://web.archive.org/web/20090920043909/http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_20090903.pdf}{http://web.archive.org/web/20090920043909/http://\-images.apple.com/\-macosx/\-technology/\-docs/\-GrandCentral\_TB\_brief\_20090903.pdf}}, |
---|
788 | note = "[Online; accessed 5-August-2022]" |
---|
789 | } |
---|
790 | |
---|
791 | |
---|
792 | % -------------------------------------------------- |
---|
793 | % Man Pages |
---|
794 | @manual{MAN:open, |
---|
795 | key = "open", |
---|
796 | title = "open(2) Linux User's Manual", |
---|
797 | year = "2020", |
---|
798 | month = "February", |
---|
799 | } |
---|
800 | |
---|
801 | @manual{MAN:accept, |
---|
802 | key = "accept", |
---|
803 | title = "accept(2) Linux User's Manual", |
---|
804 | year = "2019", |
---|
805 | month = "March", |
---|
806 | } |
---|
807 | |
---|
808 | @manual{MAN:select, |
---|
809 | key = "select", |
---|
810 | title = "select(2) Linux User's Manual", |
---|
811 | year = "2019", |
---|
812 | month = "March", |
---|
813 | } |
---|
814 | |
---|
815 | @manual{MAN:poll, |
---|
816 | key = "poll", |
---|
817 | title = "poll(2) Linux User's Manual", |
---|
818 | year = "2019", |
---|
819 | month = "July", |
---|
820 | } |
---|
821 | |
---|
822 | @manual{MAN:epoll, |
---|
823 | key = "epoll", |
---|
824 | title = "epoll(7) Linux User's Manual", |
---|
825 | year = "2019", |
---|
826 | month = "March", |
---|
827 | } |
---|
828 | |
---|
829 | @manual{MAN:sendfile, |
---|
830 | key = "sendfile", |
---|
831 | title = "sendfile(2) Linux User's Manual", |
---|
832 | year = "2017", |
---|
833 | month = "September", |
---|
834 | } |
---|
835 | |
---|
836 | @manual{MAN:splice, |
---|
837 | key = "splice", |
---|
838 | title = "splice(2) Linux User's Manual", |
---|
839 | year = "2019", |
---|
840 | month = "May", |
---|
841 | } |
---|
842 | |
---|
843 | @manual{MAN:eventfd, |
---|
844 | key = "eventfd", |
---|
845 | title = "eventfd(2) Linux User's Manual", |
---|
846 | year = "2019", |
---|
847 | month = "March", |
---|
848 | } |
---|
849 | |
---|
850 | @manual{MAN:aio, |
---|
851 | key = "aio", |
---|
852 | title = "aio(7) Linux User's Manual", |
---|
853 | year = "2019", |
---|
854 | month = "March", |
---|
855 | } |
---|
856 | |
---|
857 | @manual{MAN:bash, |
---|
858 | title = {Bash Reference Manual}, |
---|
859 | author = {Chet Ramey and Brian Fox}, |
---|
860 | year = "2020", |
---|
861 | month = "December", |
---|
862 | version = {5,1}, |
---|
863 | howpublished = {\href{https://www.gnu.org/software/bash/manual/bash.pdf}{https://\-www.gnu.org/\-software/\-bash/\-manual/\-bash.pdf}} |
---|
864 | } |
---|
865 | |
---|
866 | @misc{MAN:io_uring, |
---|
867 | title = {Efficient IO with io\_uring}, |
---|
868 | author = {Axboe, Jens}, |
---|
869 | year = "2019", |
---|
870 | month = "March", |
---|
871 | version = {0,4}, |
---|
872 | howpublished = {\href{https://kernel.dk/io_uring.pdf}{https://\-kernel.dk/\-io\_uring.pdf}} |
---|
873 | } |
---|
874 | |
---|
875 | |
---|
876 | % -------------------------------------------------- |
---|
877 | % Wikipedia Entries |
---|
878 | @misc{wiki:taskparallel, |
---|
879 | author = "{Wikipedia contributors}", |
---|
880 | title = "Control theory --- {W}ikipedia{,} The Free Encyclopedia", |
---|
881 | year = "2020", |
---|
882 | howpublished = {\href{https://en.wikipedia.org/wiki/Task_parallelism}{https://\-en.wikipedia.org/\-wiki/\-Task\_parallelism}}, |
---|
883 | note = "[Online; accessed 22-October-2020]" |
---|
884 | } |
---|
885 | |
---|
886 | @misc{wiki:controltheory, |
---|
887 | author = "{Wikipedia contributors}", |
---|
888 | title = "Task parallelism --- {W}ikipedia{,} The Free Encyclopedia", |
---|
889 | year = "2020", |
---|
890 | howpublished = "\href{https://en.wikipedia.org/wiki/Control_theory}{https://\-en.wikipedia.org/\-wiki/\-Control\_theory}", |
---|
891 | note = "[Online; accessed 22-October-2020]" |
---|
892 | } |
---|
893 | |
---|
894 | @misc{wiki:implicitpar, |
---|
895 | author = "{Wikipedia contributors}", |
---|
896 | title = "Implicit parallelism --- {W}ikipedia{,} The Free Encyclopedia", |
---|
897 | year = "2020", |
---|
898 | howpublished = "\href{https://en.wikipedia.org/wiki/Implicit_parallelism}{https://\-en.wikipedia.org/\-wiki/\-Implicit\_parallelism}", |
---|
899 | note = "[Online; accessed 23-October-2020]" |
---|
900 | } |
---|
901 | |
---|
902 | @misc{wiki:explicitpar, |
---|
903 | author = "{Wikipedia contributors}", |
---|
904 | title = "Explicit parallelism --- {W}ikipedia{,} The Free Encyclopedia", |
---|
905 | year = "2017", |
---|
906 | howpublished = "\href{https://en.wikipedia.org/wiki/Explicit_parallelism}{https://\-en.wikipedia.org/\-wiki/\-Explicit\_parallelism}", |
---|
907 | note = "[Online; accessed 23-October-2020]" |
---|
908 | } |
---|
909 | |
---|
910 | @misc{wiki:lcg, |
---|
911 | author = "{Wikipedia contributors}", |
---|
912 | title = "Linear congruential generator --- {W}ikipedia{,} The Free Encyclopedia", |
---|
913 | year = "2020", |
---|
914 | howpublished = "\href{https://en.wikipedia.org/wiki/Linear_congruential_generator}{https://en.wikipedia.org/wiki/Linear\_congruential\_generator}", |
---|
915 | note = "[Online; accessed 2-January-2021]" |
---|
916 | } |
---|
917 | |
---|
918 | @misc{wiki:future, |
---|
919 | author = "{Wikipedia contributors}", |
---|
920 | title = "Futures and promises --- {W}ikipedia{,} The Free Encyclopedia", |
---|
921 | year = "2020", |
---|
922 | howpublished = "\href{https://en.wikipedia.org/wiki/Futures_and_promises}{https://\-en.wikipedia.org/\-wiki/Futures\_and\_promises}", |
---|
923 | note = "[Online; accessed 9-February-2021]" |
---|
924 | } |
---|
925 | |
---|
926 | @misc{wiki:rcu, |
---|
927 | author = "{Wikipedia contributors}", |
---|
928 | title = "Read-copy-update --- {W}ikipedia{,} The Free Encyclopedia", |
---|
929 | year = "2022", |
---|
930 | howpublished = "\href{https://en.wikipedia.org/wiki/Linear_congruential_generator}{https://\-en.wikipedia.org/\-wiki/\-Linear\_congruential\_generator}", |
---|
931 | note = "[Online; accessed 12-April-2022]" |
---|
932 | } |
---|
933 | |
---|
934 | @misc{wiki:rwlock, |
---|
935 | author = "{Wikipedia contributors}", |
---|
936 | title = "Readers-writer lock --- {W}ikipedia{,} The Free Encyclopedia", |
---|
937 | year = "2021", |
---|
938 | howpublished = "\href{https://en.wikipedia.org/wiki/Readers-writer_lock}{https://\-en.wikipedia.org/\-wiki/\-Readers-writer\_lock}", |
---|
939 | note = "[Online; accessed 12-April-2022]" |
---|
940 | } |
---|
941 | |
---|
942 | @misc{wiki:binpak, |
---|
943 | author = "{Wikipedia contributors}", |
---|
944 | title = "Bin packing problem --- {W}ikipedia{,} The Free Encyclopedia", |
---|
945 | year = "2022", |
---|
946 | howpublished = "\href{https://en.wikipedia.org/wiki/Bin_packing_problem}{https://\-en.wikipedia.org/\-wiki/\-Bin\_packing\_problem}", |
---|
947 | note = "[Online; accessed 29-June-2022]" |
---|
948 | } |
---|
949 | |
---|
950 | @misc{wiki:ma, |
---|
951 | author = "{Wikipedia contributors}", |
---|
952 | title = "Bin packing problem --- {W}ikipedia{,} The Free Encyclopedia", |
---|
953 | year = "2022", |
---|
954 | howpublished = "\href{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average}{https://\-en.wikipedia.org/\-wiki/\-Moving\_average\#Exponential\_moving\_average}", |
---|
955 | note = "[Online; accessed 5-August-2022]" |
---|
956 | } |
---|
957 | |
---|
958 | @misc{wiki:jni, |
---|
959 | author = "{Wikipedia contributors}", |
---|
960 | title = "Java Native Interface --- {W}ikipedia{,} The Free Encyclopedia", |
---|
961 | year = "2021", |
---|
962 | howpublished = "\href{https://en.wikipedia.org/wiki/Java_Native_Interface}{https://\-en.wikipedia.org/\-wiki/\-Java\_Native\_Interface}", |
---|
963 | note = "[Online; accessed 5-August-2022]" |
---|
964 | } |
---|
965 | |
---|
966 | @misc{wiki:zipf, |
---|
967 | author = "{Wikipedia contributors}", |
---|
968 | title = "Zipf's law --- {W}ikipedia{,} The Free Encyclopedia", |
---|
969 | year = "2021", |
---|
970 | howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}", |
---|
971 | note = "[Online; accessed 5-August-2022]" |
---|
972 | } |
---|
973 | |
---|
974 | @misc{wiki:htm, |
---|
975 | author = "{Wikipedia contributors}", |
---|
976 | title = "Transactional memory --- {W}ikipedia{,} The Free Encyclopedia", |
---|
977 | year = "2022", |
---|
978 | howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}", |
---|
979 | note = "[Online; accessed 7-September-2022]" |
---|
980 | } |
---|
981 | |
---|
982 | @misc{wiki:rdtsc, |
---|
983 | author = "{Wikipedia contributors}", |
---|
984 | title = "Time Stamp Counter --- {W}ikipedia{,} The Free Encyclopedia", |
---|
985 | year = "2022", |
---|
986 | howpublished = "\href{https://en.wikipedia.org/wiki/Time\_Stamp\_Counter}{https://\-en.wikipedia.org/\-wiki/\-Time\-\_Stamp\-\_Counter}", |
---|
987 | note = "[Online; accessed 14-November-2022]" |
---|
988 | } |
---|
989 | |
---|
990 | @misc{wiki:lockfree, |
---|
991 | author = "{Wikipedia contributors}", |
---|
992 | title = "Non-blocking algorithm --- {W}ikipedia{,} The Free Encyclopedia", |
---|
993 | year = "2022", |
---|
994 | howpublished = "\href{https://en.wikipedia.org/wiki/Non-blocking_algorithm}{https://en.wikipedia.org/\-wiki/Non\--blocking\-\_algorithm}", |
---|
995 | note = "[Online; accessed 22-November-2022]" |
---|
996 | } |
---|
997 | |
---|
998 | @misc{wiki:expected, |
---|
999 | author = "{Wikipedia contributors}", |
---|
1000 | title = "Expected value --- {W}ikipedia{,} The Free Encyclopedia", |
---|
1001 | year = "2022", |
---|
1002 | howpublished = "\href{https://en.wikipedia.org/wiki/Expected_value}{https://en.wikipedia.org/\-wiki/\-Expected\-\_value}", |
---|
1003 | note = "[Online; accessed 22-November-2022]" |
---|
1004 | } |
---|
1005 | |
---|
1006 | @misc{wiki:softirq, |
---|
1007 | author = "{Wikipedia contributors}", |
---|
1008 | title = "Interrupt --- {W}ikipedia{,} The Free Encyclopedia", |
---|
1009 | year = "2022", |
---|
1010 | howpublished = "\href{https://en.wikipedia.org/wiki/Interrupt}{https://en.wikipedia.org/\-wiki/\-Interrupt}", |
---|
1011 | note = "[Online; accessed 24-November-2022]" |
---|
1012 | } |
---|
1013 | |
---|
1014 | @inproceedings{Pai99Flash, |
---|
1015 | contributer = {pabuhr@watmsg}, |
---|
1016 | author = {Vivek S. Pai and Peter Druschel and Willy Zwaenepoel}, |
---|
1017 | title = {{F}lash: An efficient and portable {W}eb server}, |
---|
1018 | booktitle = {Proceedings of the 1999 USENIX Annual Technical Conference}, |
---|
1019 | organization= {USENIX Association}, |
---|
1020 | address = {Monterey, California, U.S.A.}, |
---|
1021 | month = jun, |
---|
1022 | year = {1999}, |
---|
1023 | } |
---|
1024 | |
---|
1025 | @inproceedings{Behren03, |
---|
1026 | contributer = {pabuhr@watmsg}, |
---|
1027 | author = {Rob von Behren and Jeremy Condit and Feng Zhou and George C. Necula and Eric Brewer}, |
---|
1028 | title = {Capriccio: Scalable Threads for Internet Services}, |
---|
1029 | booktitle = {Proceedings of the 19th ACM Symposium on Operating Systems Principles}, |
---|
1030 | year = {2003}, |
---|
1031 | pages = {268-281}, |
---|
1032 | location = {Bolton Landing, NY, USA}, |
---|
1033 | publisher = {ACM Press}, |
---|
1034 | address = {New York, NY, USA}, |
---|
1035 | } |
---|
1036 | |
---|
1037 | @article{Welsh01, |
---|
1038 | contributer = {pabuhr@plg}, |
---|
1039 | author = {Welsh, Matt and Culler, David and Brewer, Eric}, |
---|
1040 | title = {{SEDA}: An Architecture for Well-conditioned, Scalable Internet Services}, |
---|
1041 | journal = {SIGOPS Oper. Syst. Rev.}, |
---|
1042 | volume = {35}, |
---|
1043 | number = {5}, |
---|
1044 | month = oct, |
---|
1045 | year = {2001}, |
---|
1046 | pages = {230--243}, |
---|
1047 | numpages = {14}, |
---|
1048 | publisher = {ACM}, |
---|
1049 | address = {New York, NY, USA}, |
---|
1050 | } |
---|
1051 | |
---|
1052 | @inproceedings{Harji12, |
---|
1053 | keywords = {web server, architecture, multi-core}, |
---|
1054 | contributer = {pabuhr@plg}, |
---|
1055 | author = {Ashif S. Harji and Peter A. Buhr and Tim Brecht}, |
---|
1056 | title = {Comparing High-Performance Multi-core Web-Server Architectures}, |
---|
1057 | booktitle = {Proceedings of the 5th Annual International Systems and Storage Conference}, |
---|
1058 | series = {SYSTOR '12}, |
---|
1059 | publisher = {ACM}, |
---|
1060 | address = {New York, NY, USA}, |
---|
1061 | location = {Haifa, Israel}, |
---|
1062 | month = jun, |
---|
1063 | year = 2012, |
---|
1064 | articleno = 1, |
---|
1065 | pages = {1:1--1:12}, |
---|
1066 | } |
---|
1067 | |
---|
1068 | |
---|
1069 | @inproceedings{Barford98, |
---|
1070 | title = {Generating Representative Web Workloads for Network and Server Performance Evaluation}, |
---|
1071 | author = {Paul Barford and Mark Crovella}, |
---|
1072 | booktitle = {Proc. of ACM SIGMETRICS 1998}, |
---|
1073 | address = {Madison, Wis.}, |
---|
1074 | year = {1998} |
---|
1075 | } |
---|
1076 | |
---|
1077 | @article{httperf, |
---|
1078 | author = {David Mosberger and Tai Jin}, |
---|
1079 | title = {httperf Tool for Measuring Web Server Performance}, |
---|
1080 | journal = {ACM SIGMETRICS}, |
---|
1081 | volume = {26}, |
---|
1082 | number = {3}, |
---|
1083 | year = {1998}, |
---|
1084 | optissn = {0163-5999}, |
---|
1085 | pages = {31-37}, |
---|
1086 | optdoi = {http://doi.acm.org/10.1145/306225.306235}, |
---|
1087 | publisher = {ACM Press}, |
---|
1088 | address = {New York, NY, USA}, |
---|
1089 | } |
---|
1090 | |
---|
1091 | % -------------------------------------------------- |
---|
1092 | % True Misc |
---|
1093 | @misc{AIORant, |
---|
1094 | author = "Linus Torvalds", |
---|
1095 | title = "Re: [PATCH 09/13] aio: add support for async openat()", |
---|
1096 | year = "2016", |
---|
1097 | month = jan, |
---|
1098 | howpublished = "\href{https://lwn.net/Articles/671657}{https://\-lwn.net/\-Articles/671657}", |
---|
1099 | note = "[Online; accessed 6-June-2022]" |
---|
1100 | } |
---|
1101 | |
---|
1102 | @misc{xkcd:dynamicentropy, |
---|
1103 | author = "Randall Munroe", |
---|
1104 | title = "2318: Dynamic Entropy", |
---|
1105 | year = "2020", |
---|
1106 | month = "June", |
---|
1107 | howpublished = "\href{https://xkcd.com/2318/}{https://\-xkcd.com/\-2318/}", |
---|
1108 | note = "[Online; accessed 10-June-2020]" |
---|
1109 | } |
---|
1110 | |
---|
1111 | @misc{xkcd:cloud, |
---|
1112 | author = "Randall Munroe", |
---|
1113 | title = "908: The Cloud", |
---|
1114 | year = "2011", |
---|
1115 | month = "June", |
---|
1116 | howpublished = "\href{https://xkcd.com/908/}{https://\-xkcd.com/\-908/}", |
---|
1117 | note = "[Online; accessed 25-August-2022]" |
---|
1118 | } |
---|
1119 | |
---|
1120 | @misc{go:safepoints, |
---|
1121 | author = "The Go Programming Language", |
---|
1122 | title = "src/runtime/preempt.go", |
---|
1123 | howpublished = {\href{https://go.dev/src/runtime/preempt.go}}, |
---|
1124 | note = "[Online; accessed 5-August-2022]" |
---|
1125 | } |
---|
1126 | |
---|
1127 | @misc{go:cgo, |
---|
1128 | author = "The Go Programming Language", |
---|
1129 | title = "cgo", |
---|
1130 | howpublished = {\href{https://pkg.go.dev/cmd/cgo}}, |
---|
1131 | note = "[Online; accessed 5-August-2022]" |
---|
1132 | } |
---|
1133 | |
---|
1134 | @article{reese2008nginx, |
---|
1135 | title = {NGINX: the high-performance web server and reverse proxy}, |
---|
1136 | author = {Reese, Will}, |
---|
1137 | journal = {Linux Journal}, |
---|
1138 | volume = {2008}, |
---|
1139 | number = {173}, |
---|
1140 | pages = {2}, |
---|
1141 | year = {2008}, |
---|
1142 | publisher = {Belltown Media} |
---|
1143 | } |
---|
1144 | |
---|
1145 | @phdthesis{Harji10, |
---|
1146 | author = {Ashif Harji}, |
---|
1147 | title = {Performance Comparison of Uniprocessor and Multiprocessor Web Server Architectures}, |
---|
1148 | school = {University of Waterloo}, |
---|
1149 | year = 2010, |
---|
1150 | month = feb, |
---|
1151 | address = {Waterloo, Ontario, Canada, N2L 3G1}, |
---|
1152 | note = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/\-10012/\-5040/\-1/\-Harji\_thesis.pdf}}, |
---|
1153 | } |
---|