Opticks Dramatic Benefits
Speedup: Opticks > 1000x Geant4
NVIDIA OptiX applied to neutrino detector simulation : eliminates optical photon bottleneck
zero: effectively, compared to rest of simulation
More Photons -> More Benefit
PMT Based Expt | Impact/Prospects | Nobel |
---|---|---|
Savannah River | 1956: confirmed existence of antineutrino | 1995 |
Kamiokande II, IMB, Baksan | 1987: observed supernova neutrino burst | |
Super-Kamiokande | 1998: up-going muon neutrino deficit -> oscillation -> mass | 2015 |
SNO (heavy water) | 2002: evidence for neutrino flavor conversion | 2015 |
KamLAND | 2003: disappearance of electron anti-neutrinos, 2005: first observation of geoneutrinos | |
Borexino | 2010: confirmed geoneutrinos | |
Daya Bay | 2012: discovered large theta13 neutrino oscillation mixing angle | |
RENO, Double Chooz | Confirms Daya Bay theta13 | |
JUNO | data in 2020, ~18k 20 inch PMTs, reactor neutrino spectrum at 53km -> mass heirarchy | |
KM3Net, Baikal GVD | ~5(1) km^3 of Mediterranean(Lake Baikal) -> high energy cosmic neutrinos | |
Hyper-K (proposed) | 25x Super-K, 99k 20 inch PMTs, switchable muon (anti)neutrino beam Tokai->Kamioka, e-neutrino spectrum difference -> CP phase |
Understanding optical photon generation and propagation : critical for design, operation, analysis
Radical simulation speedup -> short development cycle -> improved understanding
Artists impression of SN1987A ejecta : based on ESO's VLT observation
© ESO/L. Calçada - Artwork based on ESO's VLT observations - http://www.eso.org/public/news/eso1032/
Neutrino Astronomy Birth
Neutrino Burst : 24 in 13s
Supernova 1987A Neutrinos
Neutrino Detectors : Supernova Early Warning
© ESO/L. Calçada - Artwork based on ESO's VLT observations - http://www.eso.org/public/news/eso1032/
© Kamioka Observatory, ICRR(Institute for Cosmic Ray Research), The University of Tokyo.
Super-Kamiokande Expt
Solar/Atmospheric/Acclerator(T2K) neutrinos
e/mu Neutrinos from detected e/mu
© Kamioka Observatory, ICRR(Institute for Cosmic Ray Research), The University of Tokyo.
© Kamioka Observatory, ICRR(Institute for Cosmic Ray Research), The University of Tokyo.
© Kamioka Observatory, ICRR(Institute for Cosmic Ray Research), The University of Tokyo.
Super-Kamiokande
Neutrino zenith angle : cos(th) < 0 upward
1998: Muon-neutrinos from opposite side of Earth disappearing : 1st evidence neutrinos have mass
2015 Nobel : T.Kajita (SuperK), A.McDonald (SNO)
3 Sites, 8 Identical ADs
© 2010 The Regents of the University of California, through the Lawrence Berkeley National Laboratory
Energy "Big Picture"
-> Adopt Empirical Non-Linear Energy Model
Under construction
Multi-purpose Neutrino Observatory
Challenging Simulation
Huge Detector, Many PMTs
Extreme numbers of photons
As many photons as possible:
Uniformity, Low noise
Baseline Numbers: arXiv:1507.05613v2 (Oct 2015) Neutrino Physics with JUNO
arXiv:1507.05613v2 (Oct 2015) Neutrino Physics with JUNO
~220 page "Yellow Book" compendium of JUNO Physics http://arxiv.org/abs/1507.05613
Electron Energy Response
Compton scattering benchtop measurement. Electron energy response of Daya Bay LS.
Chinese Physics C Vol. 39, No. 1 (2015) 016003 ; Zhang Fei-Hong et al.
Intrinsic scintillator quenching, described by Birks' Law
Energy model considerations:
Emission Spectra
Dis-entangle ternary scintillation stages:
Chinese Physics C 2010 34 (11): 1724-1728 : Xiao H.L. et al
Requirements:
Fluor Scintillation + Cerenkov light -> Absorption + Reemission
Leading in Particle Physics
Geant4 simulates particles travelling through matter
Geant4 Approach
Very General and Capable Tool
Optical Photon Simulation Problem
Cosmic muons can yield many millions of optical photons in Daya Bay (even more in JUNO). Optical photon propagation dominates Geant4 simulation time ~95% for Daya Bay.
Cosmic Muon Sample sizes severely limited by CPU time and memory practicalities.
Hybrid Solution : Geant4 + Opticks
External propagation possible as optical photons are isolated in simulation chain.
OptiX Glass Sample App
Fast ray tracing can revolutionize optical photon simulation
NVIDIA OptiX Ray Tracing Engine:
NVIDIA OptiX makes massively parallel intersection accessible
NVIDIA OptiX
http://developer.nvidia.com/optix
Ray trace rendering synthetic images for industry
BUT, general API
Opticks
Opticks aims to replace Geant4 optical photon propagation with an equivalent and drastically faster GPU implementation.
Opticks : ~15 C++ Packages
Side Benefit : Performant Visualization
Migrating Geant4 C++ CSG tree geometry to the GPU enables unprecedented visualizations.
2013(Aug-) [liberate geometry from Geant4]
2014 [integrate geometry/event data with Chroma [1]]
2015 [replace Chroma with Opticks]
2016 [Opticks validation against Geant4]
[1] http://chroma.bitbucket.org Developed by Stan Seibert, University of Pennsylvania.
Textures for all properties
Translate Geant4 CSG tree solids into Opticks boundaries:
Properties as function of wavelength interleaved into float4 texture.
Texture lookup simplifies OptiX programs
// material property lookup from OptiX programs float nmi = (nm - wavelength_domain.x)/wavelength_domain.z + 0.5f ; float4 material1 = tex2D(boundary_texture, nmi, line + 0.5f ); float refractive_index = material1.x ; float absorption_length = material1.y ; float scattering_length = material1.z ; float reemission_probability = material1.w ; // >0 for scintillators
Geometry analysed to find instances
JUNO: ~90M --> 0.1M triangles
OpenGL/OptiX instancing
Multiple Renderers
Split simulation from visualization
Analytic : more realistic, faster, less memory, much more effort
For Dayabay PMT:
Starting from convenient tesselated geometry, implement analytic geometry for critical parts in primary optical path, to allow very close Geant4/Opticks match.
Compressed Steps, OpenGL Buffer, written by OptiX
OpenGL Geometry Shader: lines -> points/line_strip
Interactive: time scrubbing + history/material selection
// geom.glsl layout (lines) in; layout (line_strip, max_vertices = 2) out; void main () { vec4 p0 = gl_in[0].gl_Position ; // p0.w : step begin time vec4 p1 = gl_in[1].gl_Position ; // p1.w : step end time ...
Statistically consistent photon histories in the two simulations
64-bit uint Opticks Geant4 chi2 (tag:5,-5) 8ccd 819160 819654 0.15 [4 ] TO BT BT SA (cross droplet) 8bd 102087 101615 1.09 [3 ] TO BR SA (external reflect) 8cbcd 61869 61890 0.00 [5 ] TO BT BR BT SA (bow 1) 8cbbcd 9618 9577 0.09 [6 ] TO BT BR BR BT SA (bow 2) 8cbbbcd 2604 2687 1.30 [7 ] TO BT BR BR BR BT SA (bow 3) 8cbbbbcd 1056 1030 0.32 [8 ] TO BT BR BR BR BR BT SA (bow 4) 86ccd 1014 1000 0.10 [5 ] TO BT BT SC SA 8cbbbbbcd 472 516 1.96 [9 ] TO BT BR BR BR BR BR BT SA (bow 5) 86d 498 473 0.64 [3 ] TO SC SA bbbbbbbbcd 304 294 0.17 [10] TO BT BR BR BR BR BR BR BR BR (bow 8+ truncated) 8cbbbbbbcd 272 247 1.20 [10] TO BT BR BR BR BR BR BR BT SA (bow 6) cbbbbbbbcd 183 161 1.41 [10] TO BT BR BR BR BR BR BR BR BT (bow 7 truncated)
1M 64 bit uint flag sequences indexed using CUDA Thrust, 0.040 s (sparse histogram sort)
Spectra obtained by selecting photons by internal reflection counts. Colors obtained from spectra of each bin using CIEXYZ weighting functions converted into sRGB/D65 colorspace. Exposures by normalizing to bin with maximum luminance (CIE-Y) of each bow. White lines indicate geometric optics prediction of deviation angle ranges of the visible range 380-780nm. 180-360 degrees signifies exit on same side of droplet as incidence.
Deviation angle(degrees) of 1M parallel monochromatic photons in disc shaped beam incident on water sphere. Numbered bands are visible range expectations of first 11 rainbows. S-Polarized intersection (E field perpendicular to plane of incidence) arranged by directing polarization radially.
Interactive selection
By history or material sequences, eg:
BT:boundary transmit, BR:boundary reflect
Implemented with Thrust indexing (sparse histogram sort)
Good agreement reached, after several fixes: geometry, total internal reflection, group velocity
Consistent : chi2/ndf ~ 1
Very good Opticks/Geant4 agreement
XYTZ: position, time ABCR: polarization, radius
4/PMT In Box/torch : | X | Y | Z | T | A | B | C | R |
---|---|---|---|---|---|---|---|---|
340271/340273 : [TO] BT SA | 1.15 | 1.00 | 0.00 | 0.00 | 1.06 | 1.03 | 0.00 | 1.21 |
340271/340273 : TO [BT] SA | 1.15 | 1.00 | 1.06 | 0.91 | 1.06 | 1.03 | 0.00 | 1.21 |
340271/340273 : TO BT [SA] | 0.97 | 1.02 | 1.05 | 0.99 | 1.06 | 1.03 | 0.00 | 1.29 |
107598/107251 : [TO] BT SD | 0.91 | 0.73 | 0.56 | 0.56 | 0.98 | 1.09 | 0.56 | 0.94 |
107598/107251 : TO [BT] SD | 0.91 | 0.73 | 0.81 | 0.93 | 0.98 | 1.09 | 0.56 | 0.94 |
107598/107251 : TO BT [SD] | 0.99 | 0.83 | 0.97 | 0.99 | 0.98 | 1.09 | 0.56 | 0.93 |
23217/23260 : [TO] BT BT SA | 0.94 | 0.82 | 0.04 | 0.04 | 0.97 | 0.89 | 0.04 | 0.57 |
23217/23260 : TO [BT] BT SA | 0.94 | 0.82 | 0.70 | 0.50 | 0.97 | 0.89 | 0.04 | 0.57 |
23217/23260 : TO BT [BT] SA | 0.91 | 0.94 | 0.43 | 0.60 | 0.97 | 0.89 | 0.04 | 0.05 |
23217/23260 : TO BT BT [SA] | 0.94 | 0.88 | 0.04 | 0.35 | 0.97 | 0.89 | 0.04 | 0.72 |
18866/19048 : [TO] AB | 0.99 | 1.10 | 0.87 | 0.87 | 0.85 | 0.84 | 0.87 | 1.00 |
18866/19048 : TO [AB] | 0.99 | 1.10 | 0.93 | 0.92 | 0.85 | 0.84 | 0.87 | 1.00 |
3179/3133 : [TO] SC SA | 1.07 | 0.83 | 0.34 | 0.34 | 0.86 | 0.96 | 0.34 | 0.73 |
3179/3133 : TO [SC] SA | 1.07 | 0.83 | 0.98 | 1.05 | 0.98 | 1.06 | 0.98 | 0.73 |
3179/3133 : TO SC [SA] | 0.96 | 1.04 | 0.93 | 0.97 | 0.98 | 1.06 | 0.98 | 1.10 |
2204/2249 : [TO] BT AB | 0.85 | 1.04 | 0.45 | 0.45 | 0.99 | 0.92 | 0.45 | 1.06 |
2204/2249 : TO [BT] AB | 0.85 | 1.04 | 0.95 | 0.88 | 0.99 | 0.92 | 0.45 | 1.06 |
2204/2249 : TO BT [AB] | 0.98 | 0.94 | 1.01 | 1.00 | 0.99 | 0.92 | 0.45 | 0.90 |
1696/1732 : [TO] BT BT AB | 1.05 | 0.85 | 0.38 | 0.38 | 0.86 | 1.09 | 0.38 | 0.26 |
1696/1732 : TO [BT] BT AB | 1.05 | 0.85 | 1.48 | 1.28 | 0.86 | 1.09 | 0.38 | 0.26 |
1696/1732 : TO BT [BT] AB | 0.99 | 0.86 | 1.17 | 1.40 | 0.86 | 1.09 | 0.38 | 0.86 |
1696/1732 : TO BT BT [AB] | 1.15 | 0.88 | 1.08 | 1.06 | 0.86 | 1.09 | 0.38 | 0.79 |
1446/1455 : [TO] BR SA | 1.21 | 0.94 | 0.03 | 0.03 | 0.90 | 0.87 | 0.03 | 1.09 |
1446/1455 : TO [BR] SA | 1.21 | 0.94 | 1.02 | 1.01 | 0.90 | 0.87 | 0.03 | 1.09 |
1446/1455 : TO BR [SA] | 1.00 | 0.93 | 0.97 | 0.99 | 0.90 | 0.87 | 0.03 | 1.04 |
Test | Geant4 10.2 | Opticks Interop | Opticks Compute |
---|---|---|---|
Rainbow 1M(S) | 56 s | 1.62 s | 0.28 s |
Rainbow 1M(P) | 58 s | 1.71 s | 0.25 s |
PmtInBox 0.5M | 41 s | 0.81 s | 0.15 s |
[1] MacBook Pro (2013), NVIDIA GeForce GT 750M, 2048 MB, 384 cores
Overview
Opticks enables particle physics to benefit from optical photon simulation taking effectively zero time and zero CPU memory, thanks to massive parallelism made accessible by NVIDIA OptiX.
- The more photons the bigger the overall speedup (99% -> 100x)
- Drastic speedup -> better detector understanding -> greater precision
- Large PMT based neutrino experiments, such as JUNO, can benefit the most
http://simoncblyth.bitbucket.io/env/graphics/ggeoview/jpmt-after-contact_half.png
http://simoncblyth.bitbucket.io/env/graphics/ggeoview/jpmt-inside-outside_half.png
Photon History Selection
Only CK BT BT BT SA, three boundary transmits before surface absorption
Geometry Issues Fixed/Avoidable
Use cuRAND in OptiX without large stack
Init in separate CUDA launch, persist cuRAND state, subsequently load into OptiX context : avoids large stack performance hit
Compositing OptiX Ray Trace and OpenGL Rasterized
out vec4 frag_colour; uniform sampler2D ColorTex ; void main () { frag_colour = texture(ColorTex, texcoord); float depth = frag_colour.w ; frag_colour.w = 1.0 ; gl_FragDepth = depth ; ...