+ All Categories
Home > Software > LCU14 301- Hadoop and Open JDK on ARM Servers

LCU14 301- Hadoop and Open JDK on ARM Servers

Date post: 18-Nov-2014
Category:
Upload: linaro
View: 177 times
Download: 0 times
Share this document with a friend
Description:
LCU14 301- Hadoop and Open JDK on ARM Servers --------------------------------------------------- Speaker: Andrew McDermott Date: September 17, 2014 --------------------------------------------------- ★ Session Summary ★ Technical details of Hadoop and OpenJDK on ARM servers --------------------------------------------------- ★ Resources ★ Zerista: http://lcu14.zerista.com/event/member/137747 Google Event: https://plus.google.com/u/0/events/cch728mfj17298hfvk0j7evgigo Video: https://www.youtube.com/watch?v=GD6AZLfSz-A&list=UUIVqQKxCyQLJS6xvSmfndLA Etherpad: http://pad.linaro.org/p/lcu14-301 --------------------------------------------------- ★ Event Details ★ Linaro Connect USA - #LCU14 September 15-19th, 2014 Hyatt Regency San Francisco Airport --------------------------------------------------- http://www.linaro.org http://connect.linaro.org
13
LCU14 BURLINGAME Andrew McDermott, LCU14 LCU14-301: Hadoop and OpenJDK on ARM servers
Transcript
Page 1: LCU14 301- Hadoop and Open JDK on ARM Servers

LCU14 BURLINGAME

Andrew McDermott, LCU14

LCU14-301: Hadoop and OpenJDK on ARM servers

Page 2: LCU14 301- Hadoop and Open JDK on ARM Servers

● AARCH64 port of OpenJDK● Based on same codebase as x86 OpenJDK● 95%+ code in common with Oracle JDK● Same performance within a few % as Oracle JDK● Goal is to track all x86 optimisations / features● No support for ARMv7 or earlier or for 32 bit on ARMv8

● Three releases are supported● JDK7

● The current production release used today by most applications● Released as part of Fedora, Ubuntu, Debian and others● Supported in IcedTea (the main repository for distros building JDK7)

● JDK8● FCS release in April● Starting to go into distros alongside JDK7● Maintained as a branch in the OpenJDK repository (http://openjdk.java.net)

● JDK9● Next development - Due for release Q2 next year● AARCH64 port will be upstreamed into JDK9

OpenJDK on ARMv8

Page 3: LCU14 301- Hadoop and Open JDK on ARM Servers

● Supported hotspot technologies● Server (C2) JIT

● Heavyweight optimising compiler - but slow to startup● Client (C1) JIT

● Lightweight compiler - quick startup - better for interactive environments● Tiered compilation

● Compiles 1st with C1, then if necessary with C2● Profiling information gathered by C1 code used in C2 compilation● The is the default execution model● Best quality code but can be quite memory intensive

● Assembler Template Interpreter● Assembler code for each Java bytecode generated from a template● Java code initially executed by template interpreter● Once hotspot is determined from profiling compiled with C1 or C2

● Pure C ‘Zero’ Interpreter● Mainly for reference / benchmarking, not enabled in production builds

OpenJDK on ARMv8

Page 4: LCU14 301- Hadoop and Open JDK on ARM Servers

● Daily building and testing● Testing on APM boards greatly extended. Testing on AMD board starting

● Tests results available from http://openjdk.linaro.org/ ● JTREG (hotspot, langtools & jdk) on both client and server -- ~18000 tests● SPECjbb2013 performance regression test● Hadoop Terasort performance regression test● JCStress test● The test results are also posted daily to the aarch64-port-dev mailing list

● Testing on foundation model in LAVA has been abandoned● Consuming too many resources in the Lab (needed 2 foundation models 100% of the time

just to keep up with the tests)

CI and nightly tests

Page 6: LCU14 301- Hadoop and Open JDK on ARM Servers

CI and nightly tests

Page 7: LCU14 301- Hadoop and Open JDK on ARM Servers

● Daily native build of Hadoop from source● Daily benchmark testing

● Client and server run of Terasort to test for performance regression

● Single node testing only.

● Looking at multinode testing

● Optimisation focused on optimising OpenJDK for Hadoop● +24% improvement since FCS release in April

● Some optimisation on Hadoop directly● CRC optimisation using SIMD

● Pushed to list but not yet adopted upstream

Hadoop Testing / Optimisation

Page 8: LCU14 301- Hadoop and Open JDK on ARM Servers

● Release of both JDK8 and JDK7● Images available to download from http://openjdk.linaro.org

● Security Updates● Two sets of security patches released by Oracle

● We have tracked and merged them into the AArch64 JDK8 and JDK7 trees

● JDK8 UpdatesOpenJDK JDK8 Updates tracked and merged into AARCH64 JDK8

Current AARCH64 tree is JDK8 Update u40_b04

Updates since LCA14

Page 9: LCU14 301- Hadoop and Open JDK on ARM Servers

● Optimisations completed● Biased locking (bias the lock towards the current thread)

● String optimisation (string copy, comparison, string search)● String search implemented using simplified Boyer-Moore algorithm

● ISO Array encode/decode● Optimised conversion of strings to/from ISO-5589 using Neon

● Intrinsic optimisation● Optimised array copy, compare and initialisation, and also MathExact

● CRC optimisation (implemented using CRC instruction extensions)

● AES encryption● Implement AES encrypt/decrypt using crypto instruction extensions

● Memory barrier optimisation● Elide memory barriers when possible, +72% improvement on Java Dhrystone!● Smaller improvements on other benchmarks (+18% on kXML and +6% on Chess)

● Many more low level performance improvements

Update since LCA14

Page 10: LCU14 301- Hadoop and Open JDK on ARM Servers

● JDK9● JEP (Java Enhancement Proposal) filed for merge of AARCH64 to JDK9● Staging repository created and AARCH64 port of JDK9 pushed to staging

● A57 Juno/AMD● Verification that OpenJDK works correctly on A53 and A57

● Working also on the AMD platform to verify OpenJDK on AMD’s A57 platform

● OpenJDK fully functional on both Juno/AMD

● Distro Support● Supporting distro maintainers (Ubuntu/Debian/Fedora) - updates, dealing with bug

reports and resolving issues with testing

Updates since LCA14

Page 11: LCU14 301- Hadoop and Open JDK on ARM Servers

● Daily building and testing● Testing on APM boards greatly extended. Testing on AMD board starting

● Tests results available from http://openjdk.linaro.org/ ● JTREG (hotspot, langtools & jdk) on both client and server -- ~18000 tests● SPECjbb2013 performance regression test● Hadoop Terasort performance regression test● JCStress test● The test results are also posted daily to the aarch64-port-dev mailing list

● Testing on foundation model in LAVA has been abandoned● Consuming too many resources in the Lab (needed 2 foundation models 100% of the time

just to keep up with the tests)

Updates since LCA14

Page 12: LCU14 301- Hadoop and Open JDK on ARM Servers

● JDK7● Backport optimisations / bug fixes to JDK7● Track security updates● No support for 32 bit in JDK7

● JDK8● Track JDK8 updates (currently at JDK8 u20b04)● Continue optimisation work

● JDK9● Double commit patches from JDK8 development● Track JDK9 tip into staging repository● Push JEP forward and merge staging repository into trunk

● Continue with release and testing on member platforms● JCK

● Distros will run the JCK and be concerned about the certification● Linaro will run the JCK internally for testing

Next steps for OpenJDK/AArch64

Page 13: LCU14 301- Hadoop and Open JDK on ARM Servers

More about Linaro Connect: connect.linaro.org Linaro members: www.linaro.org/membersMore about Linaro: www.linaro.org/about/


Recommended