Benjamin Gamsa
University of Toronto
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Benjamin Gamsa.
The Journal of Supercomputing | 1995
Ronald C. Unrau; Orran Krieger; Benjamin Gamsa; Michael Stumm
We introduce the concept ofhierarchical clustering as a way to structure shared-memory multiprocessor operating systems for scalability. The concept is based on clustering and hierarchical system design. Hierarchical clustering leads to a modular system, composed of easy-to-design and efficient building blocks. The resulting structure is scalable because it 1) maximizes locality, which is key to good performance in NUMA (non-uniform memory access) systems and 2) provides for concurrency that increases linearly with the number of processors. At the same time, there is tight coupling within a cluster, so the system performs well for local interactions that are expected to constitute the common case. A clustered system can easily be adapted to different hardware configurations and architectures by changing the size of the clusters. We show how this structuring technique is applied to the design of a microkernel-based operating system calledHurricane. This prototype system is the first complete and running implementation of its kind and demonstrates the feasibility of a hierarchically clustered system. We present performance results based on the prototype, demonstrating the characteristics and behavior of a clustered system. In particular, we show how clustering trades off the efficiencies of tight coupling for the advantages of replication, increased locality, and decreased lock contention.
acm sigplan symposium on principles and practice of parallel programming | 1993
Harjinder S. Sandhu; Benjamin Gamsa; Songnian Zhou
The effective management of caches is critical to the performance of applications on shared-memory multiprocessors. In this paper, we discuss a technique for software cache coherence tht is based upon the integration of a program-level abstraction for shared data with software cache management. The program-level abstraction, called Shared Regions, explicitly relates synchronization objects with the data they protect. Cache coherence algorithms are presented which use the information provided by shared region primitives, and ensure that shared regions are always cacheable by the processors accessing them. Measurements and experiments of the Shared Region approach on a shared-memory multiprocessors accessing them. Measurements and experiments of the Shared Region approach on a shared-memory multiprocessor are shown. Comparisons with other software based coherence strategies, including a user-controlled strategy and an operating system-based strategy, show that this approach is able to deliver better performance, with relatively low corresponding overhead and only a small increase in the programming effort. Compared to a compiler-based coherence strategy, the Shared Regions approach still performs better than a compiler that can achieve 90% accuracy in allowing cacheing, as long as the regions are a few hundred bytes or larger, or they are re-used a few times in the cache.
international conference on parallel processing | 1994
Benjamin Gamsa; Orran Krieger; Michael Stumm
We assert that in order to perform well, a shared-memory multiprocessor inter-process communication (IPC) facility must avoid a) accessing any shared data, and b) acquiring any locks. In addition, such a multiprocessor IPC facility must preserve the locality and concurrency of the applications themselves so that the high performance of the IPC facility can be fully exploited. In this paper we describe the design and implementation of a new shared-memory multiprocessor IPC facility that in the common case internally requires no accesses to shared data and no locking. In addition, the model of IPC we support and our implementation ensure that local resources are made available to the server to allow it to exploit any locality and concurrency available in the service. To the best of our knowledge, this is the first IPC subsystem with these attributes. The performance data we present demonstrates that the end-to- end performance of our multiprocessor IPC facility is competitive with the fastest uniprocessor IPC times.
workshop on hot topics in operating systems | 2001
Kevin Hui; Jonathan Appavoo; Robert W. Wisniewski; Marc A. Auslander; David Edelsohn; Benjamin Gamsa; Orran Krieger; Bryan S. Rosenburg; Michael Stumm
Summary form only given. A hot-swappable component is one that can be replaced with a new or different implementation while the system is running and actively using the component. For example, a component of a TCP/IP protocol stack, when hot-swappable, can be replaced (perhaps to handle new denial-of-service attacks or improve performance), without disturbing existing network connections. The capability to swap components offers a number of potential advantages such as: online upgrades for high availability systems, improved performance due to dynamic adaptability and simplified software structures by allowing distinct policy and implementation options to be implemented in separate components (rather than as a single monolithic component) and dynamically swapped as needed. In order to hot-swap a component, it is necessary to (i) instantiate a replacement component; (ii) establish a quiescent state in which the component is temporarily idle; (iii) transfer state from the old component to the new component; (iv) swap the new component for the old; and (v) deallocate the old component.
workshop on hot topics in operating systems | 1997
Marc A. Auslander; H. Franke; Benjamin Gamsa; Orran Krieger; Michael Stumm
There has been a great deal of interest in recent years in developing operating systems that can be customized to meet the performance and functionality needs of particular applications while being extensible to support new policies, new implementations and new interfaces. We describe a structuring technique, called building-block composition, that we are employing for this purpose. The customizability that this technique provides to untrusted applications is, while large, less than that provided by some other techniques. However, it results in a more extensible and maintainable system, is easier for untrusted applications to use, and provides a better foundation for overall improved performance, particularly for multiprocessors.
operating systems design and implementation | 1999
Benjamin Gamsa; Orran Krieger; Jonathan Appavoo; Michael Stumm
Ibm Systems Journal | 2003
Jonathan Appavoo; Kevin Hui; Craig A.N. Soules; Robert W. Wisniewski; Dilma Da Silva; Orran Krieger; Marc A. Auslander; David Edelsohn; Benjamin Gamsa; Gregory R. Ganger; Paul E. McKenney; Michal Ostrowski; Bryan S. Rosenburg; Michael Stumm; Jimi Xenidis
operating systems design and implementation | 1994
Ronald C. Unrau; Orran Krieger; Benjamin Gamsa; Michael Stumm
Ibm Systems Journal | 2003
Jonathan Appavoo; Kevin Hui; Craig A. N. Soules; Robert W. Wisniewski; Dilma Da Silva; Orran Krieger; Marc A. Auslander; David Edelsohn; Benjamin Gamsa; Gregory R. Ganger; Paul E. McKenney; Michal Ostrowski; Bryan S. Rosenburg; Michael Stumm; Jimi Xenidis
Archive | 1995
Benjamin Gamsa; Orran Krieger; Eric W. Parsons; Michael Stumm