Code Monkey home page Code Monkey logo

arieleiz / remix Goto Github PK

View Code? Open in Web Editor NEW

This project forked from upenn-acg/remix

0.0 2.0 0.0 93.64 MB

Automatic runtime repair of Java false-sharing

Home Page: http://acg.cis.upenn.edu/wiki/index.php?n=Projects.REMIX

License: GNU General Public License v2.0

Makefile 0.25% HTML 0.65% Shell 0.96% M4 0.08% C 6.72% Java 77.36% Batchfile 0.02% Objective-C 0.45% C++ 10.98% JavaScript 1.06% DTrace 0.04% Assembly 0.04% XSLT 0.06% Lex 0.01% Python 0.05% Roff 1.26% Perl 0.01% Ruby 0.01% Haskell 0.01% CSS 0.01%

remix's Introduction

REMIX: Online Detection and Repair of Cache Contention for the JVM

Ariel Eizenberg (1), Shiliang Hu (2), Gilles Pokam (3), Joseph Devietti (4)

(1), (4) - University of Pennsylvania, (2), (3) - Intel

Published in PLDI 2016

As ever more computation shifts onto multicore architectures, it is increasingly critical to find effective ways of dealing with multithreaded performance bugs like true and false sharing. Previous approaches to fixing false sharing in unmanaged languages have employed highly-invasive runtime program modifications. We observe that managed language runtimes, with garbage collection and JIT code compilation, present unique opportunities to repair such bugs directly, mirroring the techniques used in manual repairs. We present REMIX, a modified version of the Oracle HotSpot JVM which can detect cache contention bugs and repair false sharing at runtime. REMIX’s detection mechanism leverages recent performance counter improvements on Intel platforms, which allow for precise, unobtrusive monitoring of cache contention at the hardware level. REMIX can detect and repair known false sharing issues in the LMAX Disruptor high-performance inter-thread messaging library and the Spring Reactor event-processing framework, automatically providing 1.5-2x speedups over unoptimized code and matching the performance of handoptimization. REMIX also finds a new false sharing bug in SPECjvm2008, and uncovers a true sharing bug in the HotSpot JVM that, when fixed, improves the performance of three NAS Parallel Benchmarks by 7-25x. REMIX incurs no statistically-significant performance overhead on other benchmarks that do not exhibit cache contention, making REMIX practical for always-on use.

A tutorial and usage instructions are available at (http://acg.cis.upenn.edu/wiki/index.php?n=Projects.REMIX).

remix's People

Contributors

arieleiz avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.