Java implementation of Channel Access (CAJ) Matej Šekoranja ( presented by Rok Šabjan ) Funded by DLS (M.Heron) and DESY (M.Clausen) EPICS Meeting – SLAC,

Slides:



Advertisements
Similar presentations
System Integration and Performance
Advertisements

1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
Status of VDCT Mark Pleško, Matej Šekoranja, John Maclean EPICS Meeting – Japan, 2004.
Channel Access Protocol Andrew Johnson Computer Scientist, AES Controls Group.
Controls Group New Channel Access Nameserver Joan Sage 12/4/01.
TAC Vista Security. Target  TAC Vista & Security Integration  Key customer groups –Existing TAC Vista users Provide features and hardware for security.
JCA 2.0 Eric. Boucher – APS EPICS Collaboration Meeting - June 18-20, 2003.
Network Hosts Analyzer Hadas Shumovitch Elad Levi Tal Katz
Microkernels: Mach and L4
Threads. Processes and Threads  Two characteristics of “processes” as considered so far: Unit of resource allocation Unit of dispatch  Characteristics.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Understanding Factors That Influence Performance of a Web Server Presentation CS535 Project By Thiru.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
THE AFFORDABLE SUPERCOMPUTER HARRISON CARRANZA APARICIO CARRANZA JOSE REYES ALAMO CUNY – NEW YORK CITY COLLEGE OF TECHNOLOGY ECC Conference 2015 – June.
Performance Tradeoffs for Static Allocation of Zero-Copy Buffers Pål Halvorsen, Espen Jorde, Karl-André Skevik, Vera Goebel, and Thomas Plagemann Institute.
Student Companion - Final Project Presentation Members in Sweden: Andreas Drake Asad Saleem Muhammad Usman Ghani Robert Lundquist Vasilis.
Wolfgang Friebel, April AFS Administration Framework.
Minix Jeff Ward, Robert Burghart, Jeb Collins, Joe Creech.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
Kazuro Furukawa, KEK, Jul Jacva and JCA / CAJ EPICS Workshop 2006, VECC, India 1 Java and JCA / CAJ Kenneth Evans, Jr. October 12, 2004 Part of the.
JMS Compliance in NaradaBrokering Shrideep Pallickara, Geoffrey Fox Community Grid Computing Laboratory Indiana University.
Process Management. Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication.
EPICS Meeting 29 th April - 3 rd May© 2013 Helmholtz-Zentrum BerlinCarsten Winkler.
SC84, Epics C# Library Written by Christoph Seiler Presented by Dirk Zimoch.
Farm Management D. Andreotti 1), A. Crescente 2), A. Dorigo 2), F. Galeazzi 2), M. Marzolla 3), M. Morandin 2), F.
Berliner Elektronenspeicherringgesellschaft für Synchrotronstrahlung mbH (BESSY) CA Proxy Gateway Status and Plans Ralph Lange, BESSY.
10/20/2015J-PARC1 Control Room Accelerator Physics Channel Access – Connection to Hardware Through EPICS Getting Information directly from the Control.
A Measurement Based Memory Performance Evaluation of High Throughput Servers Garba Isa Yau Department of Computer Engineering King Fahd University of Petroleum.
Wir schaffen Wissen – heute für morgen Gateway (Redux) PSI - GFA Controls IT Alain Bertrand Renata Krempaska, Hubert Lutz, Matteo Provenzano, Dirk Zimoch.
Background: Operating Systems Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
(Java) CA Client Libraries Status Matej Šekoranja
3.14 Work List IOC Core Channel Access. Changes to IOC Core Online add/delete of record instances Tool to support online add/delete OS independent layer.
Computing Division Requests The following is a list of tasks about to be officially submitted to the Computing Division for requested support. D0 personnel.
Real-Time, Clocking, and Porting (My Job ) Determining the Real Time Capabilities of various Operating Systems. Writing code to support Real Time Clocking.
Test Results of the EuroStore Mass Storage System Ingo Augustin CERNIT-PDP/DM Padova.
Petra III Status Teresa Núñez Hasylab-DESY Tango Meeting DESY,
Web application architecture1 Based on Jim Conallen: Web Applications with UML.
A XML 1 An XML Driven Graphical User Interface and Application Management Toolkit Matthias Clausen (DESY & SLAC) Piotr Bartkiewicz (DESY & FPNT/AGH) Alexei.
Lecture 5: Threads process as a unit of scheduling and a unit of resource allocation processes vs. threads what to program with threads why use threads.
Multithreaded Programing. Outline Overview of threads Threads Multithreaded Models  Many-to-One  One-to-One  Many-to-Many Thread Libraries  Pthread.
Department of Computer Science and Software Engineering
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 4: Threads.
Channel Access Client Coding 2006
EPICS to TANGO Translator Rok Šabjan on behalf of Rok Štefanič Presented at ICALEPCS, Knoxville, October.
Threads. Readings r Silberschatz et al : Chapter 4.
Controls Zheqiao Geng Oct. 12, Autosave Additions/Upgrades and Experiences at SLAC Zheqiao Geng Controls Department SLAC National Accelerator Laboratory.
Proxy Pattern. What’s a Proxy? A remote proxy acts as a local representative of a remote object Remote Object: instantiated in a different JVM heap (a.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
Exploring Parallelism with Joseph Pantoga Jon Simington.
Lab Activities 1, 2. Some of the Lab Server Specifications CPU: 2 Quad(4) Core Intel Xeon 5400 processors CPU Speed: 2.5 GHz Cache : Each 2 cores share.
Controls Group New Channel Access Nameserver Presented by Karen White for Joan Sage.
Berliner Elektronenspeicherringgesellschaft für Synchrotronstrahlung mbH (BESSY) CA Gateway Update Ralph Lange, BESSY Ken Evans Jr., APS Jeff Hill, LANL.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
NB UML takeover by community Sergey B. Petrov Former NetBeans UML Developer Jiří Kovalský NetBeans Community Manager August 16 th, 2010.
Chapter 4: Threads.
Process Management Presented By Aditya Gupta Assistant Professor
Introduction to Computers
Gašper Tkačik Cosylab, Slovenia
Chapter 4: Threads.
Part of the EPICS “Getting Started” Lecture Series
Channel Access Concepts
An Introduction to Internetworking
CS703 - Advanced Operating Systems
Chapter 4: Threads.
Java Channel Access Client and Server Library - status
Lecture Topics: 11/1 Hand back midterms
Channel Access Concepts
Thread per client and Java NIO
Presentation transcript:

Java implementation of Channel Access (CAJ) Matej Šekoranja ( presented by Rok Šabjan ) Funded by DLS (M.Heron) and DESY (M.Clausen) EPICS Meeting – SLAC, April 2005

What is CAJ? C hannel A ccess in J ava (CAJ) is a CA client library written completely in Java It “plugs” into JCA 2 interfaces Written as a result of detailed analysis of existing CA library to provide better stability and performance opposed to the current JCA JNI implementation Since it was written from scratch code is clean, follows OO design and uses lots of design patterns No problems with native libraries (no recompilation needed)

Achieving stability The main reason CAJ was written is stability - JCA JNI was not hard to crash with our ControlDesk application for the DLS (extensive concurrent connect, monitor creation and value retrieval) Profound testing during the whole development cycle ~ 90% of code coverage! Code simplicity helped a lot (simple code leads to less bugs) ‘TCP Reno’-like UDP congestion control Until now “only” 4 CAJ bugs were discovered 2 by Ken Evans

Achieving performance Latest concurrent, network communication design patterns used to implement efficient event demultiplexing, minimize context switching and maximize CPU cache affinity (Leader/Followers design pattern used) Asynchronous I/O used (Java NIO package) new epoll-based selector supported, which is improved select(); available in the latest Linux 2.6 kernel (Some performance measurements will be shown later) Due to OO design light CAJ version is possible (one communication thread), convenient for light CA clients (handhelds)

Immediate JCA JNI to CAJ migration Simply change (example): jca.createContext(JCALibrary.JNI_SINGLE_THREADED); OR jca.createContext(JCALibrary.JNI_THREAD_SAFE); jca.createContext(JCALibrary.CHANNEL_ACCESS_JAVA); … and take care of configuration. Note that CAJ can not use system environment variables like EPICS_CA_ADDR_LIST (not available in Java 1.4, but available again in Java 1.5).

OO Usage of JCA

Performance measurements Note: this is only synthetic performance test and doesn’t reflect performance in practice! Client on the same host as server, Pentium IV 1.6GHz, 1GB RAM, Red Hat 9 "no bulk" means calling flushIO() after each get request

Comparing to C Version of CA Completely different approaches: C pointer versus Java object creation Java is clean, C is dirty but quick Based on CA 4.11, should be compabitle down to 4.0 But has not been tested Backward compatibility might be an issue several undocumented features in the C version, might have missed one

User Experiences Control Desk was limited to some 300 PVs before JoiMint just got ported to JCA 2 so it can use CAJ JProbe (Ken Evans ported it to JCA 2). “I have tested it on all the dbr types. Like my performance test, it is an application that requires a large subset of the features provided by CA. I think CAJ is looking good.” “Moreover, my test program, which accesses 100 PVs updating at 10 Hz, worked *much* better. Before, there were dropouts. Now, it seems to keep up. Cool!”

Conclusions Needs some time (production usage) to confirm maturity JCA still has much room for performance improvements, now that JNI isn’t the bottleneck anymore Open possiblities for more user friendly applications based on Java develop a CAJ server to integrate other Java Applications? Proves that other-than legacy CA implementation can be done … CA documentation is useful and useable and that CA is not something mysterious Cosylab needs a new task (and funding )