19 citations found. Retrieving documents...
James Larus and Michael Parkes. "Using Cohort Scheduling to Enhance Server Performance" Microsoft Research Technical Report MSR-TR-2001-39, March 2001.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Multiprocessor Support for Event-Driven Programs - Zeldovich, Yip, Dabek.. (2003)   (2 citations)  (Correct)

....the programmer may need to synchronize, while libasync smp tries to preserve the serial callback execution model. Cohort scheduling organizes threaded computation into stages in order to increase performance by increasing cache locality, reducing TLB pressure, and reducing branch mispredicts [14]. The staged computation model used by cohort scheduling is more general than the colored callback model presented here. However, the partitioned stage scheduling policy is somewhat analagous to coloring callbacks for parallel execution (the key corresponds to a callback color) Like SEDA, cohort ....

LARUS, J., AND PARKES, M. Using cohort scheduling to enhance server performance. In Proc. Usenix Technical Conference (June 2002).


Affinity Scheduling in Staged Server Architectures - Harizopoulos, Ailamaki (2002)   (Correct)

....modules, forcing module 2 s content to be repeatedly evicted from and restored into the memory hierarchy. As future systems are expected to have deeper memory hierarchies, a more adaptive programming solution becomes necessary to best utilize the available memory resources. The staged server [1] is a programming paradigm that divides the computation that a server performs in response to a request into stages and schedules request execution within one stage at a time, to improve locality. The staged server defers executing a stage until its queue accumulates operands, then it processes ....

....to star vation, since a continuous stream of queries might cause the server to work indefinitely on module 1. While the analytic workloads we used didn t produce this behavior, the use of a time out mechanism is necessary in a real implementation. This policy is similar to the one described in [1] (when applied to our framework) C gated (Cutoff gated) One possible issue with the two previous policies is that a very large query can essentially block the way to other, smaller ones, and thus lead momentarily to higher response times. With an exponential distribution of query sizes, this ....

[Article contains additional citation context not shown here]

James Larus and Michael Parkes. "Using Cohort Scheduling to Enhance Server Performance" Microsoft Research Technical Report MSR-TR-2001-39, March 2001.


Improving Server Software Support for Simultaneous.. - McDowell, Eggers..   (Correct)

....threads (because they share memory) and enables software optimizations, such as a thread shared software result cache. More recently, researchers have proposed using an event based software architecture for server systems, both for improved robustness and fairness [46] and for improved performance [27]. Like a multithreaded software architecture, these event based approaches use a shared address space, but decompose each request into a number of events that are multiplexed among a small number of threads to minimize context switching costs. This decomposition exposes similar computations ....

....to minimize context switching costs. This decomposition exposes similar computations across multiple client requests (threads) allowing the construction of intelligent policies that improve locality and performance by scheduling related events both consecutively and, on an SMT, simultaneously [27, 32]. Consequently, unlike the previous two approaches, the threads in an event based server have a high degree of interaction. Choosing the appropriate thread model for a server is a complex decision influenced by many factors including performance constraints, software maintainability, and the ....

J. R. Larus and M. Parkes. Using cohort-scheduling to enhance server performance. In USENIX Annual Technical Conference, 2002.


A Case for Staged Database Systems - Harizopoulos, Ailamaki (2003)   (1 citation)  (Correct)

....locality in the caches. For instance, when running workloads consisting of multiple short transactions, most misses occur due to conflicts between threads whose working sets replace each other in the cache [JK99] RB 95] Recently, OS research introduced the staged server programming paradigm [LP02], that divides computation into stages and schedules requests within each stage. The CPU processes the entire stage queue while traversing the stages going first forward and then backward. The authors demonstrate that their approach improves the performance of a simple web server and a ....

....performance caused by an inefficient thread allocation mechanism. Looking from a software engineering point of view, years of DBMS software development have lead to monolithic, complicated implementations that are difficult to extend, tune and evolve. Based on fresh ideas from the OS community [LP02] [WCB01] and applying them in the complex context of a DBMS server, we suggested a departure in the way database software is built. Our proposal for a staged, datacentric DBMS design remedies the weaknesses of modern commercial database systems by providing solutions (a) at the hardware level: it ....

J. R. Larus and M. Parkes. "Using Cohort Scheduling to Enhance Server Performance." In Proc. USENIX, 2002.


Cooperative Task Management without Manual Stack.. - Adya, Howell.. (2002)   (19 citations)  (Correct)

....the scheduler is given precisely the same opportunities to schedule as in eventdriven code; the only difference is whether stack state is kept on stacks or in chains of continuations on the heap. For the classes of applications we reference here, processing is often partitioned into stages [WCB01, LP01]. The partitioning of system state into disjoint stages is a form of data partitioning, which addresses concurrency at the coarse grain. Within each stage, the designer of such a system must still choose a form of conflict management, task management, and stack management. Careful construction of ....

J. Larus and M. Parkes. Using Cohort Scheduling to Enhance Server Performance. Technical Report MSR-TR-2001-39, Microsoft Research, March 2001.


An Architecture for Highly Concurrent, Well-Conditioned Internet.. - Welsh   (Correct)

....policies. In Click, there are effectively no long blocking operations, so asynchrony is used only for decoupling the execution of multiple packet processing components; for example, a queue is often used for temporary packet storage before an outgoing network interface. StagedServer [80] also makes use of modules communicating using explicit event queues. Like SEDA, this work introduces the notion of a stage as the unit of request processing within 31 a server application. StagedServer s goal is to maximize processor cache locality by carefully scheduling the order in which ....

....which can lead to higher performance. For example, if the event handler is able to amortize an expensive operation across multiple events, throughput can be increased. Likewise, data and cache locality may benefit if the processing for multiple events shares common code and data structures [80]. 2.2 Event handlers In SEDA, a service designer implements an event handler for each stage, which represents the core service processing logic for that stage. An event handler is simply a function that accepts a batch of events as input, processes those events, and (optionally) enqueues ....

[Article contains additional citation context not shown here]

J. Larus and M. Parkes. Using cohort scheduling to enhance server performance. In Proceedings of the 2002.


Event-driven Programming for Robust Software - Nickolai (2002)   (4 citations)  (Correct)

.... full pages for thread stacks also causes additional TLB pressure and cache pressure, particularly with direct mapped caches [4] Cohort scheduling attempts to increase data and instruction locality in threaded programs by running related computations, organized as stages, consecutively [7]. Robust software must gracefully handle overload conditions. Both Pai et al. 12] and Welsh et al. 14] explore the advantages of event driven programs under high load. Welsh demonstrates that the throughput of a simple server using kernel supported threads degrades rapidly as many concurrent ....

LARUS, J. R., AND PARKES, M. Using cohort scheduling to enhance server performance. In Proc. Usenix Technical Conference (2002).


A Behavioral Module System for the Pi-Calculus - Rajamani, Rehof (2001)   (10 citations)  (Correct)

.... : System = StageA) j StageB k j Sem k Fig. 3. A staged server in calculus and its process types Sender(msg ,ack ) and Receiver(msg ,ack ) we can use our assume guarantee rule to mitigate the state explosion that happens inside the type checker. Figure 3 shows a staged server system [13] with two stages. This example was inspired from a web crawler example in [14] StageA receives inputs from the user and then passes each request to StageB . When StageB responds to the request, the response is rst received by StageA and then passed on to the user. The system comprises of an ....

J. R. Larus and M. Parkes. Using cohort scheduling to enhance server performance. Technical Report MSR-TR-


SEDA: An Architecture for Well-Conditioned, Scalable.. - Welsh, Culler, Brewer (2001)   (15 citations)  (Correct)

....queue scanner [35] are other examples of systems that make use of structured event queues and limited numbers of threads to manage concurrency. In each of these systems, the use of an event queue decouples the execution of two components, which improves modularity and robustness. StagedServer [31] is another system that makes use of modules communicating using explicit event queues. In this case, the goal is to maximize processor cache locality by carefully scheduling threads and events within each module. By aggregating the execution of multiple similar events within a queue, locality is ....

....the Web server described in Section 5.1; the controller operation is discussed in more detail in Section 4.2. The second is the batching controller, which adjusts the number of events processed by each invocation of the event handler within a stage (the batching factor) It has been observed [31] that processing many events at once increases throughput, as cache locality and task aggregation can be performed. However, a large batching factor can also increase response time. The controller attempts to trade off these effects by searching for the smallest batching factor that sustains high ....

J. Larus and M. Parkes. Using cohort scheduling to enhance server performance. Technical Report MSR-TR-2001-39, Microsoft Research, March 2001.


Types as Models: Model Checking Message-Passing Programs - Chaki, Rajamani, Rehof (2001)   (35 citations)  (Correct)

.... RBegSthr; pi ( r : ch(num) p : ch(num) RBegSthr; pi j Provhr; pi Prov PBegSt hr; pi Figure 15: Subtyping obligations for the SIS protocol 6.2 Webserver We model a le reader from the pipelined implementation of a webserver. This example originated from the StagedServer [19] project at MSR. The le is logically divided into a number of blocks. The task of reading each block from the disk and transmitting it over the network is handled by separate processes. The blocks can be read in parallel from the disk but must be transmitted in proper sequence. The Property LTL ....

J. R. Larus and M. Parkes. Using cohort scheduling to enhance server performance. Technical Report MSRTR -2001-39, Microsoft Research, 2001.


Using Cohort Scheduling to Enhance Server Performance - Larus, Parkes (2002)   (18 citations)  Self-citation (Larus Parkes)   (Correct)

....files, using scatter gather I O, or employing various http and TCP specific optimizations. StagedServer is a simpler library that provides a programming model that directly enhances program locality and performance. An earlier version of this work was published as a short, extended abstract [21]. 7 Conclusion Servers are commonly structured as a collection of parallel tasks, each of which executes all the code necessary to process a request. Threads, processes, or event handlers underlie the software architecture of most servers. Unfortunately, this software architecture can interact ....

James R Larus and Michael Parkes, "Using Cohort Scheduling to Enhance Server Performance (Extended Abstract)," in Proceedings of the Workshop on Optimization of Middleware and Distributed Systems. Snowbird, UT, June 2001, pp. 182-187.


School of Computer Science - Carnegie Mellon University (1992)   (4 citations)  (Correct)

No context found.

James Larus and Michael Parkes. "Using Cohort Scheduling to Enhance Server Performance" Microsoft Research Technical Report MSR-TR-2001-39, March 2001.


Flux: A Language for Programming High-Performance Servers - Brendan Burns Kevin   (Correct)

No context found.

J. R. Larus and M. Parkes. Using cohortscheduling to enhance server performance. In Proceedings of the General Track: 2002.


Adaptive Processor Allocation in Packet Processing Systems - Upendra   (Correct)

No context found.

J.Larus and M. Parkes. Using Cohort Scheduling to Enhance Server Performance. In Proceedings of USENIX Annual Technical Conference, 2002.


Why Events Are a Bad Idea (for High-Concurrency Servers) - von Behren, Condit, Brewer (2003)   (1 citation)  (Correct)

No context found.

J. Larus and M. Parkes. Using cohort scheduling to enhance server performance. Technical Report MSR-TR-2001-39, Microsoft Research, March 2001.


Why Events Are a Bad Idea (for High-Concurrency Servers) - von Behren, Condit, Brewer (2003)   (1 citation)  (Correct)

No context found.

J. Larus and M. Parkes. Using cohort scheduling to enhance server performance. Technical Report MSR-TR-2001-39, Microsoft Research, March 2001.


A case for Virtual Channel Processors - McAuley, Neugebauer (2003)   (2 citations)  (Correct)

No context found.

J. Larus and M. Parkes. Using Cohort Scheduling to Enhance Server Performance. In Proc. of the Usenix Annual Technical Conference, pages 103--114, Monterey, CA, June 2002.


CS270 Course Project - Resource Constrained Cache-Anity   (Correct)

No context found.

Larus, J. R., and Parkes, M. Using cohort scheduling to enhance server performance. In Usenix Annual Technical Conference (June 2002).


Efficient Use of Memory Bandwidth to Improve Network.. - Hasan, Chandra.. (2003)   (1 citation)  (Correct)

No context found.

James Larus and Michael Parkes. Using cohort scheduling to enhance server performance. In Proceedings of the Usenix Technical Conference, June 2002.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC