Download presentation
Presentation is loading. Please wait.
Published byJohn McCoy Modified over 9 years ago
1
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?
2
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
3
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
4
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++ 4 Represent Complex Data 6 Persistence 6 Run time access to data – Still need to build (or buy and deploy) data management system (e.g. Root, Objectivity) Java 4 Represent Complex Data 4 Persistence (serialization) 4 Run time access to data (reflection) – support built-in to language
5
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
6
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
7
JAS + WIRED + LCD
8
Example Analysis
9
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
10
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
11
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
12
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
13
JAS Modules JASHist (Plot Bean) Fitting Framework FunctionsFitters Analysis Framework GUI Framework Plugin Histogram Accumulation 3-4 Vector Utilities Data Interface Histo/Plot Adaptor Network Adaptor Particle Properties Jet Finder PAWSQLstdHEP
14
AIDA – Abstract Interface for Data Analysis – LHC++/Lizard, JAS, Open Scientist, COLT Interoperability/data exchange Familiarity to users – Geant4 – AIDA test bed Java Program AIDAAIDA Java AIDA Implementation C++ Program AIDAAIDA C++ AIDA Implementation Java AIDA Implementation C++ Program AIDAAIDA AIDAAIDA C++ -> Java
15
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
16
Links JAS – http://jas.freehep.orghttp://jas.freehep.org WIRED – http://wired.cern.chhttp://wired.cern.ch FreeHEP Java Library – http://java.freehep.orghttp://java.freehep.org
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.