Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Java Analysis Studio and the Java Framework for Future Linear Colliders. CERN - January 13th 1998 Tony Johnson - SLAC"— Presentation transcript:

1

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

3 Contents b Introduction to Java Pro’s and Con’s of Java for HEPPro’s and Con’s of Java for HEP b Java Framework for LC Detector studies b Java Analysis Studio FeaturesFeatures Beta Release InformationBeta Release Information DemoDemo FutureFuture Opportunities for CollaborationOpportunities for Collaboration b Conclusion

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

5 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

6 Why Java for HEP Computing? b b Highly Portable Java works today on NT, Win95/8, Unix, Mac, VMS etc. Programs written in Java are very portable – –care needed for browsers, AWT b 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) b 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

7 Why Java for HEP Computing? b b Previous generation of experiments used Fortran + Data Management System (== Jazelle, Zebra, BOS) b b 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 Now time has marched on and modern experiments use C++ 4Represent Complex Data 6Persistence 6Run time access to data Still need to build (or buy and deploy) data management system (e.g. Root, Objectivity) b Java 4Represent Complex Data 4Persistence (serialization) 4Run time access to data (reflection) support built-in to language

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

9 Why Java for HEP Computing? b Built-in support for distributed computing and Networking take code to datatake 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 datapossible to have distributed farm of processors analyzing data Give user impression code is running locallyGive user impression code is running locally

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

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

12 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

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

14 Java package hep.lcd ? b hep.lcd a Java framework for rapid development of Fast simulation toolsFast simulation tools Reconstruction (Clustering and Track Finding)Reconstruction (Clustering and Track Finding) Analysis algorithmsAnalysis 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

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

16 hep.lcd framework

17 Event Display

18

19

20

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

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

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

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

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

26 Java Analysis Studio Features b Supports both n-tuples and Structured Data n-tuples are fast and allow for simplifications in GUIn-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 flexibilityArbitrarily 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

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

28 Java Analysis Studio Features b User analysis modules written in Java Java Excellent Language for Physics AnalysisJava 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:JAS provides built-in editor, compiler, plus: –hep.analysis package –for creating/filling/manipulating histograms –hep.physics package –simple particle, track manipulation package

29

30 hep.analysis package b Histogram delegates binning to: “partition classes” [idea stolen from LHC++]“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.Many standard partitions provided. User can provide own partition functionsUser can provide own partition functions

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

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

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

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

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

36 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 developmentDetailed documentation still under development May still be some changes to user APIMay still be some changes to user API b Download from: http://www-sldnt.slac.stanford.edu/jashttp://www-sldnt.slac.stanford.edu/jas

37 Demo

38 Future b Next Release (1.0 final) More types of plotsMore types of plots –2d plots, lego plots etc. More flexible control of histogramsMore flexible control of histograms More n-tuple handling tools (c.f. HippoDraw]More n-tuple handling tools (c.f. HippoDraw] b Future More Data Interface ModulesMore Data Interface Modules –Objectivity, Root Built in debugger, code profiler, scriptingBuilt in debugger, code profiler, scripting b You tell us!!

39 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.

40 How to try it out b Please try it: http://www-sldnt.slac.stanford.edu/jashttp://www-sldnt.slac.stanford.edu/jas b Please give us feedback jas-feedback@sld-mail.slac.stanford.edujas-feedback@sld-mail.slac.stanford.edu b Mailing List: http://www.slac.stanford.edu/cgi-bin/lwgate/JAS-L/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/http://www.slac.stanford.edu/cgi-bin/lwgate/HEP-JAVA/

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


Download ppt "Java Analysis Studio and the Java Framework for Future Linear Colliders. CERN - January 13th 1998 Tony Johnson - SLAC"

Similar presentations


Ads by Google