Fall 2011 — CSE375 / CSE498 — Hardware & Software Topics in Parallel Computing (All materials on CourseSite)
Fall 2011 — Engr98 — Introduction to Engineering Practice (Computer Science / Computer Engineering Project) (All materials on Internal PACLab Wiki)


Spring 2011 — CSE 403 — Theory of Operating Systems (All materials on CourseSite)
Fall 2010 — CSE201 / ECE201 — Computer Architecture (All materials on CourseSite)


Spring 2010 — CSE375 / CSE498 — Hardware & Software Topics in Parallel Computing
Fall 2009 — CSE201 / ECE201 — Computer Architecture

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. More recent code is available through the RSTM Google Code site.

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.

"Mindicator: A Nonblocking Set Optimized for Querying the Minimum Value", by Yujie Liu and Michael Spear. Technical Report LU-CSE-11-001, Department of Computer Science and Engineering, Lehigh University, May 2011.

"Brief Announcement: A Nonblocking Set Optimized for Querying the Minimum Value", by Yujie Liu and Michael Spear. 30th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC), Jun 2011.

"Toxic Transactions", by Yujie Liu and Michael Spear. 6th ACM SIGPLAN Workshop on Transactional Computing (TRANSACT), Jun 2011.

"Towards Applying Machine Learning to Adaptive Transactional Memory", by Qingping Wang, Sameer Kulkarni, John Cavazos, and Michael Spear. 6th ACM SIGPLAN Workshop on Transactional Computing (TRANSACT), Jun 2011.

"Hybrid NOrec: A Case Study in the Effectiveness of Best Effort Hardware Transactional Memory", by Luke Dalessandro, Francois Carouge, Sean White, Yossi Lev, Mark Moir, Michael Scott, and Michael Spear. ASPLOS 2011, Newport Beach, CA, Mar 2011.

"On Reconciling Hardware Atomicity, Memory Models, and __tm_waiver", by Sean White and Michael Spear. 2nd Workshop on the Theory of Transactional Memory (WTTM), Cambridge, Mass, Sep. 2010.

"A Scalable Lock-Free Universal Construction with Best Effort Transactional Hardware", by Francois Carouge and Michael Spear. DISC 2010, Cambridge, Mass, Sep. 2010.

"Transactions as the Foundation of a Memory Consistency Model", by Luke Dalessandro, Michael Scott, and Michael Spear. DISC 2010, Cambridge, Mass, Sep. 2010.

"Transactional Mutex Locks", by Luke Dalessandro, Dave Dice, Michael Scott, Nir Shavit, and Michael Spear. EuroPar 2010, Naples, Italy, Aug. 2010.

"Lightweight, Robust Adaptivity for Software Transactional Memory", by Michael Spear. 22nd ACM Symp. on Parallelism in Algorithms and Architectures (SPAA), Santorini, Greece, June, 2010.
Source Code

"Hybrid TM Using NOrec STM (POSTER)", by Luke Dalessandro, Michael Spear, and Michael Scott. 15th International Conference on Architectural Support for Programming Languages and Operating Systems, Pittsburgh, PA, March 2010.

"NOrec: Streamlining STM by Abolishing Ownership Records", by Luke Dalessandro, Michael Spear, and Michael Scott. 15th ACM Symp. on Principles and Practice of Parallel Programming (PPoPP), Bangalore, India, Jan. 2010.

"Fastpath Speculative Parallelization", by Michael Spear, Kirk Kelsey, Tongxin Bai, Luke Dalessandro, Michael Scott, Chen Ding, and Peng. Wu. 22nd Intl. Workshop on Languages and Compilers for Parallel Computing (LCPC), Newark, DE, Oct. 2009.

"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.