advanced analysis environments what is the role of java in physics analysis? will programming...

16
Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help meet our needs in this area? What is the role of modularity and abstract interfaces? Do we want an all encompassing framework or a collection of configurable tools?

Upload: john-mccoy

Post on 28-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Advanced Analysis Environments

What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help meet our needs in this

area? What is the role of modularity and abstract

interfaces? Do we want an all encompassing framework or a

collection of configurable tools?

Page 2: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

What is the role of Java in physics analysis?

Java is a great language for analysis (among many other things)– Clean, modern, OO language, relatively simple– Platform independent– Mainstream language

Enormous set of standard and third party libraries– Distributed computing, networking, CORBA, RMI– Graphics, 2D and 3D, GUI’s– Collections, Hash tables, Maps, Vectors, Binary Trees, Sorting– IO, Compression, Encryption

Large research teams working on development and performance

Page 3: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Java for Data Analysis

Maximizes programmer/physicist efficiency– Memory allocation taken care of for you

No dangling pointers No core dumps No memory leaks (unless you try hard)

– No need to reinvent the wheel– Very fast compile/(dynamic) load/debug cycle

Spend time designing analysis program + solving physics problems, not working around language problems

Page 4: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Java for Data Analysis Previous generation of

experiments used Fortran + Data Management System (== Jazelle, Zebra, BOS)

Solves Three Problems– Ability to Represent

Complex Data Structures

– Persistence (i.e. read in and write out complex structures)

– Run time access to named data in structures (for analysis)

Now time has marched on and modern experiments use C++ Represent Complex Data Persistence Run time access to data– Still need to build (or buy and

deploy) data management system (e.g. Root, Objectivity)

Java Represent Complex Data Persistence (serialization) Run time access to data

(reflection)– support built-in to language

Page 5: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Isn’t Java too damn slow? No!

– Huge advances have been made in last 4 years Dynamic code optimization

– Optimizes code while it is running Java now gives average of 60% of C++ performance

– Java performance continues to improve– Static optimization (C++) is mature – no improvement expected

Page 6: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Examples of Java in Data Analysis

WIRED – Experiment independent event display JAS – Java Analysis Studio Linear Collider Detector

– Entire reconstruction/analysis framework is in Java– Modular components are also reusable and are being

moved to FreeHEP library

FreeHEP library– CLHep for Java (see talk ISAT201 tomorrow)

Code from WIRED, JAS, Atlas, Babar, LCD

– In future JAS+WIRED will both become plugins for “HEP Studio”, part of FreeHEP Java library

Page 7: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

JAS + WIRED + LCD

Page 8: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Example Analysis

Page 9: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Java and the GRID Java has built-in support for

distributed computing and Networking– Rather than move all the data

to the user, transparently move code to data

Download JAVA analysis “agents” into remote server

– flexible built-in padded cell protects server from analysis modules

– Give user impression code is running locally

Page 10: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Will programming languages at all be relevant?

Not once we can say “Computer – please analyze the LEP data and compute the mass of the Higgs”

Until then - Yes– GUI tools are important too but

The complexity of physics analysis algorithms are best expressed in terms of programs

Graphical representation of analysis is simply inadequate and inefficient

Page 11: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Can commercial products help meet our needs in this area?

Yes – we will not use a single tool, we will use many tools which can inter-operate– Some commercial– Some HENP specific

Home grown tools will always have a place– Our statistical usage of data and volume of data still

tends to make mainstream commercial tools difficult to use

Page 12: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

What is the role of modularity and abstract interfaces? Fundamental to good OO design

Separate interface keyword in Java language highlights importance of abstract interfaces

– Separation of interface and implementation– Allows isolation of components within tools– Allows interoperability between tools– Allows user extensibility– Allows substitution or co-existence of

components/tools– Prevents us getting stuck in a rut

PAW/CERNLIB

Page 13: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

JAS Modules

JASHist(Plot Bean)

FittingFramework

Functions Fitters

AnalysisFramework

GUIFramework

Plugin

HistogramAccumulation

3-4 VectorUtilities

DataInterface

Histo/PlotAdaptor

NetworkAdaptor

ParticleProperties

JetFinder

PAW SQL stdHEP

Page 14: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

AIDA – Abstract Interface for Data Analysis– LHC++/Lizard, JAS, Open Scientist, COLT

Interoperability/data exchange Familiarity to users

– Geant4 – AIDA test bed

JavaProgram

AIDA

Java AIDA Implementation

C++Program

AIDA

C++ AIDA Implementation

Java AIDA Implementation

C++Program

AIDA

AIDA

C++ -> Java

Page 15: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Do we want an all encompassing framework or a collection of configurable tools?

Why not both?– JAS/FreeHEP provides set of highly modular tools– A framework which brings them all together

Framework is extensible and customizable

Users can pick and choose

Page 16: Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help

Links

JAS – http://jas.freehep.org WIRED – http://wired.cern.ch FreeHEP Java Library – http://java.freehep.org