recent and proposed changes to zoom recent entries intended future additions possibilities –d0 and...

13
Recent and Proposed Changes to ZOOM Recent entries Intended future additions • Possibilities D0 and CDF users can affect which new “possible” additions become actual Is it right to think about altering our mode of working now that the push to production is real?

Upload: juniper-heath

Post on 11-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Recent and Proposed Changes to ZOOM

• Recent entries• Intended future additions• Possibilities

– D0 and CDF users can affect which new “possible” additions become actual

• Is it right to think about altering our mode of working now that the push to production is real?

Page 2: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Areas• Special Functions • CLHEP• StdHepC++• Graded asserts• From the Gurus• gcc • Collective Error Logging • Possible or Probable

Page 3: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Gnu Scientific LibrarySpecial Functions

• Will other gsl sections be ZOOM-packaged– Could do some preemptively, but prefer to react

to specific needs– At a minimum, we must think through and

implement sensible C++-looking syntax for any section we incorporate into ZOOM

• Example: y = Ai(x) rather than Ai(double, double*)

• For many packages this may be non-trivial

Page 4: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Gnu Scientific LibraryOther Sections

• gsl includes– Numerical Integration– Monte Carlo Integration (including VEGAS)– Statistics– FFT– Equation solving– Minimization– Accelerated series convergence– Simulated annealing

• and …– Random numbers and distributions– Linear Algebra, Vectors, Matrices, and BLAS

Page 5: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Gnu Scientific LibraryOther Sections

• Will other gsl sections be packaged?– Could do some preemptively, but prefer to react to specific needs– At a minimum, we must think through and implement sensible

C++-looking syntax for any section we incorporate into ZOOM

• Example: y = Ai(x) rather than Ai(double, double*)• For many packages this may be non-trivial• If we can’t spare this much time, package won’t go in

• Please don’t look for ZOOM to replace existing working ZOOM packages with gsl equivalents– Comparative testing takes a lot of work– If external work proves a major advantage, …

Page 6: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Gnu Scientific LibrarySpecial Functions

• Will other gsl sections be ZOOM-packaged– Could do some preemptively, but prefer to react

to specific needs– At a minimum, we must think through and

implement sensible C++-looking syntax for any section we incorporate into ZOOM

• Example: y = Ai(x) rather than Ai(double, double*)

• For many packages this may be non-trivial

Page 7: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

CLHEP• Moving some ZOOM packages CLHEP

– Exceptions– ErrorLogger– PhysicsVectors will derive from CLHEP classes

• This is going slowly

– In all cases, ZOOM package will be kept in place so user code won’t need to change

• Random– Random Engine Factory– Object properties of distributions– Easy recipe for adding engines

• Zoom is not looking to add more engines per se

– Additional distributions coming from gsl (e.g. Fdist) • if users have specific needs!

Page 8: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

StdHepC++

• Intention is for a common format usable by generators, simulators, recon, and so forth

• Also utilities to move from that format to forms used by existing generators, simulators, …– hepevt

• StdHepC++ is CLHEP 1.5 – which is our latest ZOOM CLHEP release

• Major restructuring coming to take advantage of C++, make Particle class more standard and abstract, and separate particle properties form event relationships– A collision is a “Directed Acyclic Graph” of Particles/Vertices

• Possible coordination with HepMC, aimed at ATLAS

Page 9: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Graded Asserts• assert1, assert2, assert3 (easiest to deactivate)

controlled by NDEBUG, NDEBUG1, NDEBUG2, NDEBUG3

• Same behavior as assert– Goes away completely when deactivated

• sanityCheck – assert that is to be left in even if NDEBUG is on

• Versions that route to the ErrorLogger– Elassert, ELwarningAssert, …

Page 10: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

From the Gurus• ZOOM is a fine place to keep the collection of useful small tools,

contributed by experts in the experiments or the CD special projects group, which are carefully implemented and make good use of C++.

• Block <float, 4> a = {0.5, 1.2, 3.1, 4.2};– std::container syntax, but simple enough to block-initialize

• IteratorFilter– behaves like an std::iterator but with a user-supplied filtering

function. Simplifies loops.

• HolderPtr <double> xptr;– when a HolderPtr is copied, a copy or clone is made of

the pointed-to object

• To come: ZMnew allocator

Page 11: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

gcc• gcc (as of cvs checking we will do today!) is a working ZOOM

platform coordinating with ISOcxx so standard C++ can be used– One library header (locales) is still missing– sstring is present but with caveates…

• Will be cutting a release ASAP because this is considered important– Debuggers– Memory leak tools available– Speed of compilation– Worry about KAI being acquired by Intel

• Will be seeing if the production build of CDF, and a “golden build” for a D0 release, will go smoothly with gcc.

Page 12: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Collective Error Logging

• New ELcollected destination derived from ELoutput – (so changes needed to use it are very minimal)

• Transport scheme must be provided by experiment– send ( nbytes, data )– some way to know when data has arrived

• errlog ( nbytes, data ) on the server – will log that message in a sensible way

• More about this mechanism Thursday– Handholding to get it into a framework is appropriate

Page 13: Recent and Proposed Changes to ZOOM Recent entries Intended future additions Possibilities –D0 and CDF users can affect which new “possible” additions

Possible and Probable

• Package of Boudreau generic-functions, automated derivatives, and approximations

• Splines– 1-D splines already being tested

• Small correlation matrix objects– much less general, much simpler, faster than

general Linear Algebra constructs

• Other gsl sections, if needs arise