Kathryn S. McKinley

Last updated
Kathryn S. McKinley
Kathryn McKinley.jpg
Kathryn S. McKinley
Born (1962-01-10) January 10, 1962 (age 62)
NationalityAmerican
Alma mater Rice University
Known forLocality & Parallelism Optimizations

Hoard memory allocator
DaCapo Java Benchmarks
Immix Mark-Region Garbage Collector

TRIPS compiler

Contents

Awards ACM Fellow (2008)
IEEE Fellow (2011)
Scientific career
Fields Computer Science
Institutions Microsoft
The University of Texas at Austin
University of Massachusetts Amherst
Doctoral advisor Ken Kennedy
Website www.cs.utexas.edu/~mckinley/

Kathryn S. McKinley is an American computer scientist noted for her research on compilers, runtime systems, and computer architecture. She is also known for her leadership in broadening participation in computing. McKinley was co-chair of CRA-W from 2011 to 2014.

Biography

McKinley received a B.A. in computer science and engineering from Rice University in 1985. She went on to earn an M.S. in computer science from Rice University in 1990 and then a Ph.D in computer science from Rice University in 1992.

She joined the Department of Computer Science at the University of Massachusetts Amherst as an assistant professor in 1993. While there she was promoted to associate professor in 1999. In 2001, she moved to the University of Texas at Austin as an associate professor. In 2005, she was promoted to professor and in 2010 to endowed professor in computer science. In 2011 she moved to Microsoft Research as a Principal Researcher. She is currently a Distinguished Software Engineer at Google. [1]

McKinley is married to Scotty Strahan; they have three boys: Cooper, Dylan, and Wyatt Strahan.

Career

She and her colleagues introduced the first general purpose model and optimization framework based on dependences and cache line reuse for improving the cache locality of dense matrix algorithms using loop permutation, loop reversal, fusion, and distribution. [2] McKinley and her advisor, Ken Kennedy showed how to use this model to introduce parallelism with locality and eliminate false sharing. [3] This work was selected in 2014 for the ICS 25th Anniversary Volume.

McKinley, her PhD student Emery D. Berger, and colleagues introduced the Hoard C/C++ Memory Allocator, which is widely used by applications and in Apple's OS X. Hoard limits contention caused when multiple threads allocate or free memory at the same time and avoids false sharing due to memory allocation. At the same time, Hoard enforces provable bounds on the total amount of fragmentation. [4]

McKinley was a leader of the DaCapo research group, which spanned nine institutions and was funded by an NSF ITR (2000–2006). This project produced a number of innovative virtual machine technologies, open-source tools, open-source benchmarks, and new methodologies for evaluating managed runtimes. The benchmarking and methodologies efforts were led by Stephen M. Blackburn. The DaCapo Java benchmark suite and evaluation methodologies are widely used in academia and industry to evaluate Java analysis, optimization, and testing technologies. [5] Blackburn, Cheng, and McKinley were the first to perform an apples-to-apples comparison of garbage collection algorithms that showed free-list allocators give up substantial amounts of locality even though they require less memory compared to copying algorithms, which allocate contemporaneous objects contiguously. [6] [7] This work won the SIGMETRICS 2014 Test of Time of Award. [8]

Based on this insight, Blackburn and McKinley designed a new class of garbage collectors, they named mark-region. Their Immix mark-region collector manages memory hierarchically using fixed sized blocks consisting of lines. Contiguous object allocation may cross lines, but noblocks. Immix collection mixes line marking and object copying in a single pass. This design delivers substantial performance benefits due to smaller heap footprints and improvements in locality. [9]

Her PhD student Michael Bond received the ACM SIGPLAN Outstanding Doctoral Dissertation Award in 2008. [10]

On February 14, 2013, McKinley testified to the House Committee on Science, Space, and Technology, at the Subcommittee on Research. She spoke on the academic, industry, and government computing research ecosystem that is driving innovation and economic advances in almost all fields. [11]

Awards

In 2008 she was named an ACM Fellow. [12] She was elected to the American Academy of Arts and Sciences in 2023. [13]

Her other notable awards include:

Related Research Articles

In computer science, reference counting is a programming technique of storing the number of references, pointers, or handles to a resource, such as an object, a block of memory, disk space, and others.

In compiler optimization, register allocation is the process of assigning local automatic variables and expression results to a limited number of processor registers.

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

The Hoard memory allocator, or Hoard, is a memory allocator for Linux, OS X, and Microsoft Windows. Hoard is designed to be efficient when used by multithreaded applications on multiprocessor computers. Hoard is distributed under the Apache License, version 2.0.

The Intel Personal SuperComputer was a product line of parallel computers in the 1980s and 1990s. The iPSC/1 was superseded by the Intel iPSC/2, and then the Intel iPSC/860.

Thread Level Speculation (TLS), also known as Speculative Multi-threading, or Speculative Parallelization, is a technique to speculatively execute a section of computer code that is anticipated to be executed later in parallel with the normal execution on a separate independent thread. Such a speculative thread may need to make assumptions about the values of input variables. If these prove to be invalid, then the portions of the speculative thread that rely on these input variables will need to be discarded and squashed. If the assumptions are correct the program can complete in a shorter time provided the thread was able to be scheduled efficiently.

SIGMETRICS is the Association for Computing Machinery's Special Interest Group on Measurement and Evaluation, which specializes in the field of performance analysis, measurement, and modeling of computer systems. It is also the name of an annual 'flagship' conference, organized by SIGMETRICS since 1973, which is considered to be the leading conference in performance analysis and modeling in the world. Known to have an extremely competitive acceptance rate (~15%), many of the landmark works in the area have been published through it.

Matthew Flatt is an American computer scientist and professor at the University of Utah School of Computing in Salt Lake City. He is also the leader of the core development team for the Racket programming language.

Memory safety is the state of being protected from various software bugs and security vulnerabilities when dealing with memory access, such as buffer overflows and dangling pointers. For example, Java is said to be memory-safe because its runtime error detection checks array bounds and pointer dereferences. In contrast, C and C++ allow arbitrary pointer arithmetic with pointers implemented as direct memory addresses with no provision for bounds checking, and thus are potentially memory-unsafe.

The IEEE Annual Symposium on Foundations of Computer Science (FOCS) is an academic conference in the field of theoretical computer science. FOCS is sponsored by the IEEE Computer Society.

In computer science, region-based memory management is a type of memory management in which each allocated object is assigned to a region. A region, also called a zone, arena, area, or memory context, is a collection of allocated objects that can be efficiently reallocated or deallocated all at once. Memory allocators using region-based managements are often called area allocators, and when they work by only "bumping" a single pointer, as bump allocators.

<span class="mw-page-title-main">Andrew Witkin</span> American computer scientist (1952–2010)

Andrew Paul Witkin was an American computer scientist who made major contributions in computer vision and computer graphics.

Susan Beth Horwitz was an American computer scientist noted for her research on programming languages and software engineering, and in particular on program slicing and dataflow-analysis. She had several best paper and an impact paper award mentioned below under awards.

Mary Katherine Vernon is an American computer scientist who works as a professor of computer science and industrial engineering at the University of Wisconsin–Madison. Her research concerns high-performance computer architecture and streaming media.

Automatic bug-fixing is the automatic repair of software bugs without the intervention of a human programmer. It is also commonly referred to as automatic patch generation, automatic bug repair, or automatic program repair. The typical goal of such techniques is to automatically generate correct patches to eliminate bugs in software programs without causing software regression.

David Bacon is an American computer programmer.

<span class="mw-page-title-main">Grigori Fursin</span> British computer scientist

Grigori Fursin is a British computer scientist, president of the non-profit CTuning foundation, founding member of MLCommons, co-chair of the MLCommons Task Force on Automation and Reproducibility and founder of cKnowledge. His research group created open-source machine learning based self-optimizing compiler, MILEPOST GCC, considered to be the first in the world. At the end of the MILEPOST project he established cTuning foundation to crowdsource program optimisation and machine learning across diverse devices provided by volunteers. His foundation also developed Collective Knowledge Framework to support open research. Since 2015 Fursin leads Artifact Evaluation at several ACM and IEEE computer systems conferences. He is also a founding member of the ACM taskforce on Data, Software, and Reproducibility in Publication.

Rachid Guerraoui is a Moroccan-Swiss computer scientist and a professor at the School of Computer and Communication Sciences at École Polytechnique Fédérale de Lausanne (EPFL), known for his contributions in the fields of concurrent and distributed computing. He is an ACM Fellow and the Chair in Informatics and Computational Science for the year 2018–2019 at Collège de France for distributed computing.

Runtime predictive analysis is a runtime verification technique in computer science for detecting property violations in program executions inferred from an observed execution. An important class of predictive analysis methods has been developed for detecting concurrency errors in concurrent programs, where a runtime monitor is used to predict errors which did not happen in the observed run, but can happen in an alternative execution of the same program. The predictive capability comes from the fact that the analysis is performed on an abstract model extracted online from the observed execution, which admits a class of executions beyond the observed one.

References

  1. "Kathryn S McKinley Homepage".
  2. K. S. McKinley; S. Carr; C. Tseng (1996). "Improving Data Locality with Loop Transformations". ACM Transactions on Programming Languages and Systems. 18 (4): 424–453. CiteSeerX   10.1.1.47.1703 . doi:10.1145/233561.233564. S2CID   409053.
  3. K. Kennedy; K. S. McKinley (1992). "Optimizing for parallelism and data locality". Proceedings of the 6th international conference on Supercomputing - ICS '92. pp. 323–334. doi:10.1145/143369.143427. ISBN   978-0897914857. S2CID   7241914.
  4. E. D. Berger; K. S. McKinley; R. D. Blumofe; P. R. Wilson (2000). "Hoard: A scalable memory allocator for multithreaded applications". ACM Sigarch Computer Architecture News. 28 (5): 117–128. doi: 10.1145/378995.379232 .
  5. S. M. Blackburn; R. Garner; C. Hoffman; A. M. Khan; K. S. McKinley; R. Bentzur A. Diwan; D. Feinberg; D. Frampton; S. Z. Guyer; M. Hirzel; A. Hosking; M. Jump; H. Lee; J. E. B. Moss; A. Phansalkar; D. Stefanovic; T. VanDrunen; D. von Dincklage; B. Wiedermann (2006). "The DaCapo benchmarks". Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications. pp. 169–190. doi:10.1145/1167473.1167488. hdl: 1885/33723 . ISBN   978-1595933485. S2CID   9255051.
  6. S. M. Blackburn; P. Cheng; K. S. McKinley (2004). "Myths and realities". Proceedings of the joint international conference on Measurement and modeling of computer systems. pp. 25–36. doi:10.1145/1005686.1005693. ISBN   978-1581138733. S2CID   7988297.
  7. S. M. Blackburn; P. Cheng; K. S. McKinley (2004). "Oil and water? High performance garbage collection in Java with MMTK". Proceedings. 26th International Conference on Software Engineering. pp. 137–146. doi:10.1109/ICSE.2004.1317436. ISBN   978-0-7695-2163-3. S2CID   6394407.
  8. 1 2 ACM SIGMETRICS (2014-07-01). "SIGMETRICS Awards". SIGMETRICS. Retrieved 2014-07-01.
  9. S. M. Blackburn; K. S. McKinley (2008). "Immix". Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation. pp. 22–32. doi:10.1145/1375581.1375586. ISBN   9781595938602. S2CID   1569045.
  10. sigplan.org (2014-01-07). "SIGPLAN 2008: Two Awards Presented". sigplan. Retrieved 2014-01-07.
  11. "Written Testimony of Dr. Kathryn S. McKinley – Hearing on 'Applications for Information Technology Research and Development'" (PDF). U.S. House of Representatives. February 14, 2013.
  12. Norman, Staci (January 15, 2009). "Kathryn McKinley Named ACM Fellow". University of Texas at Austin.
  13. "New members". American Academy of Arts and Sciences. 2023. Retrieved 2023-04-21.
  14. "The Third Annual SPLASH Conference, held in Tucson, Arizona". SplashCon. Archived from the original on July 8, 2013. Retrieved June 21, 2013.
  15. "Fellow Class of 2011". IEEE. Archived from the original on April 30, 2013. Retrieved June 21, 2013.
  16. "2012: Jikes Research Virtual Machine (RVM)". Sigplan. Archived from the original on July 3, 2013. Retrieved June 21, 2013.
  17. "Distinguished Service Award". Sigplan. Retrieved June 21, 2013.
  18. "ACM Distinguished Member". Association for Computing Machinery. Retrieved June 21, 2013.