Skip to content
View emeryberger's full-sized avatar

Sponsoring

@Homebrew
@python
@P403n1x87

Highlights

  • Pro

Organizations

@plasma-umass
Block or Report

Block or report emeryberger

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Add an optional note:
Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
emeryberger/README.md

Emery Berger

Professor, Computer Science, Univ. of Massachusetts Amherst. My students, collaborators, and I in the PLASMA lab build innovative and impactful systems, especially focused on performance, reliability, and security. Among other things, I am also the creator/maintainer of https://CSrankings.org. For the academic year 2023/2024, I am on sabbatical and am an Amazon Scholar at Amazon Web Services.

Recent blog posts

Links

Selected software from me and my collaborators (for a full list, see PLASMA)

  • Scalene: A state-of-the-art CPU+GPU+memory profiler for Python, with AI-powered optimization suggestions
    PyPI Latest Release Anaconda-Server Badge Downloads Downloads GitHub stars
  • Coz: A causal profiler that tells you where to optimize your code (C/C++/Rust/Swift/Java)
    GitHub stars Rust crate downloads (just counting Rust crate downloads)
  • CSrankings: Ranks the world's CS departments
    GitHub stars
  • Slipcover: Nearly zero-overhead code coverage analysis for Python
    PyPI Latest Release Downloads GitHub stars
  • ChatDBG: AI-assisted debugging in lldb, gdb, and pdb. Uses AI to answer 'why'
    PyPI Latest Release Downloads Downloads GitHub stars
  • Commentator: Automatically comments Python code, adding docstrings and type annotations
    PyPI Latest Release Downloads Downloads GitHub stars
  • CWhy: ("See why") Explains and suggests fixes for C/C++/Rust compiler error messages.
    PyPI Latest Release Downloads Downloads GitHub stars
  • SQLwrite: SQLite3 with natural language to SQL, recommends indexes to optimize queries
    GitHub stars

Selected Talks

Performance Matters (Strange Loop 2019) views
The second most popular Strange Loop video of all time!
Performance Matters (Strange Loop 2019)

Python Performance Matters (Strange Loop 2022)
Python Performance Matters

Scalene (PyCon 2021) views
Scalene (PyCon 2021)

How to Get Your Research Adopted (PLDI keynote) views
PLDI 2022 keynote

Selected Papers

Bio

Emery Berger is a Professor in the Manning College of Information and Computer Sciences at the University of Massachusetts Amherst, the flagship campus of the UMass system. He graduated with a Ph.D. in Computer Science from the University of Texas at Austin in 2002. Professor Berger has been a Visiting Scientist at Microsoft Research and at the Universitat Politècnica de Catalunya (UPC) / Barcelona Supercomputing Center (BSC).

Professor Berger’s research spans programming languages, runtime systems, and operating systems, with a particular focus on systems that transparently improve reliability, security, and performance. He and his collaborators have created a number of influential software systems including Hoard, a fast and scalable memory manager that accelerates multithreaded applications (used by companies including British Telecom, Cisco, Crédit Suisse, Reuters, Royal Bank of Canada, SAP, and Tata, and on which the Mac OS X memory manager is based); DieHard, an error-avoiding memory manager that directly influenced the design of the Windows 7 Fault-Tolerant Heap; and DieHarder, a secure memory manager that was an inspiration for hardening changes made to the Windows 8 heap (see this map of the landscape of memory management research for an overview). He also created and maintains the widely-used CSrankings website.

His honors include a Microsoft Research Fellowship, an NSF CAREER Award, a Lilly Teaching Fellowship, the Distinguished Artifact Award for PLDI 2014, the Most Influential Paper Award at OOPSLA 2012, the Most Influential Paper Award at PLDI 2016, the ASPLOS 2019 Influential Paper Award, five SIGPLAN Research Highlights, five CACM Research Highlights (1, 2, 3, 4, 5), a Google Research Award, a Microsoft SEIF Award, and Best Paper Awards at FAST, OOPSLA, and SOSP. Professor Berger served two terms (1, 2) as an elected member of the SIGPLAN Executive Committee; he served for a decade (2007-2017) as Associate Editor of the ACM Transactions on Programming Languages and Systems, was Program Chair for PLDI 2016, and served as co-Program Chair of ASPLOS 2021. He was named an ACM Fellow in 2019.

Pinned

  1. plasma-umass/scalene plasma-umass/scalene Public

    Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python with AI-powered optimization proposals

    JavaScript 10.7k 373

  2. plasma-umass/coz plasma-umass/coz Public

    Coz: Causal Profiling

    C 3.7k 155

  3. CSrankings CSrankings Public

    A web app for ranking computer science departments according to their research output in selective venues, and for finding active faculty across a wide range of areas.

    Python 2.5k 2.8k

  4. Hoard Hoard Public

    The Hoard Memory Allocator: A Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac.

    C++ 1k 126

  5. DieHard DieHard Public

    DieHard: An error-resistant memory allocator for Windows, Linux, and Mac OS X

    C 385 39

  6. Heap-Layers Heap-Layers Public

    Heap Layers: An Extensible Memory Allocation Infrastructure

    C++ 363 57

1,730 contributions in the last year

No contributions on January 29th.4 contributions on February 5th.No contributions on February 12th.7 contributions on February 19th.No contributions on February 26th.8 contributions on March 5th.19 contributions on March 12th.4 contributions on March 19th.5 contributions on March 26th.14 contributions on April 2nd.12 contributions on April 9th.1 contribution on April 16th.13 contributions on April 23rd.No contributions on April 30th.No contributions on May 7th.3 contributions on May 14th.No contributions on May 21st.1 contribution on May 28th.10 contributions on June 4th.6 contributions on June 11th.No contributions on June 18th.No contributions on June 25th.4 contributions on July 2nd.1 contribution on July 9th.7 contributions on July 16th.No contributions on July 23rd.2 contributions on July 30th.4 contributions on August 6th.4 contributions on August 13th.2 contributions on August 20th.No contributions on August 27th.1 contribution on September 3rd.15 contributions on September 10th.1 contribution on September 17th.5 contributions on September 24th.16 contributions on October 1st.No contributions on October 8th.1 contribution on October 15th.1 contribution on October 22nd.No contributions on October 29th.1 contribution on November 5th.12 contributions on November 12th.4 contributions on November 19th.1 contribution on November 26th.5 contributions on December 3rd.No contributions on December 10th.4 contributions on December 17th.1 contribution on December 24th.No contributions on December 31st.1 contribution on January 7th.1 contribution on January 14th.6 contributions on January 21st.4 contributions on January 28th.No contributions on January 30th.3 contributions on February 6th.14 contributions on February 13th.9 contributions on February 20th.4 contributions on February 27th.20 contributions on March 6th.17 contributions on March 13th.2 contributions on March 20th.1 contribution on March 27th.2 contributions on April 3rd.3 contributions on April 10th.10 contributions on April 17th.1 contribution on April 24th.4 contributions on May 1st.4 contributions on May 8th.6 contributions on May 15th.2 contributions on May 22nd.No contributions on May 29th.3 contributions on June 5th.45 contributions on June 12th.2 contributions on June 19th.5 contributions on June 26th.8 contributions on July 3rd.No contributions on July 10th.3 contributions on July 17th.3 contributions on July 24th.9 contributions on July 31st.2 contributions on August 7th.4 contributions on August 14th.2 contributions on August 21st.1 contribution on August 28th.8 contributions on September 4th.6 contributions on September 11th.7 contributions on September 18th.3 contributions on September 25th.6 contributions on October 2nd.4 contributions on October 9th.No contributions on October 16th.No contributions on October 23rd.3 contributions on October 30th.2 contributions on November 6th.3 contributions on November 13th.3 contributions on November 20th.No contributions on November 27th.No contributions on December 4th.No contributions on December 11th.9 contributions on December 18th.No contributions on December 25th.3 contributions on January 1st.No contributions on January 8th.2 contributions on January 15th.2 contributions on January 22nd.5 contributions on January 29th.No contributions on January 31st.No contributions on February 7th.2 contributions on February 14th.No contributions on February 21st.No contributions on February 28th.11 contributions on March 7th.21 contributions on March 14th.13 contributions on March 21st.1 contribution on March 28th.23 contributions on April 4th.2 contributions on April 11th.2 contributions on April 18th.1 contribution on April 25th.2 contributions on May 2nd.1 contribution on May 9th.No contributions on May 16th.No contributions on May 23rd.6 contributions on May 30th.3 contributions on June 6th.6 contributions on June 13th.No contributions on June 20th.No contributions on June 27th.5 contributions on July 4th.No contributions on July 11th.No contributions on July 18th.2 contributions on July 25th.9 contributions on August 1st.No contributions on August 8th.12 contributions on August 15th.2 contributions on August 22nd.2 contributions on August 29th.1 contribution on September 5th.6 contributions on September 12th.4 contributions on September 19th.8 contributions on September 26th.15 contributions on October 3rd.4 contributions on October 10th.No contributions on October 17th.No contributions on October 24th.11 contributions on October 31st.4 contributions on November 7th.5 contributions on November 14th.No contributions on November 21st.No contributions on November 28th.3 contributions on December 5th.No contributions on December 12th.4 contributions on December 19th.No contributions on December 26th.1 contribution on January 2nd.No contributions on January 9th.1 contribution on January 16th.No contributions on January 23rd.2 contributions on January 30th.No contributions on February 1st.6 contributions on February 8th.4 contributions on February 15th.3 contributions on February 22nd.1 contribution on March 1st.8 contributions on March 8th.9 contributions on March 15th.16 contributions on March 22nd.6 contributions on March 29th.20 contributions on April 5th.6 contributions on April 12th.10 contributions on April 19th.5 contributions on April 26th.No contributions on May 3rd.No contributions on May 10th.1 contribution on May 17th.6 contributions on May 24th.3 contributions on May 31st.24 contributions on June 7th.9 contributions on June 14th.8 contributions on June 21st.11 contributions on June 28th.2 contributions on July 5th.No contributions on July 12th.No contributions on July 19th.6 contributions on July 26th.4 contributions on August 2nd.4 contributions on August 9th.2 contributions on August 16th.8 contributions on August 23rd.5 contributions on August 30th.2 contributions on September 6th.11 contributions on September 13th.3 contributions on September 20th.No contributions on September 27th.12 contributions on October 4th.3 contributions on October 11th.No contributions on October 18th.No contributions on October 25th.2 contributions on November 1st.1 contribution on November 8th.2 contributions on November 15th.6 contributions on November 22nd.No contributions on November 29th.2 contributions on December 6th.No contributions on December 13th.No contributions on December 20th.1 contribution on December 27th.No contributions on January 3rd.No contributions on January 10th.3 contributions on January 17th.No contributions on January 24th.No contributions on February 2nd.No contributions on February 9th.14 contributions on February 16th.8 contributions on February 23rd.29 contributions on March 2nd.17 contributions on March 9th.23 contributions on March 16th.19 contributions on March 23rd.1 contribution on March 30th.7 contributions on April 6th.3 contributions on April 13th.3 contributions on April 20th.No contributions on April 27th.No contributions on May 4th.9 contributions on May 11th.No contributions on May 18th.4 contributions on May 25th.3 contributions on June 1st.77 contributions on June 8th.1 contribution on June 15th.6 contributions on June 22nd.16 contributions on June 29th.No contributions on July 6th.8 contributions on July 13th.No contributions on July 20th.9 contributions on July 27th.6 contributions on August 3rd.5 contributions on August 10th.No contributions on August 17th.4 contributions on August 24th.No contributions on August 31st.4 contributions on September 7th.3 contributions on September 14th.4 contributions on September 21st.1 contribution on September 28th.2 contributions on October 5th.1 contribution on October 12th.2 contributions on October 19th.1 contribution on October 26th.1 contribution on November 2nd.9 contributions on November 9th.1 contribution on November 16th.No contributions on November 23rd.3 contributions on November 30th.No contributions on December 7th.No contributions on December 14th.14 contributions on December 21st.No contributions on December 28th.No contributions on January 4th.No contributions on January 11th.8 contributions on January 18th.No contributions on January 25th.No contributions on February 3rd.No contributions on February 10th.No contributions on February 17th.1 contribution on February 24th.14 contributions on March 3rd.16 contributions on March 10th.6 contributions on March 17th.No contributions on March 24th.2 contributions on March 31st.9 contributions on April 7th.3 contributions on April 14th.14 contributions on April 21st.2 contributions on April 28th.No contributions on May 5th.10 contributions on May 12th.No contributions on May 19th.4 contributions on May 26th.No contributions on June 2nd.45 contributions on June 9th.7 contributions on June 16th.11 contributions on June 23rd.7 contributions on June 30th.2 contributions on July 7th.3 contributions on July 14th.1 contribution on July 21st.9 contributions on July 28th.7 contributions on August 4th.1 contribution on August 11th.15 contributions on August 18th.No contributions on August 25th.6 contributions on September 1st.1 contribution on September 8th.7 contributions on September 15th.7 contributions on September 22nd.No contributions on September 29th.7 contributions on October 6th.No contributions on October 13th.6 contributions on October 20th.4 contributions on October 27th.1 contribution on November 3rd.3 contributions on November 10th.3 contributions on November 17th.No contributions on November 24th.1 contribution on December 1st.No contributions on December 8th.3 contributions on December 15th.No contributions on December 22nd.2 contributions on December 29th.No contributions on January 5th.2 contributions on January 12th.1 contribution on January 19th.1 contribution on January 26th.No contributions on February 4th.5 contributions on February 11th.19 contributions on February 18th.No contributions on February 25th.11 contributions on March 4th.19 contributions on March 11th.28 contributions on March 18th.4 contributions on March 25th.8 contributions on April 1st.2 contributions on April 8th.4 contributions on April 15th.19 contributions on April 22nd.2 contributions on April 29th.No contributions on May 6th.2 contributions on May 13th.No contributions on May 20th.No contributions on May 27th.3 contributions on June 3rd.26 contributions on June 10th.2 contributions on June 17th.4 contributions on June 24th.16 contributions on July 1st.1 contribution on July 8th.7 contributions on July 15th.No contributions on July 22nd.12 contributions on July 29th.No contributions on August 5th.1 contribution on August 12th.18 contributions on August 19th.No contributions on August 26th.No contributions on September 2nd.5 contributions on September 9th.5 contributions on September 16th.2 contributions on September 23rd.9 contributions on September 30th.2 contributions on October 7th.5 contributions on October 14th.No contributions on October 21st.1 contribution on October 28th.No contributions on November 4th.3 contributions on November 11th.3 contributions on November 18th.No contributions on November 25th.No contributions on December 2nd.7 contributions on December 9th.2 contributions on December 16th.No contributions on December 23rd.1 contribution on December 30th.No contributions on January 6th.1 contribution on January 13th.No contributions on January 20th.5 contributions on January 27th.
Contribution Graph
Day of Week February March April May June July August September October November December January
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Less
No contributions.
Low contributions.
Medium-low contributions.
Medium-high contributions.
High contributions.
More

Contribution activity

January 2024

Opened 8 pull requests in 1 repository
plasma-umass/scalene 8 merged
Reviewed 2 pull requests in 2 repositories
plasma-umass/ChatDBG 1 pull request
emeryberger/CSrankings 1 pull request

Created an issue in google/temporian that received 9 comments

Scalene supports Python 3.11 and Python 3.12

[Scalene author here.] Scalene has supported Python 3.11 and 3.12 for some time, so the below line can now be uncommented, though I'd use a more re…

9 comments
Opened 1 other issue in 1 repository
plasma-umass/scalene 1 open
7 contributions in private repositories Jan 13 – Jan 22

Seeing something unexpected? Take a look at the GitHub profile guide.