Скачать презентацию Java Analysis Studio and the Java Framework for Скачать презентацию Java Analysis Studio and the Java Framework for

9b917e6bbd2c48ddaf15fad7a93e1490.ppt

  • Количество слайдов: 40

Java Analysis Studio and the Java Framework for Future Linear Colliders. CERN - January Java Analysis Studio and the Java Framework for Future Linear Colliders. CERN - January 13 th 1998 Tony Johnson - SLAC tony_johnson@slac. stanford. edu

Contents b Introduction to Java • Pro’s and Con’s of Java for HEP b Contents b Introduction to Java • Pro’s and Con’s of Java for HEP b Java Framework for LC Detector studies b Java Analysis Studio • • • Features Beta Release Information Demo Future Opportunities for Collaboration b Conclusion

What is Java? Java Source code History Compiler Originally designed (1991) as a small What is Java? Java Source code History Compiler Originally designed (1991) as a small language for consumer electronics (cable boxes, toasters etc. ) Eventually (1994) Hot. Java Browser Java “Bytecodes” appeared, which allowed Java Applets to appear in web pages. Adopted by Netscape, Microsoft, Sun etc. as Web Programming Language. Mac Unix PC More than just a Web Tool Java is a fully functional, platform JIT independent, object oriented Compiler Bytecode programming language + powerful Interpreter set of machine independent libraries, Machine Code including GUI libraries.

Totally Buzzword Compliant Simple well, simpler than C++ Object Orientated more so than C++ Totally Buzzword Compliant Simple well, simpler than C++ Object Orientated more so than C++ Distributed Built in support for Internet protocols, URL’s, HTTP, Remote Method Invocation, DB access etc. Robust “Impossible” to create memory leaks, go beyond the end of an array, corrupt stack or code Secure Bytecode “verifier”, padded cell Architecture Neural, Portable Runs on PC, MAC, Unix, VMS Interpreted “Compiler” converts code into machine independent “bytecodes” High Performance With JIT compiler still 2 -3 times slower than native C++, but. . . Multithreaded Language has direct support for writing multithreaded applications Dynamic Libraries can change without recompiling programs that use them

Why Java for HEP Computing? b Highly Portable b • Java works today on Why Java for HEP Computing? b Highly Portable b • Java works today on NT, Win 95/8, Unix, Mac, VMS etc. • Programs written in Java are very portable – care needed for browsers, AWT b Fast • Within factor of 3 of compiled C++ code today, getting faster. • Bottlenecks may be elsewhere anyway (IO, GUI, Geant, Physicist). • Very fast turnaround time (compilation, dynamic loading) Simple to Learn • More object oriented than C++ – Without all the tricky bits – Memory management – No pointers – No backwards compatibility • Spend time designing program + solving physics problems, not working around language problems • Programs written in Java much more likely to work as intended. – Much easier to debug if they don’t

Why Java for HEP Computing? b b Previous generation of experiments used Fortran + Why Java for HEP Computing? b b 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) b b 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

Why Java for HEP computing? b Java is more than a language • very Why Java for HEP computing? b Java is more than a language • very large set of standard libraries (API’s) – – – Distributed computing, networking, CORBA, RMI Graphics, 2 D and 3 D, GUI’s Collections, Hash tables, Maps, Vectors IO, Compression, Encryption Security, sand-box • Wide industry support – Databases, oracle, objectivity – Tools, IDE’s, Debugger’s, Optimizer’s, UML tools

Why Java for HEP Computing? b Built-in support for distributed computing and Networking • Why Java for HEP Computing? b Built-in support for distributed computing and Networking • take code to data – Download JAVA analysis “agents” into remote server – flexible built-in padded cell protects server from analysis modules – Rather than move all the data to Remote institute, transparently move code to data • possible to have distributed farm of processors analyzing data • Give user impression code is running locally

Why not Java for HEP computing? b No operator overloading • Annoying for complex Why not Java for HEP computing? b No operator overloading • Annoying for complex numbers, matrices, 4 -vectors • Perhaps more often abused than sensibly used b Floating point performance • Requirement for identical results can be a problem • Being addressed by Java Grande Forum + Sun – http: //www. javagrande. org/ b Bugs sometimes slow to be fixed • Printing, Imaging existed for >1 year • Perhaps “Community Source License” will help b Little control over Memory Allocation b Integration with C++ could be better

Where would HEP use Java? 4 4 GUI systems 4 online + control 4 Where would HEP use Java? 4 4 GUI systems 4 online + control 4 offline (event display) Data Analysis tasks 4 Offline 4 Online Reconstruction packages? Generators

Java for Linear Collider Detector Studies Dual Goals: b. Contribute to Linear Collider Detector/Physics Java for Linear Collider Detector Studies Dual Goals: b. Contribute to Linear Collider Detector/Physics Studies in US b. Experiment with using Java for full offline reconstruction and analysis package

LC Detector studies in US b Goals: • Detailed Study of physics signals in LC Detector studies in US b Goals: • Detailed Study of physics signals in a variety of possible LC Detectors. – Reference Small and Large detectors • 3 year study – Start with simulation studies – Preliminary results by Barcelona meeting in May – Move on to detector R&D • Full simulation with GISMO – Switch to Geant 4, now released • Analysis using Paw, Root, JAS

Java package hep. lcd ? b hep. lcd a Java framework for rapid development Java package hep. lcd ? b hep. lcd a Java framework for rapid development of • • • Fast simulation tools Reconstruction (Clustering and Track Finding) Analysis algorithms b Built-in event display, histograming and diagnostic tools. b Flexible architecture for adding new detector geometries and architectures. b Can be run inside JAS or standalone

hep. lcd current status b Framework b • Track finder written, track fitter in hep. lcd current status b Framework b • Track finder written, track fitter in progress • Several clustering algorithms • Processor + Driver system – interactively control – which processors called – debugging/histogramming • Parameter (Constant] access – driven by detector geometry b – random access files b Event Display Parameterized MC • Can read generator input or Gismo output • Track and Cluster smearing • IO system based on Java IO • Histograming - built in to JAS Reconstruction b Analysis Utilities • Thrust calculator (Lund) • Jet finder [Durham]

hep. lcd framework hep. lcd framework

Event Display Event Display

Event Display Event Display

Event Display Event Display

Event Display Event Display

Is Java fast Enough for HEP offline? b Current (266 Mhz PII, JDK 1. Is Java fast Enough for HEP offline? b Current (266 Mhz PII, JDK 1. 1. 7) – Clustering. 6 secs/event – 13. 5 Million Calorimeter Cells – Fast MC 5 -50 ms/event – Track Finding <2 secs/event b Getting better!!! – JDK 1. 2 – Hot. Spot - Run-time optimization b In real life may be faster than C++ (c. f. Babar) – Better, cheaper analysis tools – Manageable complexity

Java Analysis Studio Experiment independent analysis tool for High Energy Physics data Java Analysis Studio Experiment independent analysis tool for High Energy Physics data

What is Java Analysis Studio? b b b b b HEP Data Analysis Application What is Java Analysis Studio? b b b b b HEP Data Analysis Application Easy to use + powerful GUI Support Analysis Modules written in Java Experiment and Data Format Independent Supports n-tuple or Structured (object) Data Location Independent (Local or Remote) Extensible (via Plug-ins and Data Interface Modules (DIMS)) Web + Internet compatible Combination of custom and Commercial components (but no runtime license fees) Based on Industry Standards

Java Analysis Studio Features b Rich, easy to use GUI Java Analysis Studio Features b Rich, easy to use GUI

Java Analysis Studio Features b Data Format Independent • Currently Support – PAW n-tuples, Java Analysis Studio Features b Data Format Independent • Currently Support – PAW n-tuples, Hippo n-tuples, any SQL database, flat-file ntuples, Std. Hep MC events – Any data format via user supplied Data Interface Module (DIM) • Experimenting with – Object databases (Objectstore, Objectivity) – Random access Java based IO (similar to root IO] • Future – XML, Root, CDF/HDF

Java Analysis Studio Features b Supports both n-tuples and Structured Data • n-tuples are Java Analysis Studio Features b Supports both n-tuples and Structured Data • n-tuples are fast and allow for simplifications in GUI – Simple Interactive cuts – Simple plot generation but n-tuples ultimately limiting • Arbitrarily Structured Data provides ultimate flexibility – Requires slightly more work from end-user – Complete Object Oriented Analysis Environment – Flexible enough to write (or prototype) reconstruction code

Java Analysis Studio Features b Histogram/Scatter. Plot Display • Commercial plot package used in Java Analysis Studio Features b Histogram/Scatter. Plot Display • Commercial plot package used in earlier versions replaced with custom plot package – Supports strings, dates, multiple axes, direct user interaction, overlays, fitting, scatter plots

Java Analysis Studio Features b User analysis modules written in Java • Java Excellent Java Analysis Studio Features b User analysis modules written in Java • Java Excellent Language for Physics Analysis – Easy to learn yet very powerful, fully OO language – Fast (and getting faster] – Very fast code, load, test, fix cycle • JAS provides built-in editor, compiler, plus: – hep. analysis package – for creating/filling/manipulating histograms – hep. physics package – simple particle, track manipulation package

hep. analysis package b Histogram delegates binning to: • “partition classes” [idea stolen from hep. analysis package b Histogram delegates binning to: • “partition classes” [idea stolen from LHC++] – Map from X, Y to bin number – supports real, integer, string, date’s etc. – Calculation of contents, errors in bin – allows efficiency plots, mean/rms plots etc – Data storage method – immediate binning (c. f. Hbook) – delayed binning, allows rebinning, axis changes via GUI • Many standard partitions provided. • User can provide own partition functions

Java Analysis Studio Features b User Extensible, via • Analysis Modules • Data Interface Java Analysis Studio Features b User Extensible, via • Analysis Modules • Data Interface Modules – Access to experiment specific data, native language modules • Plug In’s (c. f. Web Applets] – Event Displays, etc. • Fitter, Functions, Partitions

Java Analysis Studio Features b Analyze local or remote data Desktop Client Local Data Java Analysis Studio Features b Analyze local or remote data Desktop Client Local Data DIM Remote Data Network Data Server DIM • • • User interface independent of Data Location Does not assume fast network (works well at 28. 8 bps] Analysis code moves (transparently) to data

JAS Implementation b “ 100% Java” Application • Uses Sun’s Java Foundation Classes (Swing) JAS Implementation b “ 100% Java” Application • Uses Sun’s Java Foundation Classes (Swing) for GUI • [optional] interfaces to legacy data (PAW, hippo, Std. Hep) uses Java Native Interface [JNI] b Leverage Commercial Components • Java itself – compiler, GUI, debugger, networking, Remote Method • • Invocation Help system from Oracle Plot component (not currently used] Object databases, SQL databases No runtime license fees

JAS Implementation b Modular Design • Can use individual parts – hep. analysis package JAS Implementation b Modular Design • Can use individual parts – hep. analysis package – Histogram display package – (e. g. for online display) – Plot package – Analysis tools • Can add or replace parts

Java Experience b Very Productive • • • No memory leaks No subtle c++ Java Experience b Very Productive • • • No memory leaks No subtle c++ problems fun to write b Cross Platform Easy • Develop under NT, – It just works elsewhere! b Getting faster all the time: • Swing 1. 1 • Faster Java Virtual Machines + Hot-Spot

1. 0 Beta Release now available b Windows (NT, 95, 98] self extracting executable 1. 0 Beta Release now available b Windows (NT, 95, 98] self extracting executable b Unix (Solaris+Linux) binary distribution available b Should be easy to port to other Unix, Mac etc. b Limitations • Detailed documentation still under development • May still be some changes to user API b Download from: • http: //www-sldnt. slac. stanford. edu/jas

Demo Demo

Future b Next Release (1. 0 final) • More types of plots – 2 Future b Next Release (1. 0 final) • More types of plots – 2 d plots, lego plots etc. • More flexible control of histograms • More n-tuple handling tools (c. f. Hippo. Draw] b Future • More Data Interface Modules – Objectivity, Root • Built in debugger, code profiler, scripting b You tell us!!

Collaboration b Integrate Wired event display as “Plug In” (M. Donszelmann, CERN) b Working Collaboration b Integrate Wired event display as “Plug In” (M. Donszelmann, CERN) b Working with Babar, CMS, LCD b Looking for more collaborators and/or experiments interested in trying Java Analysis Studio out and giving us feedback.

How to try it out b Please try it: • http: //www-sldnt. slac. stanford. How to try it out b Please try it: • http: //www-sldnt. slac. stanford. edu/jas b Please give us feedback • jas-feedback@sld-mail. slac. stanford. edu b Mailing List: • http: //www. slac. stanford. edu/cgi-bin/lwgate/JAS-L/ b Also general mailing list for Java in HEP: • http: //www. slac. stanford. edu/cgi-bin/lwgate/HEP-JAVA/

Conclusions b b Java is a very useful language+environment that could be very beneficial Conclusions b b Java is a very useful language+environment that could be very beneficial to HEP in many areas. Could Java be used for entire offline for major experiment (e. g. linear collider detector? ) • Technically - Yes • Politically - ?