| 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 |
|
|---|
| 461 |
|
|---|
| 462 | % --------------------------------------------------
|
|---|
| 463 | % ULE FreeBSD scheduler
|
|---|
| 464 | @inproceedings{DBLP:conf/bsdcon/Roberson03,
|
|---|
| 465 | author = {Jeff Roberson},
|
|---|
| 466 | editor = {Gregory Neil Shapiro},
|
|---|
| 467 | title = {{ULE:} {A} Modern Scheduler for FreeBSD},
|
|---|
| 468 | booktitle = {Proceedings of BSDCon 2003, San Mateo, California, USA, September 8-12, 2003},
|
|---|
| 469 | pages = {17--28},
|
|---|
| 470 | publisher = {{USENIX}},
|
|---|
| 471 | year = {2003},
|
|---|
| 472 | url = {http://www.usenix.org/publications/library/proceedings/bsdcon03/tech/roberson.html},
|
|---|
| 473 | timestamp = {Wed, 04 Jul 2018 13:06:34 +0200},
|
|---|
| 474 | biburl = {https://dblp.org/rec/conf/bsdcon/Roberson03.bib},
|
|---|
| 475 | bibsource = {dblp computer science bibliography, https://dblp.org}
|
|---|
| 476 | }
|
|---|
| 477 |
|
|---|
| 478 | % --------------------------------------------------
|
|---|
| 479 | % Martin's LibFibre
|
|---|
| 480 | @article{DBLP:journals/pomacs/KarstenB20,
|
|---|
| 481 | author = {Martin Karsten and Saman Barghi},
|
|---|
| 482 | title = {User-level Threading: Have Your Cake and Eat It Too},
|
|---|
| 483 | journal = {Proc. {ACM} Meas. Anal. Comput. Syst.},
|
|---|
| 484 | volume = {4},
|
|---|
| 485 | number = {1},
|
|---|
| 486 | pages = {17:1--17:30},
|
|---|
| 487 | year = {2020},
|
|---|
| 488 | url = {https://doi.org/10.1145/3379483},
|
|---|
| 489 | doi = {10.1145/3379483},
|
|---|
| 490 | timestamp = {Thu, 09 Jul 2020 22:58:54 +0200},
|
|---|
| 491 | biburl = {https://dblp.org/rec/journals/pomacs/KarstenB20.bib},
|
|---|
| 492 | bibsource = {dblp computer science bibliography, https://dblp.org}
|
|---|
| 493 | }
|
|---|
| 494 |
|
|---|
| 495 | % --------------------------------------------------
|
|---|
| 496 | % Linux CFS
|
|---|
| 497 | @inproceedings{DBLP:conf/eurosys/LoziLFGQF16,
|
|---|
| 498 | author = {Jean{-}Pierre Lozi and Baptiste Lepers and Justin R. Funston and Fabien Gaud and Vivien Qu{\'{e}}ma and Alexandra Fedorova},
|
|---|
| 499 | editor = {Cristian Cadar and Peter R. Pietzuch and Kimberly Keeton and Rodrigo Rodrigues},
|
|---|
| 500 | title = {The Linux scheduler: a decade of wasted cores},
|
|---|
| 501 | booktitle = {Proceedings of the Eleventh European Conference on Computer Systems, EuroSys 2016, London, United Kingdom, April 18-21, 2016},
|
|---|
| 502 | pages = {1:1--1:16},
|
|---|
| 503 | publisher = {{ACM}},
|
|---|
| 504 | year = {2016},
|
|---|
| 505 | url = {https://doi.org/10.1145/2901318.2901326},
|
|---|
| 506 | doi = {10.1145/2901318.2901326},
|
|---|
| 507 | timestamp = {Tue, 06 Nov 2018 16:58:31 +0100},
|
|---|
| 508 | biburl = {https://dblp.org/rec/conf/eurosys/LoziLFGQF16.bib},
|
|---|
| 509 | bibsource = {dblp computer science bibliography, https://dblp.org}
|
|---|
| 510 | }
|
|---|
| 511 |
|
|---|
| 512 | @misc{MAN:linux/cfs,
|
|---|
| 513 | title = {{CFS} Scheduler - The Linux Kernel documentation},
|
|---|
| 514 | 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}}
|
|---|
| 515 | }
|
|---|
| 516 |
|
|---|
| 517 | @misc{MAN:linux/cfs2,
|
|---|
| 518 | title = {{CFS}: Completely fair process scheduling in Linux},
|
|---|
| 519 | author = {Marty Kalin},
|
|---|
| 520 | year = {2019},
|
|---|
| 521 | month = {February},
|
|---|
| 522 | howpublished = {\href{https://opensource.com/article/19/2/fair-scheduling-linux}{https://\-opensource.com/\-article/\-19/2\-/\-fair-scheduling-linux}}
|
|---|
| 523 | }
|
|---|
| 524 |
|
|---|
| 525 | @article{MAN:linux/cfs/pelt,
|
|---|
| 526 | title={Per-entity load tracking},
|
|---|
| 527 | author={Corbet, Jonathan},
|
|---|
| 528 | journal={LWN article, available at: https://lwn.net/Articles/531853},
|
|---|
| 529 | year={2013}
|
|---|
| 530 | }
|
|---|
| 531 |
|
|---|
| 532 | @misc{MAN:linux/cfs/balancing,
|
|---|
| 533 | title={Reworking {CFS} load balancing},
|
|---|
| 534 | journal={LWN article},
|
|---|
| 535 | year={2019},
|
|---|
| 536 | howpublished = {\href{https://lwn.net/Articles/793427}{https://\-lwn.net/\-Articles/\-793427}},
|
|---|
| 537 | }
|
|---|
| 538 |
|
|---|
| 539 | @manual{MAN:linux/sched,
|
|---|
| 540 | title = {SCHED(7) - Linux Programmer's Manual},
|
|---|
| 541 | url = {https://man7.org/linux/man-pages/man7/sched.7.html},
|
|---|
| 542 | year = {2019},
|
|---|
| 543 | month = {august}
|
|---|
| 544 | }
|
|---|
| 545 |
|
|---|
| 546 | @manual{MAN:bsd/kqueue,
|
|---|
| 547 | title = {KQUEUE(2) - FreeBSD System Calls Manual},
|
|---|
| 548 | url = {https://www.freebsd.org/cgi/man.cgi?query=kqueue},
|
|---|
| 549 | year = {2020},
|
|---|
| 550 | month = {may}
|
|---|
| 551 | }
|
|---|
| 552 |
|
|---|
| 553 | % Apple's MAC OS X
|
|---|
| 554 | @manual{MAN:apple/scheduler,
|
|---|
| 555 | title = {Mach Scheduling and Thread Interfaces - Kernel Programming Guide},
|
|---|
| 556 | organization = {Apple Inc.},
|
|---|
| 557 | 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}}
|
|---|
| 558 | }
|
|---|
| 559 |
|
|---|
| 560 | @misc{MemcachedThreading,
|
|---|
| 561 | author = {Oracle},
|
|---|
| 562 | title = {MySQL 5.6 Reference Manual Including MySQL NDB Cluster 7.3-7.4 Reference Guide},
|
|---|
| 563 | 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}},
|
|---|
| 564 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 565 | }
|
|---|
| 566 |
|
|---|
| 567 | Windows's Scheduler
|
|---|
| 568 | @inbook{MAN:windows/scheduler,
|
|---|
| 569 | author = {Kate Chase and Mark E. Russinovich},
|
|---|
| 570 | title = {Windows Internals},
|
|---|
| 571 | chapter = {Processes, Threads, and Jobs in the Windows Operating System},
|
|---|
| 572 | edition = {5th Edition},
|
|---|
| 573 | publisher = {Microsoft Press},
|
|---|
| 574 | year = {2009},
|
|---|
| 575 | month = {June},
|
|---|
| 576 | series = {Developer Reference},
|
|---|
| 577 | 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}}
|
|---|
| 578 | }
|
|---|
| 579 |
|
|---|
| 580 | @misc{GITHUB:go,
|
|---|
| 581 | title = {GitHub - The Go Programming Language},
|
|---|
| 582 | author = {The Go Programming Language},
|
|---|
| 583 | howpublished = {\href{https://github.com/golang/go}{https://\-github.com/\-golang/\-go}},
|
|---|
| 584 | version = {Change-Id: If07f40b1d73b8f276ee28ffb8b7214175e56c24d}
|
|---|
| 585 | }
|
|---|
| 586 |
|
|---|
| 587 | @inproceedings{YTUBE:go,
|
|---|
| 588 | author = {Dmitry Vyukov},
|
|---|
| 589 | title = {Go scheduler: Implementing language with lightweight concurrency},
|
|---|
| 590 | year = {2019},
|
|---|
| 591 | booktitle = {Hydra},
|
|---|
| 592 | howpublished = {\href{https://www.youtube.com/watch?v=-K11rY57K7k&ab_channel=Hydra}{https://\-www.youtube.com/\-watch?v=-K11rY57K7k&ab_channel=Hydra}}
|
|---|
| 593 | }
|
|---|
| 594 |
|
|---|
| 595 | @inproceedings{:erlang,
|
|---|
| 596 | author = {Kenneth Lundin, Ericsson AB},
|
|---|
| 597 | title = {Inside the Erlang VM},
|
|---|
| 598 | year = {2008},
|
|---|
| 599 | booktitle = {Erlang User Conference},
|
|---|
| 600 | howpublished = {\href{http://www.erlang.se/euc/08/euc_smp.pdf}{http://\-www.erlang.se/\-euc/\-08/\-euc_smp.pdf}}
|
|---|
| 601 | }
|
|---|
| 602 |
|
|---|
| 603 | @manual{MAN:tbb/scheduler,
|
|---|
| 604 | title = {Scheduling Algorithm - Intel{\textregistered} Threading Building Blocks Developer Reference},
|
|---|
| 605 | organization = {Intel{\textregistered}},
|
|---|
| 606 | 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}}
|
|---|
| 607 | }
|
|---|
| 608 |
|
|---|
| 609 | @manual{MAN:quasar,
|
|---|
| 610 | title = {Quasar Core - Quasar User Manual},
|
|---|
| 611 | organization = {Parallel Universe},
|
|---|
| 612 | howpublished = {\href{https://docs.paralleluniverse.co/quasar}{https://\-docs.paralleluniverse.co/\-quasar}}
|
|---|
| 613 | }
|
|---|
| 614 | @misc{MAN:project-loom,
|
|---|
| 615 | howpublished = {\href{https://www.baeldung.com/openjdk-project-loom}{https://\-www.baeldung.com/\-openjdk-project-loom}}
|
|---|
| 616 | }
|
|---|
| 617 |
|
|---|
| 618 | @misc{MAN:java/fork-join,
|
|---|
| 619 | howpublished = {\href{https://www.baeldung.com/java-fork-join}{https://\-www.baeldung.com/\-java-fork-join}}
|
|---|
| 620 | }
|
|---|
| 621 |
|
|---|
| 622 | @misc{apache,
|
|---|
| 623 | key = {Apache Software Foundation},
|
|---|
| 624 | title = {{T}he {A}pache Web Server},
|
|---|
| 625 | howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}},
|
|---|
| 626 | note = "[Online; accessed 6-June-2022]"
|
|---|
| 627 | }
|
|---|
| 628 |
|
|---|
| 629 | @misc{memcached,
|
|---|
| 630 | key = {Brad Fitzpatrick},
|
|---|
| 631 | title = {{M}emcached},
|
|---|
| 632 | year = {2003},
|
|---|
| 633 | howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}},
|
|---|
| 634 | note = "[Online; accessed 6-June-2022]"
|
|---|
| 635 | }
|
|---|
| 636 |
|
|---|
| 637 | @misc{libuv,
|
|---|
| 638 | author = {libuv team},
|
|---|
| 639 | title = {libuv: Asynchronous I/O made simple.},
|
|---|
| 640 | howpublished = {\href{https://libuv.org/}{https://\-libuv.org/}},
|
|---|
| 641 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 642 | }
|
|---|
| 643 |
|
|---|
| 644 | @misc{SeriallyReusable,
|
|---|
| 645 | author = {IBM},
|
|---|
| 646 | title = {Serially reusable programs},
|
|---|
| 647 | month = mar,
|
|---|
| 648 | 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}},
|
|---|
| 649 | year = 2021,
|
|---|
| 650 | }
|
|---|
| 651 |
|
|---|
| 652 | @misc{GITHUB:mutilate,
|
|---|
| 653 | title = {Mutilate: high-performance memcached load generator },
|
|---|
| 654 | author = { Jacob Leverich },
|
|---|
| 655 | howpublished = {\href{https://github.com/leverich/mutilate}{https://\-github.com/\-leverich/\-mutilate}},
|
|---|
| 656 | version = {Change-Id: d65c6ef7c2f78ae05a9db3e37d7f6ddff1c0af64}
|
|---|
| 657 | }
|
|---|
| 658 |
|
|---|
| 659 | % --------------------------------------------------
|
|---|
| 660 | % Tech documents
|
|---|
| 661 | @techreport{rfc:tcp,
|
|---|
| 662 | title={Transmission control protocol},
|
|---|
| 663 | author={Postel, Jon},
|
|---|
| 664 | year={1981}
|
|---|
| 665 | }
|
|---|
| 666 |
|
|---|
| 667 | @manual{win:priority,
|
|---|
| 668 | key = {TaskSettings Priority},
|
|---|
| 669 | title = {TaskSettings.Priority property},
|
|---|
| 670 | year = "2020",
|
|---|
| 671 | month = "September",
|
|---|
| 672 | howpublished = {\href{https://docs.microsoft.com/en-us/windows/win32/taskschd/tasksettings-priority}{https://\-docs.microsoft.com/\-en-us/\-windows/\-win32/\-taskschd/\-tasksettings-priority}},
|
|---|
| 673 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 674 | }
|
|---|
| 675 |
|
|---|
| 676 | @manual{win:overlap,
|
|---|
| 677 | key = {Synchronous and Asynchronous IO},
|
|---|
| 678 | title = {Synchronous and Asynchronous I\/O},
|
|---|
| 679 | year = "2021",
|
|---|
| 680 | month = "March",
|
|---|
| 681 | 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}},
|
|---|
| 682 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 683 | }
|
|---|
| 684 |
|
|---|
| 685 | @book{russinovich2009windows,
|
|---|
| 686 | title={Windows Internals},
|
|---|
| 687 | author={Russinovich, M.E. and Solomon, D.A. and Ionescu, A.},
|
|---|
| 688 | isbn={9780735625303},
|
|---|
| 689 | lccn={2009927697},
|
|---|
| 690 | series={Developer Reference Series},
|
|---|
| 691 | url={https://books.google.ca/books?id=SfglSQAACAAJ},
|
|---|
| 692 | year={2009},
|
|---|
| 693 | publisher={Microsoft Press}
|
|---|
| 694 | }
|
|---|
| 695 |
|
|---|
| 696 | @manual{apple:gcd,
|
|---|
| 697 | key = {Grand Central Dispatch},
|
|---|
| 698 | title = {Grand Central Dispatch},
|
|---|
| 699 | year = "2022",
|
|---|
| 700 | author = {Apple Inc.},
|
|---|
| 701 | howpublished = {https://developer.apple.com/documentation/DISPATCH},
|
|---|
| 702 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 703 | }
|
|---|
| 704 |
|
|---|
| 705 | @techreport{apple:gcd2,
|
|---|
| 706 | key = {Grand Central Dispatch},
|
|---|
| 707 | title = {Grand Central Dispatch, A better way to do multicore.},
|
|---|
| 708 | year = "2009",
|
|---|
| 709 | month = "August",
|
|---|
| 710 | author = {Apple Inc.},
|
|---|
| 711 | 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}},
|
|---|
| 712 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 713 | }
|
|---|
| 714 |
|
|---|
| 715 |
|
|---|
| 716 | % --------------------------------------------------
|
|---|
| 717 | % Man Pages
|
|---|
| 718 | @manual{MAN:open,
|
|---|
| 719 | key = "open",
|
|---|
| 720 | title = "open(2) Linux User's Manual",
|
|---|
| 721 | year = "2020",
|
|---|
| 722 | month = "February",
|
|---|
| 723 | }
|
|---|
| 724 |
|
|---|
| 725 | @manual{MAN:accept,
|
|---|
| 726 | key = "accept",
|
|---|
| 727 | title = "accept(2) Linux User's Manual",
|
|---|
| 728 | year = "2019",
|
|---|
| 729 | month = "March",
|
|---|
| 730 | }
|
|---|
| 731 |
|
|---|
| 732 | @manual{MAN:select,
|
|---|
| 733 | key = "select",
|
|---|
| 734 | title = "select(2) Linux User's Manual",
|
|---|
| 735 | year = "2019",
|
|---|
| 736 | month = "March",
|
|---|
| 737 | }
|
|---|
| 738 |
|
|---|
| 739 | @manual{MAN:poll,
|
|---|
| 740 | key = "poll",
|
|---|
| 741 | title = "poll(2) Linux User's Manual",
|
|---|
| 742 | year = "2019",
|
|---|
| 743 | month = "July",
|
|---|
| 744 | }
|
|---|
| 745 |
|
|---|
| 746 | @manual{MAN:epoll,
|
|---|
| 747 | key = "epoll",
|
|---|
| 748 | title = "epoll(7) Linux User's Manual",
|
|---|
| 749 | year = "2019",
|
|---|
| 750 | month = "March",
|
|---|
| 751 | }
|
|---|
| 752 |
|
|---|
| 753 | @manual{MAN:sendfile,
|
|---|
| 754 | key = "sendfile",
|
|---|
| 755 | title = "sendfile(2) Linux User's Manual",
|
|---|
| 756 | year = "2017",
|
|---|
| 757 | month = "September",
|
|---|
| 758 | }
|
|---|
| 759 |
|
|---|
| 760 | @manual{MAN:splice,
|
|---|
| 761 | key = "splice",
|
|---|
| 762 | title = "splice(2) Linux User's Manual",
|
|---|
| 763 | year = "2019",
|
|---|
| 764 | month = "May",
|
|---|
| 765 | }
|
|---|
| 766 |
|
|---|
| 767 | @manual{MAN:aio,
|
|---|
| 768 | key = "aio",
|
|---|
| 769 | title = "aio(7) Linux User's Manual",
|
|---|
| 770 | year = "2019",
|
|---|
| 771 | month = "March",
|
|---|
| 772 | }
|
|---|
| 773 |
|
|---|
| 774 | @misc{MAN:io_uring,
|
|---|
| 775 | title = {Efficient IO with io\_uring},
|
|---|
| 776 | author = {Axboe, Jens},
|
|---|
| 777 | year = "2019",
|
|---|
| 778 | month = "March",
|
|---|
| 779 | version = {0,4},
|
|---|
| 780 | howpublished = {\href{https://kernel.dk/io_uring.pdf}{https://\-kernel.dk/\-io\_uring.pdf}}
|
|---|
| 781 | }
|
|---|
| 782 |
|
|---|
| 783 | % --------------------------------------------------
|
|---|
| 784 | % Wikipedia Entries
|
|---|
| 785 | @misc{wiki:taskparallel,
|
|---|
| 786 | author = "{Wikipedia contributors}",
|
|---|
| 787 | title = "Control theory --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 788 | year = "2020",
|
|---|
| 789 | howpublished = {\href{https://en.wikipedia.org/wiki/Task_parallelism}{https://\-en.wikipedia.org/\-wiki/\-Task\_parallelism}},
|
|---|
| 790 | note = "[Online; accessed 22-October-2020]"
|
|---|
| 791 | }
|
|---|
| 792 |
|
|---|
| 793 | @misc{wiki:controltheory,
|
|---|
| 794 | author = "{Wikipedia contributors}",
|
|---|
| 795 | title = "Task parallelism --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 796 | year = "2020",
|
|---|
| 797 | howpublished = "\href{https://en.wikipedia.org/wiki/Control_theory}{https://\-en.wikipedia.org/\-wiki/\-Control\_theory}",
|
|---|
| 798 | note = "[Online; accessed 22-October-2020]"
|
|---|
| 799 | }
|
|---|
| 800 |
|
|---|
| 801 | @misc{wiki:implicitpar,
|
|---|
| 802 | author = "{Wikipedia contributors}",
|
|---|
| 803 | title = "Implicit parallelism --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 804 | year = "2020",
|
|---|
| 805 | howpublished = "\href{https://en.wikipedia.org/wiki/Implicit_parallelism}{https://\-en.wikipedia.org/\-wiki/\-Implicit\_parallelism}",
|
|---|
| 806 | note = "[Online; accessed 23-October-2020]"
|
|---|
| 807 | }
|
|---|
| 808 |
|
|---|
| 809 | @misc{wiki:explicitpar,
|
|---|
| 810 | author = "{Wikipedia contributors}",
|
|---|
| 811 | title = "Explicit parallelism --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 812 | year = "2017",
|
|---|
| 813 | howpublished = "\href{https://en.wikipedia.org/wiki/Explicit_parallelism}{https://\-en.wikipedia.org/\-wiki/\-Explicit\_parallelism}",
|
|---|
| 814 | note = "[Online; accessed 23-October-2020]"
|
|---|
| 815 | }
|
|---|
| 816 |
|
|---|
| 817 | @misc{wiki:lcg,
|
|---|
| 818 | author = "{Wikipedia contributors}",
|
|---|
| 819 | title = "Linear congruential generator --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 820 | year = "2020",
|
|---|
| 821 | howpublished = "\href{https://en.wikipedia.org/wiki/Linear_congruential_generator}{https://en.wikipedia.org/wiki/Linear\_congruential\_generator}",
|
|---|
| 822 | note = "[Online; accessed 2-January-2021]"
|
|---|
| 823 | }
|
|---|
| 824 |
|
|---|
| 825 | @misc{wiki:future,
|
|---|
| 826 | author = "{Wikipedia contributors}",
|
|---|
| 827 | title = "Futures and promises --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 828 | year = "2020",
|
|---|
| 829 | howpublished = "\href{https://en.wikipedia.org/wiki/Futures_and_promises}{https://\-en.wikipedia.org/\-wiki/Futures\_and\_promises}",
|
|---|
| 830 | note = "[Online; accessed 9-February-2021]"
|
|---|
| 831 | }
|
|---|
| 832 |
|
|---|
| 833 | @misc{wiki:rcu,
|
|---|
| 834 | author = "{Wikipedia contributors}",
|
|---|
| 835 | title = "Read-copy-update --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 836 | year = "2022",
|
|---|
| 837 | howpublished = "\href{https://en.wikipedia.org/wiki/Linear_congruential_generator}{https://\-en.wikipedia.org/\-wiki/\-Linear\_congruential\_generator}",
|
|---|
| 838 | note = "[Online; accessed 12-April-2022]"
|
|---|
| 839 | }
|
|---|
| 840 |
|
|---|
| 841 | @misc{wiki:rwlock,
|
|---|
| 842 | author = "{Wikipedia contributors}",
|
|---|
| 843 | title = "Readers-writer lock --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 844 | year = "2021",
|
|---|
| 845 | howpublished = "\href{https://en.wikipedia.org/wiki/Readers-writer_lock}{https://\-en.wikipedia.org/\-wiki/\-Readers-writer\_lock}",
|
|---|
| 846 | note = "[Online; accessed 12-April-2022]"
|
|---|
| 847 | }
|
|---|
| 848 |
|
|---|
| 849 | @misc{wiki:binpak,
|
|---|
| 850 | author = "{Wikipedia contributors}",
|
|---|
| 851 | title = "Bin packing problem --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 852 | year = "2022",
|
|---|
| 853 | howpublished = "\href{https://en.wikipedia.org/wiki/Bin_packing_problem}{https://\-en.wikipedia.org/\-wiki/\-Bin\_packing\_problem}",
|
|---|
| 854 | note = "[Online; accessed 29-June-2022]"
|
|---|
| 855 | }
|
|---|
| 856 |
|
|---|
| 857 | @misc{wiki:ma,
|
|---|
| 858 | author = "{Wikipedia contributors}",
|
|---|
| 859 | title = "Bin packing problem --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 860 | year = "2022",
|
|---|
| 861 | howpublished = "\href{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average}{https://\-en.wikipedia.org/\-wiki/\-Moving\_average\#Exponential\_moving\_average}",
|
|---|
| 862 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 863 | }
|
|---|
| 864 |
|
|---|
| 865 | @misc{wiki:jni,
|
|---|
| 866 | author = "{Wikipedia contributors}",
|
|---|
| 867 | title = "Java Native Interface --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 868 | year = "2021",
|
|---|
| 869 | howpublished = "\href{https://en.wikipedia.org/wiki/Java_Native_Interface}{https://\-en.wikipedia.org/\-wiki/\-Java\_Native\_Interface}",
|
|---|
| 870 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 871 | }
|
|---|
| 872 |
|
|---|
| 873 | @misc{wiki:zipf,
|
|---|
| 874 | author = "{Wikipedia contributors}",
|
|---|
| 875 | title = "Zipf's law --- {W}ikipedia{,} The Free Encyclopedia",
|
|---|
| 876 | year = "2021",
|
|---|
| 877 | howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}",
|
|---|
| 878 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 879 | }
|
|---|
| 880 |
|
|---|
| 881 | @inproceedings{Pai99Flash,
|
|---|
| 882 | contributer = {pabuhr@watmsg},
|
|---|
| 883 | author = {Vivek S. Pai and Peter Druschel and Willy Zwaenepoel},
|
|---|
| 884 | title = {{F}lash: An efficient and portable {W}eb server},
|
|---|
| 885 | booktitle = {Proceedings of the 1999 USENIX Annual Technical Conference},
|
|---|
| 886 | organization= {USENIX Association},
|
|---|
| 887 | address = {Monterey, California, U.S.A.},
|
|---|
| 888 | month = jun,
|
|---|
| 889 | year = {1999},
|
|---|
| 890 | }
|
|---|
| 891 |
|
|---|
| 892 | @inproceedings{Behren03,
|
|---|
| 893 | contributer = {pabuhr@watmsg},
|
|---|
| 894 | author = {Rob von Behren and Jeremy Condit and Feng Zhou and George C. Necula and Eric Brewer},
|
|---|
| 895 | title = {Capriccio: Scalable Threads for Internet Services},
|
|---|
| 896 | booktitle = {Proceedings of the 19th ACM Symposium on Operating Systems Principles},
|
|---|
| 897 | year = {2003},
|
|---|
| 898 | pages = {268-281},
|
|---|
| 899 | location = {Bolton Landing, NY, USA},
|
|---|
| 900 | publisher = {ACM Press},
|
|---|
| 901 | address = {New York, NY, USA},
|
|---|
| 902 | }
|
|---|
| 903 |
|
|---|
| 904 | @article{Welsh01,
|
|---|
| 905 | contributer = {pabuhr@plg},
|
|---|
| 906 | author = {Welsh, Matt and Culler, David and Brewer, Eric},
|
|---|
| 907 | title = {{SEDA}: An Architecture for Well-conditioned, Scalable Internet Services},
|
|---|
| 908 | journal = {SIGOPS Oper. Syst. Rev.},
|
|---|
| 909 | volume = {35},
|
|---|
| 910 | number = {5},
|
|---|
| 911 | month = oct,
|
|---|
| 912 | year = {2001},
|
|---|
| 913 | pages = {230--243},
|
|---|
| 914 | numpages = {14},
|
|---|
| 915 | publisher = {ACM},
|
|---|
| 916 | address = {New York, NY, USA},
|
|---|
| 917 | }
|
|---|
| 918 |
|
|---|
| 919 | @inproceedings{Harji12,
|
|---|
| 920 | keywords = {web server, architecture, multi-core},
|
|---|
| 921 | contributer = {pabuhr@plg},
|
|---|
| 922 | author = {Ashif S. Harji and Peter A. Buhr and Tim Brecht},
|
|---|
| 923 | title = {Comparing High-Performance Multi-core Web-Server Architectures},
|
|---|
| 924 | booktitle = {Proceedings of the 5th Annual International Systems and Storage Conference},
|
|---|
| 925 | series = {SYSTOR '12},
|
|---|
| 926 | publisher = {ACM},
|
|---|
| 927 | address = {New York, NY, USA},
|
|---|
| 928 | location = {Haifa, Israel},
|
|---|
| 929 | month = jun,
|
|---|
| 930 | year = 2012,
|
|---|
| 931 | articleno = 1,
|
|---|
| 932 | pages = {1:1--1:12},
|
|---|
| 933 | }
|
|---|
| 934 |
|
|---|
| 935 |
|
|---|
| 936 | @inproceedings{Barford98,
|
|---|
| 937 | title = {Generating Representative Web Workloads for Network and Server Performance Evaluation},
|
|---|
| 938 | author = {Paul Barford and Mark Crovella},
|
|---|
| 939 | booktitle = {Proc. of ACM SIGMETRICS 1998},
|
|---|
| 940 | address = {Madison, Wis.},
|
|---|
| 941 | year = {1998}
|
|---|
| 942 | }
|
|---|
| 943 |
|
|---|
| 944 | @article{httperf,
|
|---|
| 945 | author = {David Mosberger and Tai Jin},
|
|---|
| 946 | title = {httperf Tool for Measuring Web Server Performance},
|
|---|
| 947 | journal = {ACM SIGMETRICS},
|
|---|
| 948 | volume = {26},
|
|---|
| 949 | number = {3},
|
|---|
| 950 | year = {1998},
|
|---|
| 951 | optissn = {0163-5999},
|
|---|
| 952 | pages = {31-37},
|
|---|
| 953 | optdoi = {http://doi.acm.org/10.1145/306225.306235},
|
|---|
| 954 | publisher = {ACM Press},
|
|---|
| 955 | address = {New York, NY, USA},
|
|---|
| 956 | }
|
|---|
| 957 |
|
|---|
| 958 | % --------------------------------------------------
|
|---|
| 959 | % True Misc
|
|---|
| 960 | @misc{AIORant,
|
|---|
| 961 | author = "Linus Torvalds",
|
|---|
| 962 | title = "Re: [PATCH 09/13] aio: add support for async openat()",
|
|---|
| 963 | year = "2016",
|
|---|
| 964 | month = jan,
|
|---|
| 965 | howpublished = "\href{https://lwn.net/Articles/671657}{https://\-lwn.net/\-Articles/671657}",
|
|---|
| 966 | note = "[Online; accessed 6-June-2022]"
|
|---|
| 967 | }
|
|---|
| 968 |
|
|---|
| 969 | @misc{xkcd:dynamicentropy,
|
|---|
| 970 | author = "Randall Munroe",
|
|---|
| 971 | title = "2318: Dynamic Entropy",
|
|---|
| 972 | year = "2020",
|
|---|
| 973 | month = "June",
|
|---|
| 974 | howpublished = "\href{https://xkcd.com/2318/}",
|
|---|
| 975 | note = "[Online; accessed 10-June-2020]"
|
|---|
| 976 | }
|
|---|
| 977 |
|
|---|
| 978 | @misc{xkcd:cloud,
|
|---|
| 979 | author = "Randall Munroe",
|
|---|
| 980 | title = "908: The Cloud",
|
|---|
| 981 | year = "2011",
|
|---|
| 982 | month = "June",
|
|---|
| 983 | howpublished = "\href{https://xkcd.com/908/}",
|
|---|
| 984 | note = "[Online; accessed 25-August-2022]"
|
|---|
| 985 | }
|
|---|
| 986 |
|
|---|
| 987 | @misc{go:safepoints,
|
|---|
| 988 | author = "The Go Programming Language",
|
|---|
| 989 | title = "src/runtime/preempt.go",
|
|---|
| 990 | howpublished = {\href{https://go.dev/src/runtime/preempt.go}},
|
|---|
| 991 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 992 | }
|
|---|
| 993 |
|
|---|
| 994 | @misc{go:cgo,
|
|---|
| 995 | author = "The Go Programming Language",
|
|---|
| 996 | title = "cgo",
|
|---|
| 997 | howpublished = {\href{https://pkg.go.dev/cmd/cgo}},
|
|---|
| 998 | note = "[Online; accessed 5-August-2022]"
|
|---|
| 999 | }
|
|---|
| 1000 |
|
|---|
| 1001 | @article{reese2008nginx,
|
|---|
| 1002 | title = {NGINX: the high-performance web server and reverse proxy},
|
|---|
| 1003 | author = {Reese, Will},
|
|---|
| 1004 | journal = {Linux Journal},
|
|---|
| 1005 | volume = {2008},
|
|---|
| 1006 | number = {173},
|
|---|
| 1007 | pages = {2},
|
|---|
| 1008 | year = {2008},
|
|---|
| 1009 | publisher = {Belltown Media}
|
|---|
| 1010 | }
|
|---|
| 1011 |
|
|---|
| 1012 | @phdthesis{Harji10,
|
|---|
| 1013 | author = {Ashif Harji},
|
|---|
| 1014 | title = {Performance Comparison of Uniprocessor and Multiprocessor Web Server Architectures},
|
|---|
| 1015 | school = {University of Waterloo},
|
|---|
| 1016 | year = 2010,
|
|---|
| 1017 | month = feb,
|
|---|
| 1018 | address = {Waterloo, Ontario, Canada, N2L 3G1},
|
|---|
| 1019 | note = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/\-10012/\-5040/\-1/\-Harji\_thesis.pdf}},
|
|---|
| 1020 | }
|
|---|