Programming Language X10 on Multiple JVMs

Size: px
Start display at page:

Download "Programming Language X10 on Multiple JVMs"

Transcription

1 Workshop on the State of Art in Software Research, at UC Irvine Programming Language on Multiple JVMs 2013/05/15 Kiyokuni (KIYO) Kawachiya and Mikio Takeuchi IBM Research - Tokyo

2 This Talk Focuses on Managed Managed = implementation on Java (i.e. managed runtime) program is translated into Java source code and compiled into Java bytecode, then executed on multiple Java VMs Source Compiler Frontend Parsing / Type Check AST AST Optimizations AST Lowering AST: Abstract Syntax Tree XRX: Runtime in XRJ: Runtime in Java XRC: Runtime in C++ RT: Comm. Runtime AST C++ Backend C++ Code Generation Java Code Generation Java Backend C++ Source Java Source XRC C++ Compiler XRX Java Compiler XRJ Native Native Code Native Env RT JNI Bytecode Java VMs Managed /05/15 Kiyokuni Kawachiya

3 Hello World in Program class MyHello { publicstaticdefmain(array[string]) { finish for (pl in Place.places()) { async at (pl) Console.OUT.println("Hello World from place " + here.id); } } } Parallel distributed execution by creating an activity at each place Compile and Execute $ x10c MyHello.x10 # compile $ ls MyHello.x10 MyHello$$Main.class MyHello.java MyHello$$Closure$0.class MyHello.class $ _NPLACES=4 x10 MyHello # execute Hello World from place 3 Hello World from place 0 Hello World from place 1 Hello World from place 2 program is translated into Java (or C+) source code and further compiled Executed asynchronously on each place For C++ back-end: $ x10c++ -o MyHello MyHello.x10 $ _NPLACES=4 runx10 MyHello /05/15 Kiyokuni Kawachiya

4 Distributed Execution Model of APGAS: Asynchronous Partitioned Global Address Space Address space Place 0 Place 1... Place MAX_PLACES-1 Activity Creation async at async async at at Place shift Object DistArray Local ref DistArray Remote ref Immutable data, class, struct, function A global address space is divided into multiple places ( computer) Place can contain activities and data (objects, structs, functions) In Managed, each place is implemented by a Java VM An object belongs to a place where it is created Object cannot be accessed from other places, but Object can be remotely referenced from other places, using GlobalRef /05/15 Kiyokuni Kawachiya

5 Characteristics 1 class Sample[T] implements (String)=>String { 2 var data:t; 3 def this(d:t) { data = d; } // constructor 4 public operator this(str:string) = str + data; 5 6 static struct MyPair[T,U](fst:T,snd:U) { 7 public def tostring() = "(" + fst + "," + snd +")"; 8 } 9 10 public static def main(args:array[string](1)) { 11 /* Class example */ 12 val o = new Sample[Double](1.2); 13 Console.OUT.println(o.data); // -> Console.OUT.println(o("Data is ")); // -> Data is var a:any = o; 16 Console.OUT.println(o.typeName());// -> Sample[x10.lang.Double] 17 /* Struct example */ 18 val p = MyPair[Int,Double](1,2.3); 19 Console.OUT.println(p); // -> (1,2.3) 20 val x = 4; 21 /* Function example */ 22 val q = MyPair[(Int)=>Int, Int]((i:Int)=>i*x, 5); 23 Console.OUT.println(q.fst(q.snd)); // -> /05/15 Kiyokuni Kawachiya Java-like syntax, but uses var, val, def,... Operators can also be defined New 1st class data types, structs and functions 24 /* Array example */ 25 val pt = [2,4] as Point; // Point{rank==2} 26 val R1 = (1..2)*(3..5); // Region{rank==2} 27 val arr = new Array[Int](R1); // Array[Int]{rank==2} 28 arr(2,4) = 8; 29 Console.OUT.println(arr(pt)); // -> 8 30 /* Parallel processing */ 31 var m:int = 0; val i = 1; // mutable/immutable data 32 finish async { m = i * 2; } 33 Console.OUT.println(m); // -> 2 34 /* Distributed processing */ 35 at (here.next()) o.data = 3.4; // copy of o is modified 36 Console.OUT.println(o.data); // -> /* GlobalRef example */ 38 val g = GlobalRef(o); 39 at (here.next()) { at (g.home) g().data = 5.6; } 40 Console.OUT.println(o.data); // -> } 42 } Strong type system type parameters are not erased Primitive types (Int, Double,...) are defined as structs Rich array class Parallel/distributed processing Global data access

6 Compiling to Java 1 class B { 2 def w() = this; 3 } 4 class C(p:Int) extends B { 5 val q:int; var r:int; 6 def u() { } 7 private def v() { } 8 def w() = super.w(); 9 def this(p:int) { 10 property(p); 11 q = 1; 12 } 13 static val s = Place.MAX_PLACES; 14 static def t() { } 15 } Class/field names are basically same Constructor is separated into Java constructor and field initializer to support inlining by front-end For private instance method and nonvirtual call, additional bridge methods are generated to support inlining by front-end (in 2.3.0) x10c 1 import x10.core.concurrent.atomicinteger; 2 import x10.lang.exceptionininitializer; 3 import x10.lang.place; 4 import x10.runtime.impl.java.initdispatcher; 5 public class C extends B { 6 public int p; // property 7 public int q, r; // instance fields 8 // constructor just for allocation 9 public C(System[] $dummy) { super($dummy); } 10 // instance field initializer 11 final public C C$$init$S(int p) { 12 this.p = p; 13 this.r = 0; 14 this.q = 1; 15 return this; 16 } 17 // 1-phase constructor for Java interop programmers 18 public C(int p) { 19 this((system[]) null); C$$init$S(p); 20 } 21 public void u() {} // instance methods 22 private void v() {} 23 // bridge for private instance method 24 public static void v$p(c C) { C.v(); } 25 public B w() { return super.w(); } 26 // bridge for non-virtual call 27 public B B$w$S() { return super.w(); } 28 public static void t() {} // static method Java (some lines are omitted) /05/15 Kiyokuni Kawachiya

7 Distributed Execution using Multiple JVMs Multi-JVM is supported in Each Place uses its own Java VM Uses common RT (in C++) through JNI x10 command Place P JVM Initiate Places via SSH JVM Place Q x10.runtime.impl.java.runtime Run activity at place P Serialize function into byte array Send byte array x10.runtime.impl.java.runtime Invoke function Deserialize function from byte array Receive byte array from place P JNI (Java->C++) JNI (Java->C++) x10rt_send_msg x10rt_probe Msg Buffer Communication Physical Layer (e.g. socket, MPI) Communication Physical Layer (e.g. socket, MPI) Byte array message Byte array message /05/15 Kiyokuni Kawachiya Network Uses backend unique wire format in 2.2.0

8 Remote Reference using GlobalRef 1 class GRefExample { 2 static class ResultBox { var value:int = 0; } 3 public static def main(array[string]) { 4 val place1 = here.next(); 5 val o = new ResultBox(); 6 val g = GlobalRef[ResultBox](o); 7 finish { 8 at (place1) async { // create an activity at place1 9 val r = do_long_calculation(g); 10 at (g) g().value = r; // set the result through GlobalRef 11 } 12 do_some_calculation_locally(); 13 } // end of finish 14 Console.OUT.println(o.value); 15 } } Figure. Distributed Processing with GlobalRef. Place 0 o g() g (at Line 6) g (at Line 10) at Place 1 g (at Line 9) This object must not be collected while its GlobalRefs (g) exist in other places at GlobalRef is a special struct to hold a global reference to an object Created by GlobalRef[T](obj) and cannot be modified The object can be accessed by at (g) g() /05/15 Kiyokuni Kawachiya

9 Garbage Collection in Managed data is represented by Java objects and collected by each JVM s GC However, remote reference is not a reference in the JVM level Place 0 A C D (GlobalRef) Place 1 environment on multiple JVMs Even if A disappears, C must not be collected B This remote reference is not visible to underlying JVMs 123 JVM0 GC JVM1 GC In old, remotely-referenced (globalized) objects were registered into a management table and never collected We needed better implementation /05/15 Kiyokuni Kawachiya Computer 0 Computer 1 Network Figure. Remote References across JVMs.

10 Behavior of the Distributed GC Creating and using a GlobalRef XRJ: Runtime in Java GOT: Globalized Object Tracker RRT: Remote Reference Tracker 1 class GRefExample { 2 static class ResultBox { var value:int = 0; } 3 public static def main(array[string]) { 4 val place1 = here.next(); 5 val o = new ResultBox(); 6 val g = GlobalRef[ResultBox](o); // g 7 finish { 8 at (place1) async { // g 9 val r = do_long_calculation(g); 10 at (g) g().value = r; // g 11 } 12 do_some_calculation_locally(); 13 } // end of finish 14 Console.OUT.println(o.value); 15 } } Place 0 Place 1 g XRJ obj id=0 id2got 123 got2id 123 g o obj g (at Place 1) GOT for o RRT for g weakref strongref rcnt=0 rcnt=10 rcnt=8 obj=null weakref wcnt=10 wcnt=8 rrttable XRJ Computer 0 Computer 1 Network Figure. Data Structures for the Distributed GC /05/15 Kiyokuni Kawachiya

11 Behavior of the Distributed GC Collecting the globalized object, and related data XRJ: Runtime in Java GOT: Globalized Object Tracker RRT: Remote Reference Tracker 1 class GRefExample { 2 static class ResultBox { var value:int = 0; } 3 public static def main(array[string]) { 4 val place1 = here.next(); 5 val o = new ResultBox(); 6 val g = GlobalRef[ResultBox](o); // g 7 finish { 8 at (place1) async { // g 9 val r = do_long_calculation(g); 10 at (g) g().value = r; // g 11 } 12 do_some_calculation_locally(); 13 } // end of finish 14 Console.OUT.println(o.value); 15 } } Place 0 Place 1 g XRJ obj id2got 123 got2id obj=null Computer 0 Computer 1 Network Extra inter-place comm. is performed only when a remote ref. is removed 123 g o obj g (at Place 1) GOT for o RRT for g weakref strongref rcnt=0 rcnt=8 weakref wcnt=8 Figure. Data Structures for the Distributed GC. rrttable XRJ /05/15 Kiyokuni Kawachiya

12 Evaluation: Distributed Fibonacci 1 class DistFib { 2 static val atomici = new x10.util.concurrent.atomicinteger(0); 3 static def getavailplace() { // returns next available place 4 val i = at (Place.FIRST_PLACE) atomici.incrementandget(); 5 return Place(i % Place.MAX_PLACES); 6 } 7 8 private val root = GlobalRef[DistFib](this); // ref to root obj 9 transient var v:int; // in-out param, exists only in the root 10 def this(n:int) { v = n; } 11 def compute() { // global method, can be invoked at any place 12 val n = at (root) root().v; // get the input from the root object 13 if (n < 2) return; // Fib(0)==0, Fib(1)==1 14 val f1 = new DistFib(n-1), f2 = new DistFib(n-2); 15 finish { 16 at (getavailplace()) async f1.compute(); // compute remotely 17 f2.compute(); // compute here 18 } 19 val r = f1.v + f2.v; // result = Fib(n-1) + Fib(n-2) 20 at (root) root().v = r; // set the result to the root object 21 } public static def main(args:array[string](1)) { 24 var n:int = 10; if (args.size > 0) n = Int.parseInt(args(0)); 25 val f = new DistFib(n); f.compute(); // this line is measured 26 Console.OUT.println(f.v); 27 } 28 } Figure. Distributed Fibonacci /05/15 Kiyokuni Kawachiya Calculates n-th Fibonacci number recursively using multiple places Field root is a GlobalRef that points to the root object Field v of the root object is accessed by at (root) root().v... Place 0 Place 1 DistFib(3) root v = 3 DistFib(2) root v = 2 DistFib(1) root v = 1 at DistFib(2), copied root v = undef DistFib(1) root v = 1 DistFib(0) root v = 0 at Place 2 DistFib(1), copied root v = undef

13 Result: Distributed Fibonacci Environment: 6-core Xeon X5670 blades (HT disabled) 32GB memory, 40Gbps Infiniband Red Hat Enterprise Server Linux 5.5 x86_64 IBM J9 Java VM for Linux x86_64, Version 6.0 SR9 Generational GC, -Xms4m Xmx512m 16 places by starting 4 JVMs on each of 4 blades Execution times to calculate n-th Fibonacci numbers using 16 places * Logarithmic scale Elapsed time in msec (smaller is better) 100,000 10,000 1, n = Base Dist. GC 5 (5) 10 (55) 15 (610) 20 (6765) 25 (75025) Index (and result) Figure. Execution Times of Distributed Fibonacci. For very small n s, base is faster by about 10% Because of the small overhead in the Dist. GC version For n=25, distributed GC version is 13% faster Because heap is not consumed by uncollectable objects Heap size of Place 0 reaches 468MB in base, but 148MB in Dist. GC /05/15 Kiyokuni Kawachiya

14 Summary of the Talk Explained implementation details of Managed ( on Java VMs) Challenges in compiling to Java For performance and functionality Distributed GC over Multiple Java VMs No modification to the underlying JVMs Introduced two data structures for monitoring globalized objects and remote references /05/15 Kiyokuni Kawachiya

A Tutorial on X10 and its Implementation

A Tutorial on X10 and its Implementation A Tutorial on X10 and its Implementation David Grove IBM TJ Watson Research Center This material is based upon work supported in part by the Defense Advanced Research Projects Agency under its Agreement

More information

Semester Review. CSC 301, Fall 2015

Semester Review. CSC 301, Fall 2015 Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!

More information

Tool - 1: Health Center

Tool - 1: Health Center Tool - 1: Health Center Joseph Amrith Raj http://facebook.com/webspherelibrary 2 Tool - 1: Health Center Table of Contents WebSphere Application Server Troubleshooting... Error! Bookmark not defined. About

More information

Rootbeer: Seamlessly using GPUs from Java

Rootbeer: Seamlessly using GPUs from Java Rootbeer: Seamlessly using GPUs from Java Phil Pratt-Szeliga. Dr. Jim Fawcett. Dr. Roy Welch. Syracuse University. Rootbeer Overview and Motivation Rootbeer allows a developer to program a GPU in Java

More information

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2015 The third

More information

Replication on Virtual Machines

Replication on Virtual Machines Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism

More information

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program

Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2014 Jill Seaman

More information

HeapStats: Your Dependable Helper for Java Applications, from Development to Operation

HeapStats: Your Dependable Helper for Java Applications, from Development to Operation : Technologies for Promoting Use of Open Source Software that Contribute to Reducing TCO of IT Platform HeapStats: Your Dependable Helper for Java Applications, from Development to Operation Shinji Takao,

More information

RCL: Software Prototype

RCL: Software Prototype Business Continuity as a Service ICT FP7-609828 RCL: Software Prototype D3.2.1 June 2014 Document Information Scheduled delivery 30.06.2014 Actual delivery 30.06.2014 Version 1.0 Responsible Partner IBM

More information

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

Memory Profiling using Visual VM

Memory Profiling using Visual VM Memory Profiling using Visual VM What type of profiling is most important? Clear answer: memory profiling! The speed of your application typically is something that you feel throughout your whole development

More information

WebSphere Architect (Performance and Monitoring) 2011 IBM Corporation

WebSphere Architect (Performance and Monitoring) 2011 IBM Corporation Track Name: Application Infrastructure Topic : WebSphere Application Server Top 10 Performance Tuning Recommendations. Presenter Name : Vishal A Charegaonkar WebSphere Architect (Performance and Monitoring)

More information

To Java SE 8, and Beyond (Plan B)

To Java SE 8, and Beyond (Plan B) 11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption

More information

Lecture 7: Class design for security

Lecture 7: Class design for security Lecture topics Class design for security Visibility of classes, fields, and methods Implications of using inner classes Mutability Design for sending objects across JVMs (serialization) Visibility modifiers

More information

Performance brief for IBM WebSphere Application Server 7.0 with VMware ESX 4.0 on HP ProLiant DL380 G6 server

Performance brief for IBM WebSphere Application Server 7.0 with VMware ESX 4.0 on HP ProLiant DL380 G6 server Performance brief for IBM WebSphere Application Server.0 with VMware ESX.0 on HP ProLiant DL0 G server Table of contents Executive summary... WebSphere test configuration... Server information... WebSphere

More information

C Compiler Targeting the Java Virtual Machine

C Compiler Targeting the Java Virtual Machine C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the

More information

How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com

How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com How to create/avoid memory leak in Java and.net? Venkat Subramaniam venkats@durasoftcorp.com http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic

More information

- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire

- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire - Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire il funzionamento della Java Virtual Machine (JVM): -

More information

The Decaffeinated Robot

The Decaffeinated Robot Developing on without Java Texas Linux Fest 2 April 2011 Overview for Why? architecture Decaffeinating for Why? architecture Decaffeinating for Why choose? Why? architecture Decaffeinating for Why choose?

More information

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM Note Before you use this information and the product it supports, read the

More information

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture

More information

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui

More information

Lecture 32: The Java Virtual Machine. The Java Virtual Machine

Lecture 32: The Java Virtual Machine. The Java Virtual Machine The University of North Carolina at Chapel Hill Spring 2002 Lecture 32: The Java Virtual Machine April 12 1 The Java Virtual Machine Java Architecture Java Programming Language Java Virtual Machine (JVM)

More information

CS170 Lab 11 Abstract Data Types & Objects

CS170 Lab 11 Abstract Data Types & Objects CS170 Lab 11 Abstract Data Types & Objects Introduction: Abstract Data Type (ADT) An abstract data type is commonly known as a class of objects An abstract data type in a program is used to represent (the

More information

An Overview of Java. overview-1

An Overview of Java. overview-1 An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2

More information

Clojure and Android. Daniel Solano Gómez. Clojure/conj 2011. Sattvik Software & Technology Resources, Ltd. Co.

Clojure and Android. Daniel Solano Gómez. Clojure/conj 2011. Sattvik Software & Technology Resources, Ltd. Co. Sattvik Software & Technology Resources, Ltd. Co. Clojure/conj 2011 Clojure in Small Places Sattvik Software & Technology Resources, Ltd. Co. Clojure/conj 2011 Clojure to go Sattvik Software & Technology

More information

Garbage Collection in the Java HotSpot Virtual Machine

Garbage Collection in the Java HotSpot Virtual Machine http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot

More information

Towards Performance and Productivity at Scale

Towards Performance and Productivity at Scale Reflections on X10 Towards Performance and Productivity at Scale David Grove IBM TJ Watson Research Center This material is based upon work supported in part by the Defense Advanced Research Projects Agency

More information

Reach 4 million Unity developers

Reach 4 million Unity developers Reach 4 million Unity developers with your Android library Vitaliy Zasadnyy Senior Unity Dev @ GetSocial Manager @ GDG Lviv Ankara Android Dev Days May 11-12, 2015 Why Unity? Daily Users 0 225 M 450 M

More information

Monitoring Java enviroment / applications

Monitoring Java enviroment / applications Monitoring Java enviroment / applications Uroš Majcen uros@quest-slo.com Java is Everywhere You Can Expect More. Java in Mars Rover With the help of Java Technology, and the Jet Propulsion Laboratory (JPL),

More information

MAC A Run Time monitoring and checking tool

MAC A Run Time monitoring and checking tool MAC A Run Time monitoring and checking tool Gursharan Singh Mohd. Salman Mehmood Agenda Motivation Software Development Steps Methods New Paradigm (Runtime Verification) Materializing Runtime Verification

More information

Lecture 18-19 Data Types and Types of a Language

Lecture 18-19 Data Types and Types of a Language Lecture 18-19 Data Types and Types of a Language April 29, 2014 Data Types and Types of a Language Data, Data Types and Types Type: Generalities Type Systems and Type Safety Type Equivalence, Coercion

More information

Spark: Cluster Computing with Working Sets

Spark: Cluster Computing with Working Sets Spark: Cluster Computing with Working Sets Outline Why? Mesos Resilient Distributed Dataset Spark & Scala Examples Uses Why? MapReduce deficiencies: Standard Dataflows are Acyclic Prevents Iterative Jobs

More information

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE BEAJRockit Mission Control Using JRockit Mission Control in the Eclipse IDE Mission Control 3.0.2 Document Revised: June, 2008 Contents 1. Introduction Benefits of the Integration................................................

More information

Identifying Performance Bottleneck using JRockit. - Shivaram Thirunavukkarasu Performance Engineer Wipro Technologies

Identifying Performance Bottleneck using JRockit. - Shivaram Thirunavukkarasu Performance Engineer Wipro Technologies Identifying Performance Bottleneck using JRockit - Shivaram Thirunavukkarasu Performance Engineer Wipro Technologies Table of Contents About JRockit Mission Control... 3 Five things to look for in JRMC

More information

Introduction to Java

Introduction to Java Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high

More information

B M C S O F T W A R E, I N C. BASIC BEST PRACTICES. Ross Cochran Principal SW Consultant

B M C S O F T W A R E, I N C. BASIC BEST PRACTICES. Ross Cochran Principal SW Consultant B M C S O F T W A R E, I N C. PATROL FOR WEBSPHERE APPLICATION SERVER BASIC BEST PRACTICES Ross Cochran Principal SW Consultant PAT R O L F O R W E B S P H E R E A P P L I C AT I O N S E R V E R BEST PRACTICES

More information

JavaCard. Java Card - old vs new

JavaCard. Java Card - old vs new JavaCard 1 Old Smart Cards: One program (applet) Written in machine-code, specific to chip Burned into ROM Java Card - old vs new old vs new smartcards New Smart Cards: Applet written in high-level language

More information

Java CPD (I) Frans Coenen Department of Computer Science

Java CPD (I) Frans Coenen Department of Computer Science Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials

More information

Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want.

Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want. Virtual machines Virtual machine systems can give everyone the OS (and hardware) that they want. IBM s VM provided an exact copy of the hardware to the user. Virtual Servers Virtual machines are very widespread.

More information

General Introduction

General Introduction Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime

More information

About me. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

About me. Copyright 2015, Oracle and/or its affiliates. All rights reserved. GOTO Chicago RETURN Cameron Purdy Senior Vice President Oracle About me The last time I spoke at a non-oracle event was QConin June 2012 I used to have fun making up Top 10 lists that would poke fun at

More information

Explain the relationship between a class and an object. Which is general and which is specific?

Explain the relationship between a class and an object. Which is general and which is specific? A.1.1 What is the Java Virtual Machine? Is it hardware or software? How does its role differ from that of the Java compiler? The Java Virtual Machine (JVM) is software that simulates the execution of a

More information

Java Programming Fundamentals

Java Programming Fundamentals Lecture 1 Part I Java Programming Fundamentals Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Introduction to Java We start by making a few

More information

Java Garbage Collection Characteristics and Tuning Guidelines for Apache Hadoop TeraSort Workload

Java Garbage Collection Characteristics and Tuning Guidelines for Apache Hadoop TeraSort Workload Java Garbage Collection Characteristics and Tuning Guidelines for Apache Hadoop TeraSort Workload Shrinivas Joshi, Software Performance Engineer Vasileios Liaskovitis, Performance Engineer 1. Introduction

More information

Comparative performance test Red Hat Enterprise Linux 5.1 and Red Hat Enterprise Linux 3 AS on Intel-based servers

Comparative performance test Red Hat Enterprise Linux 5.1 and Red Hat Enterprise Linux 3 AS on Intel-based servers Principled Technologies Comparative performance test Red Hat Enterprise Linux 5.1 and Red Hat Enterprise Linux 3 AS on Intel-based servers Principled Technologies, Inc. Agenda Overview System configurations

More information

Chapter 5. Recursion. Data Structures and Algorithms in Java

Chapter 5. Recursion. Data Structures and Algorithms in Java Chapter 5 Recursion Data Structures and Algorithms in Java Objectives Discuss the following topics: Recursive Definitions Method Calls and Recursion Implementation Anatomy of a Recursive Call Tail Recursion

More information

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.

More information

Java Garbage Collection Basics

Java Garbage Collection Basics Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how

More information

Semantic Analysis: Types and Type Checking

Semantic Analysis: Types and Type Checking Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors

More information

Write Barrier Removal by Static Analysis

Write Barrier Removal by Static Analysis Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, rinard@lcs.mit.edu ABSTRACT We present

More information

Practical Performance Understanding the Performance of Your Application

Practical Performance Understanding the Performance of Your Application Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance

More information

A Java-based system support for distributed applications on the Internet

A Java-based system support for distributed applications on the Internet A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have

More information

Rational Application Developer Performance Tips Introduction

Rational Application Developer Performance Tips Introduction Rational Application Developer Performance Tips Introduction This article contains a series of hints and tips that you can use to improve the performance of the Rational Application Developer. This article

More information

Elements of Advanced Java Programming

Elements of Advanced Java Programming Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the

More information

Transparent Redirection of Network Sockets 1

Transparent Redirection of Network Sockets 1 Transparent Redirection of Network Sockets 1 Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,nsuri}@ai.uwf.edu

More information

Lecture 5: Java Fundamentals III

Lecture 5: Java Fundamentals III Lecture 5: Java Fundamentals III School of Science and Technology The University of New England Trimester 2 2015 Lecture 5: Java Fundamentals III - Operators Reading: Finish reading Chapter 2 of the 2nd

More information

Cloud Computing. Up until now

Cloud Computing. Up until now Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines

More information

11.1 inspectit. 11.1. inspectit

11.1 inspectit. 11.1. inspectit 11.1. inspectit Figure 11.1. Overview on the inspectit components [Siegl and Bouillet 2011] 11.1 inspectit The inspectit monitoring tool (website: http://www.inspectit.eu/) has been developed by NovaTec.

More information

Java Universal Binding: Storing Java Objects in Relational and Object-Oriented Databases

Java Universal Binding: Storing Java Objects in Relational and Object-Oriented Databases Java Universal Binding: Storing Java Objects in Relational and Object-Oriented Databases Florian Xhumari y? Cassio Souza dos Santos? Marcin Skubiszewski y? August 29, 1997 y INRIA, Rocquencourt 78153 Le

More information

AVRO - SERIALIZATION

AVRO - SERIALIZATION http://www.tutorialspoint.com/avro/avro_serialization.htm AVRO - SERIALIZATION Copyright tutorialspoint.com What is Serialization? Serialization is the process of translating data structures or objects

More information

Java Memory Model: Content

Java Memory Model: Content Java Memory Model: Content Memory Models Double Checked Locking Problem Java Memory Model: Happens Before Relation Volatile: in depth 16 March 2012 1 Java Memory Model JMM specifies guarantees given by

More information

Using Eclipse CDT/PTP for Static Analysis

Using Eclipse CDT/PTP for Static Analysis PTP User-Developer Workshop Sept 18-20, 2012 Using Eclipse CDT/PTP for Static Analysis Beth R. Tibbitts IBM STG tibbitts@us.ibm.com "This material is based upon work supported by the Defense Advanced Research

More information

Accessing RCS IBM Console in Windows Using Linux Virtual Machine

Accessing RCS IBM Console in Windows Using Linux Virtual Machine Accessing RCS IBM Console in Windows Using Linux Virtual Machine For Graphics Simulation Experiment, Real Time Applications, ECSE 4760 Quan Wang Department of ECSE, Rensselaer Polytechnic Institute March,

More information

Can You Trust Your JVM Diagnostic Tools?

Can You Trust Your JVM Diagnostic Tools? Can You Trust Your JVM Diagnostic Tools? Isaac Sjoblom, Tim S. Snyder, and Elena Machkasova Computer Science Discipline University of Minnesota Morris Morris, MN 56267 sjobl014@umn.edu, snyde479@umn.edu,

More information

Full and Para Virtualization

Full and Para Virtualization Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels

More information

Massachusetts Institute of Technology 6.005: Elements of Software Construction Fall 2011 Quiz 1 October 14, 2011. Instructions

Massachusetts Institute of Technology 6.005: Elements of Software Construction Fall 2011 Quiz 1 October 14, 2011. Instructions Massachusetts Institute of Technology 6.005: Elements of Software Construction Fall 2011 Quiz 1 October 14, 2011 Name: Athena* User Name: Instructions This quiz is 50 minutes long. It contains 1 pages

More information

A technical guide for monitoring Adobe LiveCycle ES deployments

A technical guide for monitoring Adobe LiveCycle ES deployments Technical Guide A technical guide for monitoring Adobe LiveCycle ES deployments Table of contents 1 Section 1: LiveCycle ES system monitoring 4 Section 2: Internal LiveCycle ES monitoring 5 Section 3:

More information

JBoss Data Grid Performance Study Comparing Java HotSpot to Azul Zing

JBoss Data Grid Performance Study Comparing Java HotSpot to Azul Zing JBoss Data Grid Performance Study Comparing Java HotSpot to Azul Zing January 2014 Legal Notices JBoss, Red Hat and their respective logos are trademarks or registered trademarks of Red Hat, Inc. Azul

More information

Troubleshoot the JVM like never before. JVM Troubleshooting Guide. Pierre-Hugues Charbonneau Ilias Tsagklis

Troubleshoot the JVM like never before. JVM Troubleshooting Guide. Pierre-Hugues Charbonneau Ilias Tsagklis Troubleshoot the JVM like never before JVM Troubleshooting Guide Pierre-Hugues Charbonneau Ilias Tsagklis Table of Contents Oracle HotSpot JVM Memory...3 Java HotSpot VM Heap space...3 Java HotSpot VM

More information

Rakudo Perl 6 on the JVM. Jonathan Worthington

Rakudo Perl 6 on the JVM. Jonathan Worthington Rakudo Perl 6 on the JVM Jonathan Worthington About Rakudo Most complete and most actively developed Perl 6 implementation Compiler + built-ins 66 monthly releases to date 10-20 code contributors per release

More information

Finding Lightweight Opportunities for Parallelism in.net C#

Finding Lightweight Opportunities for Parallelism in.net C# Finding Lightweight Opportunities for Parallelism in.net C# Version 1.0 13 January 2014 By Richard Bos, Master s degree student at University of Amsterdam Contact: Mail@RichardBos.net Supervised by Jurgen

More information

JVM Tool Interface. Michal Pokorný

JVM Tool Interface. Michal Pokorný JVM Tool Interface Michal Pokorný JVM TI Inspect & control execution on JVM (profiling, debugging, monitoring, thread analysis, coverage, ) Higher-level interface: Java Platform Debugger Architecture JVM

More information

02 B The Java Virtual Machine

02 B The Java Virtual Machine 02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual

More information

Neptune. A Domain Specific Language for Deploying HPC Software on Cloud Platforms. Chris Bunch Navraj Chohan Chandra Krintz Khawaja Shams

Neptune. A Domain Specific Language for Deploying HPC Software on Cloud Platforms. Chris Bunch Navraj Chohan Chandra Krintz Khawaja Shams Neptune A Domain Specific Language for Deploying HPC Software on Cloud Platforms Chris Bunch Navraj Chohan Chandra Krintz Khawaja Shams ScienceCloud 2011 @ San Jose, CA June 8, 2011 Cloud Computing Three

More information

Stack Allocation. Run-Time Data Structures. Static Structures

Stack Allocation. Run-Time Data Structures. Static Structures Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,

More information

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java

More information

How to use IBM HeapAnalyzer to diagnose Java heap issues

How to use IBM HeapAnalyzer to diagnose Java heap issues IBM Software Group How to use IBM HeapAnalyzer to diagnose Java heap issues Jinwoo Hwang (jinwoo@us.ibm.com) IBM HeapAnalyzer Architect/Developer WebSphere Support Technical Exchange Introduction Java

More information

Java and Real Time Storage Applications

Java and Real Time Storage Applications Java and Real Time Storage Applications Gary Mueller Janet Borzuchowski 1 Flavors of Java for Embedded Systems Software Java Virtual Machine(JVM) Compiled Java Hardware Java Virtual Machine Java Virtual

More information

Chapter 3 Operating-System Structures

Chapter 3 Operating-System Structures Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

Habanero Extreme Scale Software Research Project

Habanero Extreme Scale Software Research Project Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead

More information

Hadoop + Clojure. Hadoop World NYC Friday, October 2, 2009. Stuart Sierra, AltLaw.org

Hadoop + Clojure. Hadoop World NYC Friday, October 2, 2009. Stuart Sierra, AltLaw.org Hadoop + Clojure Hadoop World NYC Friday, October 2, 2009 Stuart Sierra, AltLaw.org JVM Languages Functional Object Oriented Native to the JVM Clojure Scala Groovy Ported to the JVM Armed Bear CL Kawa

More information

AP Computer Science Java Subset

AP Computer Science Java Subset APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall

More information

Java programming for C/C++ developers

Java programming for C/C++ developers Skill Level: Introductory Scott Stricker (sstricke@us.ibm.com) Developer IBM 28 May 2002 This tutorial uses working code examples to introduce the Java language to C and C++ programmers. Section 1. Getting

More information

RE-TRUST Design Alternatives on JVM

RE-TRUST Design Alternatives on JVM RE-TRUST Design Alternatives on JVM ( - Italy) paolo.falcarin@polito.it http://softeng.polito.it/falcarin Trento, December, 19 th 2006 Tamper-Detection Tamper-detection goals Detect malicious modifications

More information

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers Dave Jaffe, PhD, Dell Inc. Michael Yuan, PhD, JBoss / RedHat June 14th, 2006 JBoss Inc. 2006 About us Dave Jaffe Works for Dell

More information

Application Servers - BEA WebLogic. Installing the Application Server

Application Servers - BEA WebLogic. Installing the Application Server Proven Practice Application Servers - BEA WebLogic. Installing the Application Server Product(s): IBM Cognos 8.4, BEA WebLogic Server Area of Interest: Infrastructure DOC ID: AS01 Version 8.4.0.0 Application

More information

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage

More information

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Oxford University Press 2007. All rights reserved. 1 C and C++ C and C++ with in-line-assembly, Visual Basic, and Visual C++ the

More information

Spark ΕΡΓΑΣΤΗΡΙΟ 10. Prepared by George Nikolaides 4/19/2015 1

Spark ΕΡΓΑΣΤΗΡΙΟ 10. Prepared by George Nikolaides 4/19/2015 1 Spark ΕΡΓΑΣΤΗΡΙΟ 10 Prepared by George Nikolaides 4/19/2015 1 Introduction to Apache Spark Another cluster computing framework Developed in the AMPLab at UC Berkeley Started in 2009 Open-sourced in 2010

More information

IBM Tivoli Composite Application Manager for WebSphere

IBM Tivoli Composite Application Manager for WebSphere Meet the challenges of managing composite applications IBM Tivoli Composite Application Manager for WebSphere Highlights Simplify management throughout the life cycle of complex IBM WebSphere-based J2EE

More information

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University Virtual Machine Monitors Dr. Marc E. Fiuczynski Research Scholar Princeton University Introduction Have been around since 1960 s on mainframes used for multitasking Good example VM/370 Have resurfaced

More information

Dice. David Watkins Emily Chen Khaled Atef Phillip Schiffrin. djw2146 ec2805 kaa2168 pjs2186. Manager System Architect Testing Language Guru

Dice. David Watkins Emily Chen Khaled Atef Phillip Schiffrin. djw2146 ec2805 kaa2168 pjs2186. Manager System Architect Testing Language Guru Dice David Watkins Emily Chen Khaled Atef Phillip Schiffrin djw2146 ec2805 kaa2168 pjs2186 Manager System Architect Testing Language Guru September 30 th, 2015 1 DESCRIPTION Dice is a distributed systems

More information

Modern Web Development with Dart. Alan Knight Google

Modern Web Development with Dart. Alan Knight Google Modern Web Development with Dart Alan Knight Google Smalltalk Industry Conference 2013 The Web As an application platform We want... Large, extensible widget set Simple, clean APIs Model/View separation

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

An introduction to Fyrkat

An introduction to Fyrkat Cluster Computing May 25, 2011 How to get an account https://fyrkat.grid.aau.dk/useraccount How to get help https://fyrkat.grid.aau.dk/wiki What is a Cluster Anyway It is NOT something that does any of

More information

ELEC 377. Operating Systems. Week 1 Class 3

ELEC 377. Operating Systems. Week 1 Class 3 Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation

More information

How to analyse your system to optimise performance and throughput in IIBv9

How to analyse your system to optimise performance and throughput in IIBv9 How to analyse your system to optimise performance and throughput in IIBv9 Dave Gorman gormand@uk.ibm.com 2013 IBM Corporation Overview The purpose of this presentation is to demonstrate how to find the

More information