Java Implementation of Petuum Yuxin Su September 2, 2014.

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

Movie Recommendation System
The road to reliable, autonomous distributed systems
Piccolo – Paper Discussion Big Data Reading Group 9/20/2010.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
Chapter 3.2 C++, Java, and Scripting Languages. 2 C++ C used to be the most popular language for games Today, C++ is the language of choice for game development.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
University of Kansas Construction & Integration of Distributed Systems Jerry James Oct. 30, 2000.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
© Copyright Eliyahu Brutman Programming Techniques Course.
Chapter 3.2 C++, Java, and Scripting Languages hacked by jeffery.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Java Introduction 劉登榮 Deng-Rung Liu 87/7/15. Outline 4 History 4 Why Java? 4 Java Concept 4 Java in Real World 4 Language Overview 4 Java Performance!?
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Java Virtual Machine Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use.
Putting What We Learned Into Context – WSGI and Web Frameworks A290/A590, Fall /16/2014.
SU YUXIN JAN 20, 2014 Petuum: An Iterative-Convergent Distributed Machine Learning Framework.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
Lecture 10 : Introduction to Java Virtual Machine
Extensible Plug-ins for Aspect-Oriented Programming Macneil Shonle*Ankit Shah.
Programming Languages: Scratch Intro to Scratch. Lower level versus high level Clearly, lower level languages can be tedious Higher level languages quickly.
By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
SPREAD TOOLKIT High performance messaging middleware Presented by Sayantam Dey Vipin Mehta.
 2004 Deitel & Associates, Inc. All rights reserved. 1 Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Software Confederations and the Maintenance of Global Software Systems Jaroslav Král, Michal Žemlička Charles University, Prague
By: PHANIDEEP NARRA. OVERVIEW Definition Motivation.NET and J2EE Architectures Interoperability Problems Interoperability Technologies Conclusion and.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Programming language. Definition Programming language is a formal language designed to communicate instructions to a computer. Programming languages can.
S. Shumilov – Zürich Analytical Visualization Framework - a visual data processing and knowledge discovery system Ivan Denisovich, Serge Shumilov Department.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Automated P2P Backup Group 1 Anderson, Bowers, Johnson, Walker.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
Department of Computer Science and Software Engineering
 Programming - the process of creating computer programs.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda.
Basics of JDBC Session 14.
CASE Tools CSC 532 : Advance Topics CSC 532 : Advance Topics Software Engineering Software Engineering Dr. box Dr. box Moayad Almohaishi Moayad Almohaishi.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
1 HPJAVA I.K.UJJWAL 07M11A1217 Dept. of Information Technology B.S.I.T.
Java State Explorer by: Richard Sherman Stephanie Taylor.
Tutorial on Science Gateways, Roma, Catania Science Gateway Framework Motivations, architecture, features Riccardo Rotondo.
Programming Parallel Hardware using MPJ Express By A. Shafi.
ZIMBRA ROADMAP. Contains proprietary and confidential information owned by Synacor, Inc. © / 2015 Synacor, Inc. Deliver an advanced, feature rich collaboration.
Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Common Transport Rafael Schloming. Objectives Scaling Engineering Time ● N experts in protocol & language -> 1 protocol expert & N language experts ●
Chapter 4 – Thread Concepts
SPIDAL Java Optimized February 2017 Software: MIDAS HPC-ABDS
SparkBWA: Speeding Up the Alignment of High-Throughput DNA Sequencing Data - Aditi Thuse.
Paul Werbicki Supervisor: Dr. Robert C. Kremer
Chapter 4 – Thread Concepts
Programming Languages
Module 01 ETICS Overview ETICS Online Tutorials
Google App Engine Ying Zou 01/24/2016.
Chapter 4: Threads & Concurrency
Presentation transcript:

Java Implementation of Petuum Yuxin Su September 2, 2014

About Petuum Distributed System for Machine Learning Algorithms Staleness Synchronized Parallel Error-tolerance in iteration

Motivations -- Drawback of C/C++ Implementation Depend on Platforms Ubuntu Ubuntu Solaris Other UNIX-like systems… Maybe…LLVM Bytecode solution redirect all system-related APIs modify many third-party libs Depend on many unfriend libs Gflags, boost, libconfig, libcuckoo, zeromq… configure; make; make install inefficiency to interactive with industry level languages Many components written by Java So, the robustness is hard to guarantee among many OSs

Motivations – Advantage of Java Implementation Platform independency Easily collaborate with other components like HDFS Easy to use for end users or programmer Performance ??? Java Implementation Preprocessing HDFS User Interface Auto-Parallel

Performance Test: An Example Concurrent Hash Map #itemsJavaC++ 5,000, s 0.35s Reserve: 0.26s 10,000, s 0.71s Reserve: 0.53s The Influence of Heap Size Java: Heap size is 4G, Java 8 C++: -O3 Optimization, g , C++11

Let’s talk about Java for Petuum

Java Interface Objective: Requirements about the Interface: Easy to maintenance Full support for template and new features in C++11 Better to keep C++ code unchanged Petuum C/C++ Implementation Java/C++ Interface Java Apps(MF, LASSO…)

Simplified Wrapper and Interface Generator(SWIG) It’s an old but lively solution Support for the interface between C++ and many other languages C++ -> Java, Python, PHP, C# Avoid to write Java Native Interface(JNI) directly Generate Java Wrapper: Write Wrapper Java Class C++ Wrapper Original C++ code Binary Library Java Apps Java Package JNI

Drawback of SWIG-solution We are happy to avoid to write JNI directly But we found the low performance of JNI is unavoidable communicate with JVM frequently LASSO App N * D C++Java Matrix OpsTable OpsMatrix OpsTable Ops 1000* s0.122s3.792s4.963s 100* s0.775s11.107s40.72s 100* s3.167s43.277s s About 60x slower than C++

Next: reduce the number of JNI call Try to put JNI at different levels JNI call is always the biggest one for time consuming! AppsTable OpsClient Cache Communication Thread Server JNI

Now: Pure Java Implementation of Petuum Production Values The performance of Java is not a problem, especially for Java 8 Easy to collaborate with other mature components Easy to use and to popularize Lower the learning curve of Petuum Research Value Java/Scala and related framework are powerful tools to explore new parallel paradigm for machine learning algorithms. e.g. Actor model is a ideal tool to explore auto-parallel and model-parallel.

Overview of Petuum v0.9 Workers Servers Node 1 Workers Servers Node 4 Workers Servers Node 2 Workers Servers Node 3 Workers Servers Node 5 Workers Servers Node 6 Communication Bus

Basic Architecture of Petuum v0.9 Highly Concurrent Table Operations Threads SSP Consistency Controller LRU Cache Background Threads Send/Handle messages ZMQ messages Background Threads Send/Handle messages Server Thread The Most Complicated Part In / Inter Node

Related Techniques Thread Pool Thread-Safety Operations Raw Message Handling Reflection … Lots of engineering work The only problem is the time for coding

Progress The major coding work is finished Testing the whole procedure steps by steps Amending related subsidiary code We plan to finish the testing at this weekend. Currently, we have written 9091 lines of code.

Thanks!