60
© 2016 IBM Corporation Overview of Java on z Marcel Mitran – DE, CTO LinuxONE Joran Siu – Lead Arch, IBM Runtimes on z November 2016 @JavaOnZ

Java on z overview 20161107

Embed Size (px)

Citation preview

Page 1: Java on z overview 20161107

© 2016 IBM Corporation

Overview of Java on z

Marcel Mitran – DE, CTO LinuxONEJoran Siu – Lead Arch, IBM Runtimes on zNovember 2016

@JavaOnZ

Page 2: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

222

IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.

IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of other IBM trademarks is available on the web at "Copyright and trademark information" at http://www.ibm.com/legal/copytrade.shtml

Other company, product, or service names may be trademarks or service marks of others.

THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN ADDITION, THIS INFORMATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM WITHOUT NOTICE. IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, NOR SHALL HAVE THE EFFECT OF, CREATING ANY WARRANTIES OR REPRESENTATIONS FROM IBM (OR ITS SUPPLIERS OR LICENSORS), OR ALTERING THE TERMS AND CONDITIONS OF ANY AGREEMENT OR LICENSE GOVERNING THE USE OF IBM PRODUCTS OR SOFTWARE.

© Copyright International Business Machines Corporation 2016. All rights reserved.

Trademarks, Copyrights, Disclaimers

Page 3: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

3

Evolving Java as a Workload Optimized System on IBM z

Portable and consumable First-class IBM Java SDK for z/OS and Linux on z Providing seamless portability across platforms

Pervasive and integrated across the z eco-system Java business logic runs with all z middleware (IMS, CICS, WAS etc) Inter-operability with legacy batch and OLTP assets

Deep System Z exploitation SDK extensions enabled z QoS for full integration with z/OS zAAP/zIIP/IFL specialty engines provide low-cost Java capacity

Performance A decade of hardware/software innovation and optimization Industry leading performance with IBM J9 Virtual Machine Enabling tight data locality for high-performance and simplified systems

Enable integration of Java-based applications with core z/OS backend database environment for high performance, reliability, availability, security, and lower total cost of ownership

Page 4: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

4

Java Execution Environments and Interoperability

IBM Java Execution Offerings– Transactional/Interactive

• zOS Connect• WebSphere for z/OS (WAS z/OS)• WebSphere Process Server for z/OS (WPS)• JCICS/Liberty• IMS Java• DB2 Stored Procedures• ODM

– Batch oriented• WebSphere Compute Grid (WAS-CG)

• WAS/JEE runtime extensions• IMS Java Batch regions (JMP)• JZOS component of z/OS SDK

• JES/JSE-based environment• z/OS V1R13 Java/COBOL Batch Runtime* JES/JSE-based, designed to

inter-op with DB2 while maintaining transaction integrity

Open Source or non-IBM vendor Application Server and Frameworks

– Tomcat, JBoss– iBatis, Hibernate, Spring– Ant– Kafka– Spark

Capitalize on pre-existing assets, artifacts, processes, core competencies, platform strengths

COBOL/Native Interoperability– COBOL Invoke maps to JNI– RDz and JZOS** have tooling to

map COBOL copy books to Java classes

– JCICS– IMS Java, JMP/JBP– WAS CG, WOLA– etc

* See http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&supplier=897&letternum=ENUS211-252

** Alphaworks only, and hence currently un-supported

Page 5: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

5

z/OS – System z Java Extensions

All SDKs support the ‘standards’, Java on z/OS extends the SDK Access to z/OS services Access to all types of data Access under control of z/OS security mechanisms Integration into existing operational infrastructure

Services available in JEE and JSE environments under the restrictions of the container.

SDKz/OS

Extensions

SDKBase

Function

System specific extension allow you to write robust middleware and applications that integrate with traditional z/OS operating environment

Allow for maintaining platform independent design development. Platform specific implementations when required Allows for operational and resource optimization

e.g. JAAS wrapper of SAF (RACF, ACF2, or TopSecret), Traditional OS dataset access, Cryptographic hardware (Cards and CPACF), z/OS Console (modify and messages), z/OS system logger, JES job submission, DFSORT, SMF, etc.

Page 6: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java Road Map

6

Language UpdatesJava 5.0 • New Language features:

• Autoboxing• Enumerated types• Generics• Metadata

Java 6.0• Performance Improvements• Client WebServices Support

• Support for dynamic languages• Improve ease of use for SWING• New IO APIs (NIO2)• Java persistence API• JMX 2.x and WS connection for JMX

agents• Language Changes

Java 7.0

IBM Java RuntimesIBM Java 5.0 (J9 R23) • Improved performance

• Generational Garbage Collector• Shared classes support• New J9 Virtual Machine• New Testarossa JIT technology

• First Failure Data Capture• Full Speed Debug• Hot Code Replace• Common runtime technology

• ME, SE, EE

IBM Java 6.0 (J9 R24)• Improvements in

• Performance• Serviceability tooling• Class Sharing

• XML parser improvements• z10™ Exploitation

• DFP exploitation for BigDecimal• Large Pages• New ISA features

5.0

6.0

2005 2009

SE 5

.0

18 p

latfo

rms

SE 6

.020

pla

tform

s

EE 5

WAS6.1

WAS7.0

2006 2008

WAS6.0

200704

EE 6.x

2010 2011

IBM Java 6.0.1/Java 7 (J9 R26)

• Improvements in• Performance• GC Technology

• z196™ Exploitation• OOO Pipeline• 70+ New Instructions

• JZOS/Security Enhancements

WAS8.5

2012 2013 20147.0

• Language improvements • Closures for simplified fork/join

Java 8.0

SE60

1/ 7

.x>=

20

plat

form

s

IBM Java 7 (J9 R26 SR3)• Improvements in

• Performance• zEC12™ Exploitation

• Transactional Execution• Flash 1Meg pageable LPs• 2G large pages• Hints/traps

IBM Java 7.1 (J9 R27)• Improvements in

• Performance• RAS• Monitoring

• zEC12™ Exploitation• zEDC for zip acceleration• SMC-R integration• Transactional Execution• Runtime instrumentation• Hints/traps

• Data Access Accelerator

SE60

1/ 7

.x>=

20

plat

form

s

2015

IBM Java 8 (J9 R28)• Improvements in

• Performance• RAS• Monitoring

• z13™ Exploitation• SIMD• SMT• Crypto acceleration

SE8

>= 2

0 pl

atfo

rms

Page 7: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

IBM SDK for z/OS, Java Tech. Edition, Version 8 (IBM Java 8)

7

New Java8 Language Features– Lambdas, virtual extension methods

IBM z13 exploitation– Vector exploitation and other new instructions– Instruction scheduling

General throughput improvements– Up-to 9% better application throughput– Significant improvements to ORB

Improved crypto performance for IBMJCE– Block ciphering, secure hashing and public key

• Up-to 4x improvement to Public Key using ECC• CPACF instructions: AES, 3DES, SHA1, SHA2, etc

Significantly improved application ramp-up– Up-to 50% less CPU to ramp-up to steady-state– Improved ahead-of-time compiled code

Improved Monitoring– JMX beans for precise CPU-time monitoring

Enhancements to JZOS Toolkit for Java batch

Page 8: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

IBM z13 – Taking Java Performance to the Next Level

8

Continued aggressive investment in Java on ZSignificant new hardware features tailored and

co-designed with Java

Simultaneous Multi-Threading (SMT)– 2x hardware threads/core for improved throughput– Available on zIIPs and IFLs

Single Instruction Multiple Data (SIMD)– Vector processing unit– Accelerates loops and string operations

Cryptographic Function (CPACF)– Improved performance of crypto co-processors

New Instructions– Packed Decimal Decimal Floating Point – Load Immediate on Condition– Load Logical and Zero Rightmost Byte

Up to 2X improvement in throughput per core for security enabled applications

Up to 50% improvement in throughput for generic applications

New 5.0 GHz 8-Core Processor Chip

480MB L4 cache : Optimized for data serving

Page 9: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

z zIIPs DayTrader 3* DayTrader3t DayTrader2

1.01.6

2.2

3.13.9

5.26.0

6.6

9.6

11.712.3

0.0

2.0

4.0

6.0

8.0

10.0

12.0

Version 6.1on z9

Version 6.1on z10

Version 7.0on z10

Version 7.0on z196

Version 8.5on z196

Version 8.5on EC12

Version 8.5on EC12

Version8.5.5.2 on

EC12

Version8.5.5.9 on

z13 wo/SMT

Version8.5.5.9 onz13 w/SMT

Version8.5.5.9 onz13 w/SMT

Aggr

egat

e Pe

rform

ance

Est

imat

e

History of Classic WAS on z/OS Hardware/Software Performance

+16%t

+40%t

+25%t

+10%*

+43%t

+57%t

+32%t

+45%z+22%zHardware Improvement

Software Improvement

Java 7.1

SR3

Java 7.1SR3

Java 7.1SR1

Java 7

SR4

Java 601

Java 601

Java 6

Java 6Java

5Java 5

Java 8

SR2

+5%z

9

WAS on z/OS – DayTrader : Aggregate Improvements on 4 Cores

(Controlled measurement environment, results may vary)

12.3x aggregate hardware and software improvementsWAS 6.1 IBM Java5 on z9

WAS 8.5.5.9 IBM Java 8 SR2 FP10 on z13 with SMT

Page 10: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

10

z/OS - Java Store, Inventory and Point-of-Sale App with IBM Java 8 and z13

z/OS - 1.9x improvement in throughput with IBM Java 8 and IBM z13(Controlled measurement environment, results may vary)

Page 11: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Business Rules Processing – IBM z13 vs Intel Haswell

IBM z13 up-to 1.56x better throughput/core processing business rules than Intel Haswell

11

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

Haswell - Linux - Java8 z13 - zOS - Java8

Business Rules Processing with IBM z13 with Java8 - Small Ruleset

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

Haswell - Linux - Java8 z13 - zOS - Java8

Business Rules Processing with IBM z13 with Java8 - Large Ruleset

(Controlled measurement environment, results may vary)

Page 12: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java on z Survey

12

Classified Java projects as >= successful

now have Java applications in production

95 client responses

68% Java Project on z

85% within 3 years

145 surveys returnedIn 1 week…

What are you waiting for?

How Successful was your project?

Enterprise Architects System programmers

Application Developers

had the most influenceOn Java on z projects

Page 13: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZFollow on twitter @JavaOnZ

Java on z Systems?

Page 14: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

14

Page 15: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Reasons to Love IBM Java and WAS on z Systems

HCSC – 14.5 million health insurance membersWebSphere on z/OS has been selected at HCSC as a preferred platform to support development and deployment of mission-critical Java applications for the following reasons:

Co-location:

WASz minimizes physical tiers

3-4x improvement for one of HCSC’s largest WAS applications when moving from distributed to z/OS

High Volume Transaction Rates:

Could not meet business needs with distributed

Qualities of Service

Horizontal scaling

Continuous availability and fail-over

www.slideshare.net/elenan3403/reasons-to-love-ibm-java-and-web-sphere-application-server-on-z-system

IBM JVM Performance Dividends

30% improvement with Java601

10% improvement with Java7.1

Page 16: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

How Java became the NextGen Application of Choice for Fiducia

Fiducia IT AG - Full service provider for 750 Banks with about 10,550 Points of sales•Java support in IMS MPRs and BMPs

oSupport of Java SE (31 bit) for building “Business logic“

oJVM is resident in the MPR for its hole life

•In MPRs: the main program is COBOL

•Inter Language Communication (ILC) between COBOL and Java allows:

• COBOL to call Java and Java to call COBOL (cascading)

•Java and COBOL run within the same transaction (UOW) with database support for:

oDB2 from COBOL (static SQL) and Java (JDBC Type-2)

oDL1 from COBOL and Java

oMQ access from Java (future)

16

JZOS in use for mission critical applications since 2013•Huge amounts of data is manipulated•Throughput is very important•Strict timing window for the business

Page 17: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Questions?

17

Page 18: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Page 19: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

1919

Important references

z/OS Java web site– http://www.ibm.com/systems/z/os/zos/tools/java/

IBM SDK Java Technology Edition Version 7 Information Center– http://publib.boulder.ibm.com/infocenter/java7sdk/v7r0/index.jsp

IBM SDK Java Technology Edition Version 6 Supplement– http://public.dhe.ibm.com/common/ssi/ecm/en/zsl03118usen/ZSL03118USEN.PDF

JZOS Batch Launcher and Toolkit Installation and User’s Guide (SA38-0696-00) – For JZOS function included in IBM Java SE 7 SDKs for z/OS– http://publibz.boulder.ibm.com/epubs/pdf/ajvc0110.pdf

JZOS Batch Launcher and Toolkit Installation and User’s Guide (SA23-2245-03)– For JZOS function included in IBM Java SE 6 and SE 5 SDKs for z/OS– http://publibfi.boulder.ibm.com/epubs/pdf/ajvc0103.pdf

Page 20: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

2020

New and existing supported Java products – z/OS IBM 31-bit SDK for z/OS, Java Technology Edition, Version 8.0

– Web available on March 6th, 2015 at Java SE 8 level– Product 5655-DGG, supported on z/OS V1.13 and above

IBM 64-bit SDK for z/OS, Java Technology Edition, Version 8.0– Web available on March 6th, 2015 at Java SE 8 level– Product 5655-DGH, supported on z/OS V1.13 and above

IBM 31-bit SDK for z/OS, Java Technology Edition, Version 7 Release 1– Web available on December, 2013 at Java SE 7 level– Product 5655-W43, supported on z/OS V1.12 and above

IBM 64-bit SDK for z/OS, Java Technology Edition, Version 7 Release 1– Web available on December, 2013 at Java SE 7 level– Product 5655-W44, supported on z/OS V1.12 and above

IBM 31-bit SDK for z/OS, Java Technology Edition, Version 7.0– Web available on October 4, 2011 at Java SE 7 level– Product 5655-W43, supported on z/OS V1.10 and above

IBM 64-bit SDK for z/OS, Java Technology Edition, Version 7.0– Web available on October 4, 2011 at Java SE 7 level– Product 5655-W44, supported on z/OS V1.10 and above

IBM 31-bit SDK for z/OS, Java Technology Edition, Version 6.0.1– Web available on March 15, 2011 at Java SE 6 level– Product 5655-R31, supported on z/OS V1.10 and above

IBM 64-bit SDK for z/OS, Java Technology Edition, Version 6.0.1– Web available on March 15, 2011 at Java SE 6 level– Product 5655-R32, supported on z/OS V1.10 and above

IBM 31-bit SDK for z/OS, Java Technology Edition, Version 6.0.0– Web available on December 14, 2007 at Java SE 6 level– Product 5655-R31

IBM 64-bit SDK for z/OS, Java Technology Edition, Version 6.0.0– Web available on December 14, 2007 at Java SE 6 level– Product 5655-R32

IBM 31-bit SDK for z/OS, Java 2 Technology Edition, Version 5.0 – Web available on November 30, 2005 – Product 5655-N98

IBM 64-bit SDK for z/OS, Java 2 Technology Edition, Version 5.0 – Web available on November 30, 2005– Product 5655-N99

All products are delivered via the z/OS Java website in non-SMP/E format and via ShopIBM in SMP/E format All products are independently orderable and serviceable and follow the z/OS RFA rules for Withdrawal from

Marketing and End of Service

Page 21: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

21

Page 22: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

2222

z/OS - IBM Business Rules Processing with IBM Java 8 and z13

(Controlled measurement environment, results may vary)

z/OS - aggregate 2x improvement from IBM Java 8 and IBM z13

Page 23: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

2323

Linux on z - IBM Business Rules Processing with IBM Java 8 and z13

(Controlled measurement environment, results may vary)

z/VM IFL aggregate 2x improvement from IBM Java 8 and IBM z13

Page 24: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java in CICS – zEC12, z13 and z13 with SMT2

CICS Transaction Server for z/OS V5.2 with Java V7.1 Measurements on both IBM z13 and zEC12 obtained using 3 GPs and 1 zIIP

24

Disclaimer Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

Page 25: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

z/OS Connect with CICS – Hardware Improvements

35% ITR increasezEC12 z13

Disclaimer Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. Some measurements were obtained used beta developmental code.

• CICS TS V5.3 open beta developmental code with Liberty V8.5.5.3 • Java V7.1 with IBMJCECCA support enabled• Measurements on both IBM z13 and zEC12 obtained using 3 GPs and 1 zIIP

25

Page 26: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

z/OS Connect with CICS – Java Improvements

Disclaimer Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. Some measurements were obtained used beta developmental code.

• CICS TS V5.3 with Liberty V8.5.5.7 + z/OS Connect 1.2• Java V7.1 SR3 + Java 8 SR2 with IBMJCECCA support enabled• Measurements on IBM z13 obtained using 3 GPs and 1 zIIP

26

Page 27: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

27 (Controlled measurement environment, results may vary)

IMS Mobile Feature Pack 73% aggregate improvement in throughput from z13 and IBM Java8

z/OS Connect with IMS (Mobile Feature Pack)

Page 28: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

IMS JMP Regions Overhead

28 (Controlled measurement environment, results may vary)

JMP regions 25% better throughput on z13 vs zEC12

JMP regions 34% better through on zEC12 vs z196

Page 29: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

29

IMS JMP Speed-Test

Over 9.3x aggregate throughput improvement from 2009 to 2015 due to the following enhancements

Java version to version performance improvements IMS improvements Hardware improvements DASD improvements

(Controlled measurement environment, results may vary)

Page 30: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

30

Linux on z - Java Store, Inventory and Point-of-Sale App with IBM Java 8 and z13

2x improvement in throughput with IBM Java 8 and IBM z13(Controlled measurement environment, results may vary)

Page 31: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

3131

z/OS WAS/Liberty 8.5.5.5 – SSL-Enabled DayTrader 3.0

(Controlled measurement environment, results may vary)

z/OS - 2.6x improvement in throughput with IBM Java 8 and IBM z13

Page 32: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

3232

z/VM IFLs WAS/Liberty 8.5.5.5 – SSL-Enabled DayTrader 3.0

(Controlled measurement environment, results may vary)

z/VM Linux on z - 2.6x improvement in throughput with IBM Java 8 and IBM z13

Page 33: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Linux on z – DayTrader 3 on Liberty SMT Improvements

33 (Controlled measurement environment, results may vary)

Page 34: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

3434

WebSphere – Linux on z Virtualized Cluster

(Controlled measurement environment, results may vary)

Between 1.36x and 1.66x improved throughput for a virtualized WAS cluster running DayTrader on z13 when compared to zEC12

0.00

0.20

0.40

0.60

0.80

1.00

1.20

1.40

1.60

1.80

zEC12 z13 SMT vs zEC12

Linux on z - SLES 11 SP3, WAS 8.5.5 Java 7.1, DayTrader3

8 CP - 16 guests

0.00

0.20

0.40

0.60

0.80

1.00

1.20

1.40

1.60

1.80

zEC12 z13 SMT vs zEC12

Linux on z - SLES 11 SP3, WAS 8.5.5 Java 7.1, DayTrader3

32 CP - 64 guests

Page 35: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Transform your Data - Data Access Accelerator in IBM Java 7R1

35

A Java library for bare-bones data conversion + arithmetic

Operates directly on byte arrays

Orchestrated with JIT for deep platform opt.

Avoids expensive Java object instantiation

Library is platform and JVM-neutral

Current Approach:byte[] addPacked(array a[], array b[]) {

BigDecimal a_bd = convertPackedToBd(a[]);

BigDecimal b_bd = convertPackedToBd(b[]);

a_bd.add(b_bd);

return (convertBDtoPacked(a_bd));

}

Proposed Solution:

byte[] addPacked(array a[], array b[]) {

DAA.addPacked(a[], b[]);

return (a[]);

}

Marshalling and Un-marshalling Transform primitive type (short, int, long, float, double) byte array

Support both big/little endian byte arrays

Packed Decimal (PD) OperationsArithmetic: +, -, *, /, % on 2 PD operands

Relation: >,<,>=,<=,==,!= on 2 PD operands

Error checking: checks if PD operand is well-formed

Other: shifting, and moving ops on PD operand

Decimal Data Type ConversionsDecimal Primitive: Convert Packed Decimal(PD), External

Decimal(ED), Unicode Decimal(UD) primitive types (int, long)

Decimal Decimal: Convert between dec. types (PD, ED, UD)

Decimal Java: Convert dec. types (PD, ED, UD) BigDecimal, BigInteger

www-01.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.zos.80.doc/user/daa.html

Page 36: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

JZOS Medicare Record Benchmark : With and without DAA

http://www.ibm.com/developerworks/java/zos/javadoc/jzos/index.html?com/ibm/jzos/sample/fields/MedicareRecord.html

(Controlled measurement environment, results may vary)

CPU-time processing 5 million medical records

• Aggregate 2.2x improvement from DAA with IBM Java8 and z13• 83% improvement from DAA on Java8 (vs 55% with Java7.1 SR1) on z13

Page 37: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

© 2015 IBM Corporation 37

Linux on z Systems : Spark

Up to 1.5x Faster Insights for Real-time Analytics using Spark’s Core PrimitivesUse cases (relative to Financial Transactions demo)Sentiment analysis on streaming twitter data for real-time decisions

Batch sentiment analysis on news article databases

Streaming and batch analytics on Geospatial data for location based decisions

Co-locate Spark Analytics and Data stores for accelerated query and analytic operations

Speedup core Spark primitives for accelerated Spark based execution

Key Messages / Results– up to 1.5x faster insights for real-time analytics using Spark’s core

primitives on z13– up to 1.5x more data processed for model building, leading to real-

time insights with higher accuracy within a given batch window

Benchmark – Out-of-box, default Spark parameters, Scale Factor 0.65– 1 Spark worker– 8 ‘Spark’ core benchmarks in Spark-perf consist of scheduling-

throughput, scala-agg-by-key, scala-agg-by-key-int, scala-agg-by-key-naïve, scala-sort-by-key, scala-sort-by-key-int, scala-count, scala-count-w-fltr

System Stack– z13 running RHEL 7.1 with 6 cores, 565GB memory, IBM JDK 1.8

SR1-FP10, Spark 1.4– x86 6 cores, Intel(R) Xeon(R) CPU E5-2698 v3 @ 2.30GHz,

565GB memory running Ubuntu, IBM JDK 1.8 (SR1), Spark 1.4

*

*Composite Mean Across 8 ‘Spark’ Core Benchmarks

Page 38: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

© 2015 IBM Corporation 38

Linux on z Systems : SparkCo-locate Spark with Database on Linux on z13 outperforms running Spark off-platform up to 3x for aggregation analytical queryUse case

– Operational Analytics for a Brokerage running reports on top of OLTP Trading data

Key message: – Co-locating Spark on z13 to run Analytical queries on top of

OLTP database running in z13 outperforms running Spark off-platform

Results– Spark on z13 provides up to 3x for aggregation analytical

query

Configuration– z13 guest running RHEL 6.5 on z/VM 6.3 with 32 vCPUs (16

IFLs with SMT) and 512GB memory, Spark 1.5.0, IBM JDK1.7 SR3

– x86: 16 cores of Intel(R) Xeon(R) CPU E5-2698 v3 @2.30GHz, 512GB memory running SLES 11.3, Spark 1.4.1, JDK 1.8

Test – Scala map-reduce script (aggregation query) on TPC-E 20K

scale Trade table using 1 master and 4 worker JVMs– Out-of-box, default parameters, no tuning

3.1x

2.3x

1.9x

Page 39: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

© 2015 IBM Corporation 39

Linux on z Systems: ODM

ODM 1.5x higher rule processing rate on z13 Use Case

– IBM ILOG Optimization Decision Manager (ODM) Enterprise makes optimization technology accessible to business, enabling intelligent planning and scheduling decisions.

Results– ODM on z13 has up to 1.5x better rule

processing rate than alternative platform

Benchmark– ILOG ODM benchmark:

Segmentation300RulesFastpathRVEJB

System Stack– z13 z/VM guest running SLES 11.3 on z/VM 6.3

with 4 vCPUs (2 IFLs with SMT) – Lenovo x3550 M4 (x86 with 2 cores of Intel(R)

Xeon(R) CPU E5-2640 v3 @ 2.60GHz running RHEL 7.1

Page 40: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

© 2015 IBM Corporation 40

Linux on z Systems: WAS Liberty DayTrader 3

WAS Liberty 1.5x better throughput on z13 Use Case

– The DayTrader 3 benchmark provides a suite of workloads for characterizing performance of a Java EE 6 Application Server. The workloads consist of an end-to-end Web application and a full set of Web primitives.

Key Messages / Results– z13 1.5x better throughput than alternative

platform running WAS/DayTrader

Benchmark– Websphere Application Server (WAS) Liberty

profile DayTrader3 using JMeter to simulate clients.

System Stack– z13 native LPAR on 4 IFL cores with SLES 12

using HiperSockets to client/db2 server– Lenovo x3550 M4 (x86 with 4 cores of Intel(R)

Xeon(R) CPU E5-2640 v3 @ 2.60GHz running RHEL 7.1 and 10gb Ethernet to client/db2 server

Intel Haswell LinuxONE

Page 41: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

zOS Liberty Ramp-up with IBM Java 8

DayTrader 3 ThroughputzOS 64-bit, 4 zEC12 cores, Liberty 8.5.5.5

Java 8Java 7.1Java 8 -Xtune:virt (warm)Java 7.1 -Xtune:virt (warm)Elapsed Time (sec)

Thro

ughp

ut (p

g/se

c)

(Controlled measurement environment, results may vary)

IBM Java 8 Ramp-up on DayTrader3/Liberty 8.5.5.5 over Java 7.1: –Xtune:virtualized improves by 88% Default improves by 22%

Page 42: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

IBM z13: SMT – Simultaneous Multi-Threading

Double the number of hardware threads per core– Independent threads can more effectively utilize pipeline

Threads share resources – may impact single thread perf– Pipeline (e.g. physical registers, FXU, FPU, LSU, etc.)– Cache

Throughput improvement is workload dependent

Two zIIP lanes handle more traffic overall

Page 43: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Vector Processing - Single Instruction Multiple Data (SIMD)

Operate on multiple data-elements (vectors) simultaneouslyCan offer dramatic speed-up to data-parallel operations

i.e. Matrix ops, string processing, etc.

Vector registers are 128-bits wide and operate concurrently on:•Two 64-bit integer or floating point values•Four 32-bit integer or floating point values•Sixteen 8-bit characters, etc.

Page 44: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

44(Controlled measurement environment, results may vary)

Primitive operations are between 1.6x and 60x faster with SIMD!

IBM Java 8 - String, Character Conversion, Loop Acceleration with SIMD

IBM z13 running Java 8 on zOSSingle Instruction Multiple Data (SIMD) vector engine exploitation

java/lang/String compareTo compareToIgnoreCase contains contentEquals equals indexOf lastIndexOf regionMatches toLowerCase toUpperCase getBytes

java/util/Arrays equals (primitive types)

String encoding converters ISO8859-1 ASCII UTF-8 / UTF-16

Auto-SIMD Simple loops (i.e. Matrix

Multiplication)

Page 45: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

IBM Java 8: CPU-Intensive Benchmark

4545 (Controlled measurement environment, results may vary)

IBM z13 + IBM Java 8 show composite improvements of 61% over zEC12 + Java7 SR4 running the CPU Intensive benchmark

Page 46: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

4646

Mobile on z – z/OS Connect on IBM Java 8 and zEC12

(Controlled measurement environment, results may vary)

5 - 16.4% throughput improvement from IBM Java 8 on IBM zEC12

JMeter

Client Driver

z/OS ConnectLiberty Profile 8.5.5.3 WOLA

CICS 5.18 to 40 AORs 8 OTE Tasks/region DB2 10 for z/OS

RTWCOBOL

z/OS 2.1 on zEC12Linux on z

Page 47: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Minecraft on z

47

Page 48: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java 8 Summary of Crypto Acceleration

• Certificate (Public key)• RSA• ECDSA

• Forward Security (Diffie-Hellman):

• DHE• ECDHE

• ECC Named curves (NIST, Brainpool, Koblitz…)

• NIST P192• NIST P224 • NIST P256• Many more...

• Cipher:• AES• 3DES• DES• RC4

• Mode:• CBC• CFB• OFB• CTR• GCM• CCM• ECB

• SHA1 • SHA2

• SHA224• SHA256• SHA384• SHA512

• MD5• SHA3

Page 49: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

49

IBM and Java

Java is critically important to IBM– Fundamental infrastructure for IBM’s software portfolio– WebSphere, Lotus, Tivoli, Rational, Information Management (IM)

IBM is investing strategically for Java in virtual machines– As of Java 5.0, single JVM support

• JME, JSE, JEE– New technology base (J9/TR Compiler) on which to deliver improved performance,

reliability, serviceability

IBM also invests in, and supports public innovation in Java– OpenJDK, Eclipse, Apache (XML, Aries, Derby, Geronimo, Harmony, Hadoop …)– Broad participation in relevant open standards (JCP, OSGi)

Page 50: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

50

JVM Architectural Overview

Debugger Profilers Java Application Code

JVMTI JSE7 Classes

JSE8Classe

s

HarmonyClasses

User Natives

GC / JIT / Class Lib. Natives Java Native Interface (JNI)

Core VM (Interpreter, Verifier, Stack Walker)

Trace & Dump Engines

Port Library (Files, Sockets, Memory)

Thread Library

AIX Linux Windows z/OS

PPC-32PPC-64

x86-32x86-64

PPC-32PPC-64

zArch-31zArch-64

x86-32x86-64

zArch-31zArch-64

Operating Systems

Java Runtime Environmente.g. J9 R28

Java APIe.g. Java7/Java8

User Code

= User Code

= Java Platform API

= VM-aware

= Core VM

Page 51: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Key Differences between Oracle and IBM Java

IBM and Oracle use the same reference implementation of Java Class Libraries (e.g. OpenJDK)

Key differences to be aware of:1. Security: Standards do not impose strong separation of interest2. ORB: OMG CORBA standard rules3. XML: Xerces/Xalan used by both vendors as of Java5, although different

levels may be used.

IBM uses the J9/TR runtime, Oracle uses Hotspot–Different JIT/GC/VM tuning and controls–Tooling is distinct (e.g. IBM Health Center)

51

Page 52: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

52

IBM Java Runtime Environment

IBM’s implementation of Java 5/6/7/8 are built with IBM J9 Virtual Machine and IBM Testarossa JIT Compiler technology

• Independent clean-room JVM runtime & JIT compiler

Combines best-of breed from embedded, development and server environments… from a cell-phone to a mainframe!

• Lightweight flexible/scalable technology• World class garbage collection – gencon, balanced GC policies• Startup & Footprint - Shared classes, Ahead-of-time (AOT) compilation• 64-bit performance - Compressed references & Large Pages• Deep System z exploitation – z13/zEC12/z196/z10/z9/z990 exploitation• Cost-effective for z - zIIP Ready!

Millions of instances of J9/TR compiler

Page 53: Java on z overview 20161107

© 2015 IBM Corporation

Java on IBM zEC12

Java Road Map

53

Language UpdatesJava 5.0 • New Language features:

• Autoboxing• Enumerated types• Generics• Metadata

Java 6.0• Performance Improvements• Client WebServices Support

• Support for dynamic languages• Improve ease of use for SWING• New IO APIs (NIO2)• Java persistence API• JMX 2.x and WS connection for JMX

agents• Language Changes

Java 7.0

IBM Java RuntimesIBM Java 5.0 (J9 R23) • Improved performance

• Generational Garbage Collector• Shared classes support• New J9 Virtual Machine• New Testarossa JIT technology

• First Failure Data Capture• Full Speed Debug• Hot Code Replace• Common runtime technology

• ME, SE, EE

IBM Java 6.0 (J9 R24)• Improvements in

• Performance• Serviceability tooling• Class Sharing

• XML parser improvements• z10™ Exploitation

• DFP exploitation for BigDecimal• Large Pages• New ISA features

5.0

6.0

2005 2009

SE 5

.0

18 p

latfo

rms

SE 6

.020

pla

tform

s

EE 5

WAS6.1

WAS7.0

2006 2008

WAS6.0

200704

EE 6.x

**Timelines and deliveries are subject to change.

2010 2011

IBM Java 6.0.1/Java 7 (J9 R26)

• Improvements in• Performance• GC Technology

• z196™ Exploitation• OOO Pipeline• 70+ New Instructions

• JZOS/Security Enhancements

WAS8.5

2012 2013 20147.0

• Language improvements • Closures for simplified fork/join

Java 8.0**

SE60

1/ 7

.x>=

20

plat

form

s

IBM Java 7 (J9 R26 SR3)• Improvements in

• Performance• zEC12™ Exploitation

• Transactional Execution• Flash 1Meg pageable LPs• 2G large pages• Hints/traps

IBM Java 7R1 (J9 R27)• Improvements in

• Performance• RAS• Monitoring

• zEC12™ Exploitation• zEDC for zip acceleration• SMC-R integration• Transactional Execution• Runtime instrumentation• Hints/traps

• Data Access Accelerator

SE60

1/ 7

.x>=

20

plat

form

s

Page 54: Java on z overview 20161107

© 2015 IBM Corporation

Java on IBM zEC12

54

zEC12 – More Hardware for JavaContinued aggressive investment in Java on ZSignificant set of new hardware features tailored

and co-designed with Java

Hardware Transaction Memory (HTM) Better concurrency for multi-threaded applicationseg. ~2X improvement to juc.ConcurrentLinkedQueue

Run-time Instrumentation (RI)Innovation new h/w facility designed for managed runtimes Enables new expanse of JRE optimizations

2GB page framesImproved performance targeting 64-bit heaps

Pageable 1M large pages with Flash ExpressBetter versatility of managing memory

Shared-Memory-CommunicationRDMA over Converged Ethernet

zEnterprise Data Compression acceleratorgzip accelerator

New software hints/directives/trapsBranch preload improves branch predictionReduce overhead of implicit bounds/null checks

New 5.5 GHz 6-Core Processor Chip

Large caches to optimize data serving

Second generation OOO design

Up-to 60% improvement in throughput amongst Java workloads measured with zEC12 and IBM Java 7

Engineered Together—IBM Java and zEC12 Boost Workload Performancehttp://www.ibmsystemsmag.com/mainframe/trends/whatsnew/java_compiler/

Page 55: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Linux on System z and IBM Java 7 on zEC12: 64-Bit Java Multi-threaded Benchmark on 16-Way

5555(Controlled measurement environment, results may vary)

~12x aggregate hardware and software improvement from IBM Java5SR4 on z9 to IBM Java7 on zEC12• LP=Large Pages for Java heap CR= Java Compressed References• IBM Java7SR3 using -Xaggressive + 1Meg large pages

Linux on System z - Multi-Threaded 64 bit Java Workload 16-Way ~12x Improvement in Hardware and Software

0

20

40

60

80

100

120

140

160

1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

Threads

Nor

mal

ized

Thr

ough

put

zEC12 SDK 7 SR3 Aggressive + LP Code Cache

zEC12 SDK 7 SR1

z196 SDK 7 SR1

z196 SDK 6 SR9

z10 SDK 6 SR4

z9 SDK 5 SR4 NO (CR or Heap LP)

Page 56: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java 8 -- Lambdas

New syntax to allows for concise and expressive code snippets

- can be thought of as ‘anonymous methods’

http://www.dzone.com/links/presentation_languagelibraryvm_coevolution_in_jav.html

Page 57: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java 8 – Lambdas for Streaming Operations

Lambdas can be pipelined to enable data stream operations– Intermediate operations on streams produce new streams– Terminal operations produce results

57

Enables exploitation of parallelism and supports multi-core programming

int totalWeight = widgets.stream() .filter(w->w.getColor() == RED) .matToInt(w->w.getWeight()) .SUM();

Page 58: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java 8 Summary of Crypto Acceleration

• Certificate (Public key)• RSA• ECDSA

• Forward Security (Diffie-Hellman):

• DHE• ECDHE

• ECC Named curves (NIST, Brainpool, Koblitz…)

• NIST P192• NIST P224 • NIST P256• Many more...

• Cipher:• AES• 3DES• DES• RC4

• Mode:• CBC• CFB• OFB• CTR• GCM• CCM• ECB

• SHA1 • SHA2

• SHA224• SHA256• SHA384• SHA512

• MD5• SHA3

Page 59: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

Java 8 - JMX Beans for Precise CPU Monitoring

New JMX Beans for reporting CPU usage categorized by:1. JVM System threads (JIT, GC, etc)2. Application threads3. Monitoring threads (to be able to excl. monitoring overhead)

Intended use-cases– Reporting transaction cpu usage– Identifying "expensive" transactions– Reporting JVM overhead over specific intervals– Foundation for future work on tracking idle behaviour

New classes1. com.ibm.lang.management.JVMCpuMonitorMXBean (Bean to request Data)

• getThreadsCpuUsage()• setThreadCategory()/getThreadCategory()

– com.ibm.lang.management.JVMCpuMonitorInfo (Object with Data)

Overhead may be visible on some platformsOption to trade-off more precise GC-time reporting vs. reduced overhead

-XX:+ReduceCPUMonitorOverhead(default.)/-XX:-ReduceCPUMonitorOverhead

(z/OS cannot enable more precise GC-time reporting today)

59

Page 60: Java on z overview 20161107

© 2016 IBM Corporation

Java on IBM z13 @JavaOnZ

JZOS – SMF Logging

SMF Logging to Record type 121 subtype 1JZOS_JVM_SMF_LOGGING environment variable to enable

Captures JVM runtime information– Uptime, number of live threads and GC statistics

Record is logged during JVM shutdown

FUTURE function being considered**SMF records to include breakdown of Application, JVM system, GC and JIT CPU-time

Information available on a per-thread basis

Captured periodically at user-defined intervals

60 **Timelines and deliveries are subject to change.