Marek Olszewski
Education
Massachusetts Institute of Technology (Sept 2007 - Present)
Cambridge, MA
PhD - Computer Science, expected in 2012.
University of Toronto (Sept 2005 - Sept 2007)
Toronto, ON
MASc - Computer Engineering, September 2007, for dissertation titled: A Dynamic Instrumentation Approach to Software Transactional Memory. Received a 4.0 GPA.
University of Toronto (Sept 2001 - May 2005)
Toronto, ON
BASc - Computer Engineering with honors, May 2005. Honors standing for all semesters with final cumulative GPA of 3.82/4.00 (3.94/4.00 for core courses only). Certificate in Preventive Engineering and Social Development awarded by the Center for Technology and Social Development.
Work Experience
Massachusetts Institute of Technology (Sept 2007 - Present)
Cambridge, MA
Research Assistant to Prof. Saman Amarasinghe in the Commit Research Group. Developing novel algorithms aimed at simplifying the task of programming, debugging and testing parallel applications by making them run deterministically. Created Kendo, a novel deterministic locking library that efficiently enforces deterministic execution of lock-based parallel applications on today's commodity chip-multiprocessors.
Teaching Assistant for Performance Engineering of Software Systems (6.197). Developed new course material for the first offering of the class.
Microsoft Research (June 2010 - Sept 2010)
Redmond, WA
Research Intern with the Software Reliability Research Group. Created a debugging tool that searches for race bugs in javascript web applications. The tool captures all sources of non-determinism in web applications allowing it to explore an application's state space deterministically.
Sun Microsystems Laboratories (June 2009 - Sept 2009)
Burlington, MA
Graduate Student Research Intern with the Scalable Synchronization Research Group. Created a version of the SkySTM software transactional memory system that uses Rock's hardware transactional memory (HTM) constructs to accelerate the STM. Additionally wrote a source to source compiler that optimizes Rock HTM transactions so that they execute with fewer transaction aborts.
Sun Microsystems Laboratories (June 2008 - Sept 2008)
Burlington, MA
Graduate Student Research Intern with the Scalable Synchronization Research Group. Created a number of novel reader-writer lock algorithms that are first to scale near-perfectly under read-only workloads without introducing additional space and time overhead when there is little contention. Contributed to SkySTM, a scalable software transactional memory system that efficiently supports implicit privatization.
Google (June 2007 - Aug 2007)
Kirkland, WA
Software Engineer Intern in the Google Video Ads group. Focused on improving targeting of contextual video advertisements for text and in-stream video advertisements. Wrote large-scale distributed programs to examine large amounts of data from various web-based sources to extract information describing the targeted videos.
University of Toronto (Sept 2005 - Sept 2007)
Toronto, ON
Research Assistant to Prof. J. Gregory Steffan in the Department of Electrical and Computer Engineering. Created Judo, a fast and lightweight dynamic binary rewriting system for the x86 ISA. Developed JIFL (JIT Instrumentation Framework for Linux), a tool that allows kernel developers to rapidly debug, profile, and monitor live kernel code through efficient instrumentation performed by a kernel version of Judo. Developed JudoSTM, a dynamic binary rewriting based software transactional memory system. JudoSTM supports arbitrary C and C++ code within transactions, as well as calls to shared libraries and system calls.
Teaching Assistant for Programming Fundamentals, Computer Organization (engsci/enriched offering), and Computer Systems Programming (Head TA, assisted in designing the course).
Microsoft (June - Sept 2005)
Redmond, WA
Intern Software Development Engineer in the Base Class Library Team of the Microsoft .NET Framework. Independently designed and implemented API specifications for new inter-process communication classes. Led numerous group-wide meetings aimed at discussing and obtaining feedback on the design. The work resulted in a patent.
Microsoft (June - Sept 2004)
Redmond, WA
Intern Software Development Engineer in the Common Language Runtime (Microsoft .NET Framework) Port Team. Primarily focused on improving 64 bit performance. Contributed to several components of the runtime, yielding performance increases of up to 45% on certain managed benchmarks. Also ported a working-set analysis tool to the AMD64 architecture.
University of Toronto (May - Aug 2003)
Toronto, ON
Undergraduate Research Assistant to Prof. Michael Voss of the Runtime Optimization for High-Performance Computing Group, funded by the McAllister Summer Fellowship. Developed a framework for automatic install-time construction of empirically optimized parallel sorting algorithms.
Publications
Aikido: Accelerating Shared Data Dynamic Analyses
Marek Olszewski, Qin Zhao, David Koh, Jason Ansel and Saman Amarasinghe
To appear in the proceedings of ASPLOS`12: The International Conference on Architectural Support for Programming Languages and Operating Systems, London UK, March, 2012.
Scaling Deterministic Multithreading
Marek Olszewski, Jason Ansel, and Saman Amarasinghe.
In Proceeding of the 2nd Workshop on Determinism and Correctness in Parallel Programming, WODET '11, Newport Beach, CA 2011.
Language and Compiler Support for Auto-Tuning Variable-Accuracy Algorithms
Jason Ansel, Yee Lok Won, Cy Chan, Marek Olszewski, Alan Edelman, and Saman Amarasinghe.
In the proceedings of CGO`11: The International Symposium on Code Generation and Optimization, Chamonix, France. April, 2010.
Simplifying Concurrent Algorithms by Exploiting Hardware Transactional Memory
Dave Dice, Yossi Lev, Virendra J. Marathe, Mark Moir, Dan Nussbaum, and Marek Olszewski.
In the proceedings of SPAA`10: The 22nd ACM Symposium on Parallelism in Algorithms and Architectures, Santorini, Greece, June, 2010.
Early Experience with a Commercial Hardware Transactional Memory Implementation
David Dice, Yossi Lev, Mark Moir, Daniel Nussbaum and Marek Olszewski
Sun Microsystems Technical Report, TR-2009-180, October, 2009.
Scalable Reader-Writer Locks
Yossi Lev, Victor Luchangco and Marek Olszewski
In the proceedings of SPAA`09: The 21st ACM Symposium on Parallelism in Algorithms and Architectures, Calgary, Canada, August, 2009.
PetaBricks: A Language and Compiler for Algorithmic Choice
Jason Ansel, Cy Chan, Yee Lok Wong, Marek Olszewski, Qin Zhao, Alan Edelman and Saman Amarasinghe
In the proceedings of PLDI`09: The ACM SIGPLAN '98 Conference on Programming Language Design and Implementation, Dublin, Ireland, June, 2009.
Kendo: Efficient Deterministic Multithreading in Software
Marek Olszewski, Jason Ansel and Saman Amarasinghe
In the proceedings of ASPLOS`09: The International Conference on Architectural Support for Programming Languages and Operating Systems, Washington DC, March, 2009.
Anatomy of a Scalable Software Transactional Memory
Yossi Lev, Victor Luchangco, Virendra J. Marathe, Mark Moir, Dan Nussbaum and Marek Olszewski
In the proceedings of TRANSACT`09: The ACM SIGPLAN Workshop on Transactional Computing Raleigh NC, February 15, 2009.
A Dynamic Instrumentation Approach to Software Transactional Memory
Marek Olszewski
M.A.Sc. Thesis, University of Toronto, Toronto ON, September, 2007.
JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory
Marek Olszewski, Jeremy Cutler and J. Gregory Steffan
In the proceedings of PACT`07: The International Conference on Parallel Architectures and Compilation Techniques, Brasov, Romania, September, 2007.
JIT Instrumentation - A Novel Approach To Dynamically Instrument Operating Systems
Marek Olszewski, Keir Mierle, Adam Czajkowski and Angela Demke Brown
In the proceedings of ACM SIGOPS EuroSys`07, Lisbon, Portugal, March 2007.
An Install-Time System for the Automatic Generation of Optimized Parallel Sorting Algorithms
Marek Olszewski and Michael Voss
In the proceedings of PDPTA`04: The International Conference on Parallel and Distributed Processing Techniques and Applications, Las Vegas NV, June 2004.
Patents
System and method for performing dynamic mixed mode read validation in a software transactional memory
Yosef Lev, Marek Olszewski, Mark S. Moir
US Patent 20110125973, May 2011.
Scalable Reader-Writer Lock
Victor M. Luchangco, Yosef Lev, Marek Olszewski
US Patent 20100241774, Sept 2010.
Conditioned Scalable Non-Zero Indicator
Yosef Lev, Marek Olszewski
US Patent 20100042997, Feb 2010.
Unmanaged Memory Accessor
Ramasamy Krishnaswamy, Marek Olszewski, Anthony J. Moore, Brian Grunkemeyer, Kim Hamilton
US Patent 20070283117, June 2007.
Presentations
Kendo: Efficient Deterministic Multithreading
Fellowship Talk. Facebook. Palo Alto CA, December 2011.
Outfoxing the Mammoths
PLDI FIT Presentation. PLDI`10: The ACM SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Canada, June, 2010. [Best Talk Award]
Scalable Reader-Writer Locks
Conference Presentation. SPAA`09: Symposium on Parallelism in Algorithms and Architectures, Calgary, Canada, August, 2009.
Deterministic Multithreading
Invited Talk (Hosted by Mark Moir). Sun Microsystems Labs. Burlington MA, April 2009.
Kendo: Efficient Deterministic Multithreading in Software
Conference Presentation. ASPLOS`09: The International Conference on Architectural Support for Programming Languages and Operating Systems, Washington DC, March, 2009.
JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory
Invited Talk (Hosted by Mark Moir). Sun Microsystems Labs. Burlington MA, February 2008.
JIT Instrumentation - A Novel Approach To Dynamically Instrument Operating Systems
Invited Talk (Hosted by Robert Cohn). Intel Massachusetts. Hudson MA, October 2007.
JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory
Conference Presentation. PACT`07: The International Conference on Parallel Architectures and Compilation Techniques, Brasov, Romania, September, 2007.
JIT Instrumentation - A Novel Approach To Dynamically Instrument Operating Systems
Invited Talk (Hosted by Todd Mowry). Intel Research Pittsburgh. Pittsburgh PA, April 2007.
Dynamic x86 Rewriting and Some Applications: Instrumentation, Dynamic Multicore Prefetching, and Software Transactional Memory
Invited Talk. IBM Toronto. Markham ON, March 2007.
JIT Instrumentation - A Novel Approach To Dynamically Instrument Operating Systems
Conference Presentation. EuroSys`07, Lisbon, Portugal, March 2007.
Dynamically Instrumenting Operating Systems with JIT Recompilation
Work-in-Progress Presentation. OSDI`06: The seventh USENIX Symposium on Operating Systems Design and Implementation. Seattle WA, November 2006.
Academic Responsibilities
External Reviewer: USNIX ATC`11, PLDI`11, PLDI`10, ASPLOS`10, HotPar`09, CGO`09, PLDI`08
Academic Awards
Facebook Fellowship (2011)
Edward S. Rogers Graduate Scholarship (March 2007) Graduate research scholarship.
University of Toronto Fellowship (Sept 2005) Graduate research fellowship.
Whealey Joseph Scholarship (Sept 2004) Merit-based scholarship.
University of Toronto Scholarship (June 2004) Merit-based scholarship.
McAllister Summer Fellowship (May 2003) Undergraduate summer research fellowship.
First Step to a Nobel Prize in Physics International Physics Research Essay Competition (1999), Honorable Mention for International Baccalaureate extended essay, The Effect of Moisture on the Tensile Strength of Paper.
Skills
Languages: Bilingual in English and Polish; conversational French. Computers: Extensive knowledge of Windows and Linux operating systems. Fluent in C, C++, C#, Java, Python, Javascript, Pascal, Scheme, Prolog, Perl, Basic, and assembly.
Interests and Background
Interests: Hiking and photography. Sports: Rock climbing, volleyball, mountain biking, and sailing.