Download:
by Nickolai Zeldovich, Er Yip, Frank Dabek, Robert T. Morris, David Mazières, Frans Kaashoek
http://www.scs.cs.nyu.edu/~dm/papers/zeldovich:async-mp.pdf
Add To MetaCart
Abstract:
This paper presents a new asynchronous programming library (libasync-smp) that allows event-driven applications to take advantage of multiprocessors by running code for event handlers in parallel. To control the concurrency between events, the programmer can specify a color for each event: events with the same color (the default case) are handled serially; events with different colors can be handled in parallel. The programmer can incrementally expose parallelism in existing event-driven applications by assigning different colors to computationally-intensive events that do not share mutable state. An evaluation of libasync-smp demonstrates that applications achieve multiprocessor speedup with little programming effort. As an example, parallelizing the cryptography in the SFS file server required about 90 lines of changed code in two modules, out of a total of about 12,000 lines. Multiple clients were able to read large cached files from the libasync-smp SFS server running on a 4-CPU machine 2.5 times as fast as from an unmodified uniprocessor SFS server on one CPU. Applications without computationally intensive tasks also benefit: an event-driven Web server achieves 1.5 speedup on four CPUs with multiple clients reading small cached files. 1
Citations
|
2113
|
Chord: A scalable peer-to-peer lookup service for internet applications
– Stoica, Morris, et al.
|
|
581
|
Wide-area cooperative storage with CFS
– Dabek, Kaashoek, et al.
- 2001
|
|
409
|
Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism
– Anderson, Bershad, et al.
- 1992
|
|
236
|
SEDA: An architecture for wellconditioned, scalable internet services
– Welsh, Culler, et al.
- 2001
|
|
199
|
Flash: An efficient and portable Web server
– Pai, Druschel, et al.
- 1999
|
|
145
|
Separating key management from file system security
– Mazières, Kaminsky, et al.
- 1999
|
|
119
|
Fast and secure distributed read-only file system
– Fu, Kaashoek, et al.
|
|
114
|
Using Continuations to Implement Thread Management and Communication in Operating Systems
– Draves, Bershad, et al.
- 1991
|
|
107
|
On the Duality of Operating System Structures
– Lauer, Needham
- 1979
|
|
95
|
A toolkit for user-level file systems
– Mazieres
- 2001
|
|
93
|
An Introduction to Programming with Threads
– Birrell
- 1989
|
|
72
|
Haskell—The Craft of Functional Programming
– Thompson
- 1999
|
|
60
|
Using cohort scheduling to enhance server performance
– Larus, Parkes
- 2002
|
|
46
|
Executing functional programs on a virtual tree of processors
– Burton, Sleep
- 1981
|
|
34
|
Cooperative task management without manual stack management or, event-driven programming is not the opposite of threaded programming
– Adya, Howell, et al.
- 2002
|
|
34
|
Lambda - The Ultimate Imperative
– Steele, Sussman
- 1976
|
|
29
|
Interface and execution models in the Fluke kernel
– Ford, Hibler, et al.
- 1999
|
|
28
|
Understanding the Linux Kernel. O’Reilly
– Bovet, Cesati
- 2002
|
|
18
|
The Convoy Phenomenon
– Blasgen, Gray, et al.
- 1979
|
|
8
|
threads are a bad idea (for most purposes). Invited talk at the 1996 USENIX technical conference
– Ousterhout
- 1996
|
|
7
|
Experiences Implementing BIND, A Distributed Name Server for the DARPA Internet
– Dunlap, Bloom
- 1986
|
|
5
|
Simple and general statistical profiling with pct
– Blake, Bauer
- 2002
|