analyzing simulated data
play

Analyzing Simulated Data Matthew Turk There is only one sky. (but - PowerPoint PPT Presentation

Analyzing Simulated Data Matthew Turk There is only one sky. (but there are many simulation codes) Different methods, data structures, assumptions, IO methods, units, variable names, ... Analysis. astro-ph/1011.3514 yt-project.org


  1. Analyzing Simulated Data Matthew Turk

  2. There is only one sky. (but there are many simulation codes)

  3. Different methods, data structures, assumptions, IO methods, units, variable names, ...

  4. Analysis.

  5. astro-ph/1011.3514 yt-project.org

  6. install script: Full dependency stack Source code Development environment GUI Sample data

  7. yt has been designed to address physical, not computational, entities.

  8. Process ◮ Read ◮ Correlate ◮ Process ◮ Visualize

  9. The Universe is full of gas, dark matter and stars. yt makes it easy to access that material.

  10. Transparent IO, masking of overlapping data, load-on-demand, geometric and non- geometric selection, field generation, and common interfaces to different datatypes.

  11. Enzo, Orion, CASTRO, FLASH Chombo, Tiger, Athena , ART, RAMSES yt is designed to be the lingua franca of astrophysical codes.

  12. Objects (conceptual, uniformly accessible NumPy stores)

  13. Objects Orthogonal Rays 1D Non-orthogonal Rays Slices Oblique Slices 2D Projections Spheres Rectangular Prisms Disks/Cylinders Inclined Boxes 3D Clumps Extracted Regions Boolean combinations

  14. Objects All respect unified interface: from yt.mods import * pf = load(“DataDump0155.dir/DataDump0155”) ray = pf.h.ray([0.1, 0.2, 0.5], [0.4, 0.9, 0.1]) print ray[“Density”]

  15. Objects All respect unified interface: from yt.mods import * pf = load(“DataDump0155.dir/DataDump0155”) sl = pf.h.slice(0, 0.5) print sl[“Density”]

  16. Objects All respect unified interface: from yt.mods import * pf = load(“DataDump0155.dir/DataDump0155”) sp = pf.h.sphere(100.0/pf[‘au’], ‘max’) print sp[“Density”]

  17. from yt.mods import * pf = load(“DataDump0155.dir/DataDump0155”) v, c = pf.h.find_max(“Density”)

  18. Adding new fields should be easy.

  19. from yt.mods import * @derived_field(“Pressure”) def Pressure(field, data): return (data.pf["Gamma"] - 1.0) * \ data["Density"]*data["ThermalEnergy"]

  20. Scripts should be simple and clear.

  21. from yt.mods import * pf = load(“DataDump0155.dir/DataDump0155”) pc = PlotCollection(pf) pc.add_phase_sphere(1000.0, ‘au’, [“Density”, “Temperature”, “H2I_Fraction”]) pc.save()

  22. from yt.mods import * pf = load(“DataDump0155.dir/DataDump0155”) pc = PlotCollection(pf) pc.add_phase_sphere(1000.0, ‘au’, [“Density”, “Temperature”, “CellMassMsun”], weight = None) pc.save()

  23. Slices

  24. from yt.mods import * pf = load(’galaxy0030/galaxy0030’) p = SlicePlot(pf, 2, ’Density’, ’c’, (200,’kpc’)) p.save(’Galaxy’)

  25. from yt.mods import * pf = load(’galaxy0030/galaxy0030’) p = SlicePlot(pf, 2, ’Density’, ’c’, (200,’kpc’)) p.set_width(20, ’kpc’) p.save("GalaxyZoom")

  26. (px, py, pdx, pdy, z) Projections

  27. from yt.mods import * pf = load(’galaxy0030/galaxy0030’) p = ProjectionPlot(pf, 2, ’Density’, ’c’, (20,’kpc’)) p.save(’Galaxy’)

  28. Oblique Slices

  29. Off-axis Projection

  30. Project once, pixelize many

  31. (px, py, pdx, pdy, z) Image Buffer

  32. (px, py, pdx, pdy, z) Image Buffer

  33. Parallelism

  34. Parallelism Embarassingly Parallel Spatial Decomposition Decomposed by load or Helper functions to IO characteristics decompose the domain

  35. Parallelism Embarassingly Parallel Spatial Decomposition Quantities Profiles Slices Halo Finding Projections Volume Rendering

  36. Multi-level parallelism: dynamic workgroups, communicators, subgroups and task queues

  37. Volume Rendering

  38. Designed around integrating through a volume: visualization is a side effect. dI ν ds = j ν − α ν I ν

  39. from yt.mods import * pf = load(“DD1701/DD1701”) v, c = pf.h.find_max("Density") L = [1.0, 1.0, 1.0] W = 100.0/pf['mpc'] tf = vr.PlanckTransferFunction() cam = pf.h.camera(c, L, W, 1024, tf) cam.snapshot()

  40. Canned Analysis Tasks

  41. Absorption Spectrum Coordinate Transformations Halo Finding Mass Functions Merger Trees Halo Profiling Level Sets Light Cones Light Rays Time Series Star Analysis Two-Point Analysis

  42. Level Sets

  43. Synthetic Spectra

  44. Two-Point Functions

  45. Three Halo Finders: Standard HOP Friends of Friends Parallel HOP Rockstar (beta)

  46. co-scheduled & in situ viz

  47. Process Simulation yt Thin NumPy wrappers and stop-n-go

  48. On Disc → In-situ

  49. Inter-comm Simulation yt Fire and forget, no embedded interpreter

  50. Developing as a Team

  51. Code review: eyes on (nearly) every changeset

  52. Forky development: very low barrier to entry; everything comes in the box.

  53. Testing: answer as well as integration tests get run every 30 minutes.

  54. 80,000 lines of code Python, Cython, C 20 contributors (60+ users) Contributors from 10+ institutions 8AM 6PM

  55. Contributors Tom Abel Jean-Claude Passy David Collins Thomass Robitaille Andrew Cunningham Anna Rosen Nathan Goldbaum Anthony Scopatz Cameron Hummels Devin Silvia Ji-hoon Kim Sam Skillman Steffen Klemer Stephen Skory Kacper Kowalik Britton Smith Michael Kuhlen Geoffrey So Eve Lee Casey Stark Chris Malone Elizabeth Tasker Chris Moody Rick Wagner John Wise Andrew Myers Jeff Oishi John ZuHone

  56. How to get started http://yt-project.org/ http://yt-project.org/issac2012/

Recommend


More recommend