Programming Language X10 on Multiple JVMs
|
|
- Silvester Butler
- 8 years ago
- Views:
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 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 informationSemester 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 informationTool - 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 informationRootbeer: 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 informationFree 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 informationReplication 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 informationFree 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 informationHeapStats: 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 informationRCL: 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 informationFachbereich 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 informationLast 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 informationJonathan 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 informationMemory 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 informationWebSphere 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 informationTo 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 informationLecture 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 informationPerformance 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 informationC 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 informationHow 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 il funzionamento della Java Virtual Machine (JVM): -
More informationThe 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 informationIBM 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 informationThe 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 informationqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui
More informationLecture 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 informationCS170 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 informationAn 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 informationClojure 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 informationGarbage 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 informationTowards 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 informationReach 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 informationMonitoring 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 informationMAC 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 informationLecture 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 informationSpark: 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 informationBEAJRockit 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 informationIdentifying 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 informationIntroduction 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 informationB 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 informationJavaCard. 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 informationJava 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 informationVirtual 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 informationGeneral 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 informationAbout 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 informationExplain 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 informationJava 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 informationJava 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 informationComparative 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 informationChapter 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 informationInterpreters 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 informationJava 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 informationSemantic 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 informationWrite 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 informationPractical 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 informationA 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 informationRational 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 informationElements 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 informationTransparent 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 informationLecture 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 informationCloud 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 information11.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 informationJava 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 informationAVRO - 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 informationJava 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 informationUsing 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 informationAccessing 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 informationCan 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 informationFull 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 informationMassachusetts 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 informationA 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 informationJBoss 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 informationTroubleshoot 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 informationRakudo 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 informationFinding 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 informationJVM 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 information02 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 informationNeptune. 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 informationStack 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 informationHandout 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 informationHow 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 informationJava 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 informationChapter 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 informationHabanero 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 informationHadoop + 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 informationAP 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 informationJava 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 informationRE-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 informationJBoss 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 informationApplication 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 informationStorage 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 informationMobile 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 informationSpark ΕΡΓΑΣΤΗΡΙΟ 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 informationIBM 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 informationVirtual 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 informationDice. 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 informationModern 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 informationFirst 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 informationAn 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 informationELEC 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 informationHow 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