Fall 2009 — CSE201 / ECE201 — Computer Architecture — DescriptionCourse Website

I am interested in runtime and operating systems, languages, and processor and memory architecture, with an emphasis on simplifying the development of correct multithreaded applications.

Focus Area: Software Transactional Memory (STM): STM is a promising alternative to locks when writing explicitly parallel programs that share data. There are many open issues in STM, to include language integration, OS support, hardware acceleration, interaction with garbage collection, and nesting. There are also many opportunities to extend and improve upon existing work. An excellent source of information is the Rochester High-Performance Synchronization website.

Focus Area: Speculative Parallelization: While STM is a very promising idea, it does little to help existing software to harness parallel resources. One option in this area is Thread-Level Speculation, which speculatively parallelizes code while preserving sequential semantics. This can be done entirely in software, though it takes clever algorithms and compiler support to achieve low enough overhead.

Other Topics: I am interested in many other areas, to include OS support for explicit and implicit parallelism, the design of parallel allocators and garbage collectors, hardware mechanisms to improve inter-process communication, and the design and implementation of new parallel languages.

If you are a graduate student at Lehigh and you are interested in any of these topics, please get in touch with me immediately so that we can discuss our mutual interests and see if we should start working together.

If you are an undergraduate student at Lehigh and you are interested in any of these topics, please get in touch with me as early as possible during the fall semester. I have a number of research projects that you may be able to get involved in, either as a senior project, as a summer internship, or just for fun. I would also be happy to give advice about pursuing a graduate degree in Computer Science.

If you are not currently at Lehigh, but you would like to perform research in one of these areas while you pursue a PhD in Computer Science, then you should also get in touch with me as early as possible during the fall semester, so that I can advise you about applications.

If you are not currently a student, but you think you might want to go back to school and earn a PhD in Computer Science, then you should get in touch with me even if you have no idea what "parallelism" means. I spent five years in the U.S. Air Force before starting my PhD, and my experiences and opinions may help you decide whether or not to leave the work force to go to grad school. If you are currently active duty military and you are thinking about pursuing a PhD, either through your branch of service or as a civilian, then you will probably find my experiences particularly helpful as you decide on the next phase of your career.

"Fast Software Transactions", by Michael Spear. PhD Thesis, University of Rochester, Jun 2009.

"Reducing Memory Ordering Overheads in Software Transactional Memory", by Michael Spear, Maged Michael, Michael Scott, and Peng Wu. 2009 International Symp. on Code Generation and Optimization (CGO 2009), Mar. 2009.

"Transactional Mutex Locks", by Michael Spear, Arrvindh Shriraman, Luke Dalessandro, and Michael Scott. 4th ACM SIGPLAN Workshop on Transactional Computing (TRANSACT), Feb. 2009.

"Compiler and Runtime Techniques for Software Transactional Memory Optimization", by Peng Wu, Maged Michael, Christoph von Praun, Takuya Nakaike, Rajesh Bordawekar, Harold Cain, Calin Cascaval, Siddhartha Chatterjee, Stefanie Chiras, Rui Hou, Mark Mergen, Xiaowei Shen, Michael Spear, Huayong Wang, and Kun Wang. Concurrency and Computation: Practice and Experience 21(1): 7-23, 2009.

"A Comprehensive Strategy for Contention Management in Software Transactional Memory", by Michael Spear, Luke Dalessandro, Virendra Marathe, and Michael Scott. 14th ACM Symp. on Principles and Practice of Parallel Programming (PPoPP 2009), Feb. 2009.

"Ordering-Based Semantics for Software Transactional Memory", by Michael Spear, Luke Dalessandro, Virendra Marathe, and Michael Scott. 12th International Conference On Principles Of DIstributed Systems (OPODIS 2008), Dec. 2008.

"Implementing and Exploiting Inevitability in Software Transactional Memory", by Michael Spear, Michael Silverman, Luke Dalessandro, Maged Michael, and Michael Scott. 37th International Conference on Parallel Processing (ICPP) , Sep. 2008.

"Scalable Techniques for Transparent Privatization in Software Transactional Memory", by Virendra Marathe, Michael Spear, and Michael Scott. 37th International Conference on Parallel Processing (ICPP) , Sep. 2008.

"Brief Announcement: Transactional Memory Retry Mechanisms", by Michael Spear, Andrew Sveikauskas, and Michael Scott. 27th ACM Symp. on Principles of Distributed Computing (PODC) , Aug. 2008. Extended version available as TR 935, Computer Science Department, University of Rochester, Jun. 2008.

"RingSTM: Scalable Transactions with a Single Atomic Instruction", by Michael Spear, Maged Michael and Christoph von Praun. 20th ACM Symp. on Parallelism in Algorithms and Architectures (SPAA) , Jun. 2008.

"Inevitability Mechanisms for Software Transactional Memory", by Michael Spear, Maged Michael, and Michael Scott. 3rd ACM SIGPLAN Workshop on Transactional Computing (TRANSACT) , Feb. 2008.

"Transaction Safe Nonblocking Data Structures" (brief announcement), by Virendra Marathe, Michael Spear and Michael Scott. 21st Intl. Symp. on Distributed Computing (DISC) , Sept. 2007.

"Delaunay Triangulation with Transactions and Barriers" , by Michael Scott, Michael Spear, Luke Dalessandro, and Virendra Marathe. Benchmarks track, IEEE Intl. Symp. on Workload Characterization (IISWC) , Sept. 2007.

"Capabilities and Limitations of Library-Based Software Transactional Memory in C++" , by Luke Dalessandro, Virendra Marathe, Michael Spear, and Michael Scott. 2nd ACM SIGPLAN Workshop on Transactional Computing (TRANSACT) , Aug. 2007.

"Privatization Techniques for Software Transactional Memory" (brief announcement), by Michael Spear, Virendra Marathe, Luke Dalessandro, and Michael Scott. 26th ACM Symp. on Principles of Distributed Computing (PODC) , Aug. 2007. Extended version available as TR 915 , Computer Science Department, University of Rochester, Feb. 2007.

"Transactions and Privatization in Delaunay Triangulation" (brief announcement), by Michael Scott, Michael Spear, Luke Dalessandro, and Virendra Marathe. 26th ACM Symp. on Principles of Distributed Computing (PODC) , Aug. 2007.

"An Integrated Hardware-Software Aproach to Flexible Transactional Memory" , by Arrvindh Shriraman, Michael Spear, Hemayet Hossain, Virendra Marathe, Sandhya Dwarkadas, and Michael Scott. 34th Intl. Symp. on Computer Architecture (ISCA) , Jun. 2007.

"Nonblocking Transactions Without Indirection Using Alert-on-Update" , by Michael Spear, Arrvindh Shriraman, Luke Dalessandro, Sandhya Dwarkadas, and Michael Scott. 19th ACM Symp. on Parallelism in Algorithms and Architectures (SPAA) , Jun. 2007.

"Alert-on-Update: A Communication Aid for Shared Memory Multiprocessors (poster paper)" , by Michael Spear, Arrvindh Shriraman, Hemayet Hossain, Sandhya Dwarkadas, and Michael Scott. Twelfth ACM Symp. on Principles and Practice of Parallel Programming (PPoPP) , Mar. 2007.

"Conflict Detection and Validation Strategies for Software Transactional Memory" , by Michael Spear, Virendra Marathe, William Scherer III, and Michael Scott. 20th Intl. Symp. on Distributed Computing (DISC) , Sept. 2006.

"Lowering the Overhead of Nonblocking Software Transactional Memory" , by Virendra Marathe, Michael Spear, Christopher Heriot, Athul Acharya, David Eisenstat, William Scherer III, and Michael Scott. Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT) , June 2006. Earlier, extended version available as TR 893 , Computer Science Department, University of Rochester, Mar. 2006.

"Hardware Acceleration of Software Transactional Memory" , by Arrvindh Shriraman, Virendra Marathe, Sandhya Dwarkadas, Michael Scott, David Eisenstat, Christopher Heriot, William Scherer III, and Michael Spear. Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT) , June 2006.

"Solving the Starting Problem: Device Drivers as Self-Describing Artifacts" , by Michael Spear, Tom Roeder, Orion Hodson, Galen Hunt, and Steven Levi. EuroSys2006 , April 2006.