The yt Project:
Growing & Engaging a Community of Practice
Matthew Turk Columbia University
The yt Project: Growing & Engaging a Community of Practice - - PowerPoint PPT Presentation
The yt Project: Growing & Engaging a Community of Practice Matthew Turk Columbia University What is yt? astro-ph/1011.3514 astro-ph/1112.4482 yt-project.org yt is a platform for analysis and visualization of astrophysical* simulations
Growing & Engaging a Community of Practice
Matthew Turk Columbia University
astro-ph/1011.3514 astro-ph/1112.4482 yt-project.org
yt is a platform for analysis and visualization of astrophysical* simulations
install script: Full dependency stack Source code Development environment GUI Sample data
There are many simulation codes.
There are many simulation codes, but there’s only one sky.
data structures, methods, assumptions, IO formats, units, variable names, ...
Fully-Supported Semi-Supported In-Progress Enzo FLASH Orion Nyx Uniform Data Chombo Athena ART RAMSES GDF Piernik Cactus Hydra Gadget
yt is designed to address physical, not computational, entities and questions.
Orthogonal Rays Non-orthogonal Rays 1D Slices Oblique Slices Projections 2D Spheres Rectangular Prisms Disks/Cylinders Inclined Boxes Clumps Extracted Regions Ellipsoids 3D
Scripting interface, HTML5 GUI, in-situ processing, transparent multi-level parallelism...
yt is supposed to get out of the way.
from yt.mods import * pf = load(’galaxy0030/galaxy0030’) p = SlicePlot(pf, 2, ’Density’, ’c’, (200,’kpc’)) p.save(’Galaxy’)
10-12 g/cc
6 C.B. Hummels et al.
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
“Users” “Developers” Traditional View
“Users” “Developers” Most Scientific Software
“Devusers” Community of Practice
“Developers”
“Developers” Inspection and verification
“Developers” Inspection and verification Tracking modifications
“Developers” Inspection and verification Tracking modifications Sharing information
“Developers” Inspection and verification Tracking modifications Sharing information Adding functionality
“Developers” Inspection and verification Tracking modifications Sharing information Adding functionality All are necessary characteristics of the scientific process as a whole.
“Users”
“Users” Uncritical acceptance of code...?
“Users” Uncritical acceptance of code...? “These are people we give the code to that don’t care how it works.”
de facto and de jure
de facto and de jure
de facto and de jure
Traditional astrophysics does not favor tool builders.
Documentation, testing,
infrastructure.
Tasks not fully-aligned with reward structure goals present great motivational challenges.
How developer community engagement -- as seen in cohesion, excitement, energy -- is affected by funded improvements is unclear.
The Art of Community by Bacon Producing Open Source Software by Fogel Team Geek by Fitzpatrick & Collins-Sussman Organizing Simulation Code Collectives by Sundberg Scientific Software Production by Howison & Herbsleb
You must design the community you want.
SVN hg
Repository Users
Users & Repos Users & Repos Users & Repos Users & Repos Users & Repos Users & ReposForky development: very low barrier to entry; everything comes in the box.
Testing: answer as well as integration tests get run every 30 minutes.
Code review: eyes on (nearly) every changeset mentoring new developers
The path upstream must be obvious.
Non-core contributed code: a place for sharing scripts, data and images
Communication
Communication All business is conducted openly.
Communication Immediate
2
Communication Low-Latency
Communication High-Latency
(Fitzpatrick & Collins-Sussman)
The most important thing I try to remember is that I want to foster a community of peers, not of elites.
I’ve noticed something is acting strangely with ... “ “
I’ve noticed something is acting strangely with ... You’re probably doing it wrong. “ “ “ “
Can you tell us how you would expect it to act? I’ve noticed something is acting strangely with ... “ “ “ “
I think that there might be a bug in the way ... “ “
It’s like that for very good reasons. Don’t touch it. I think that there might be a bug in the way ... “ “ “ “
It behaves the way it does because ... I think that there might be a bug in the way ... “ “ “ “
Thoughtfulness, inquiry, confidence, letting go.
This culture must be seeded directly.
This culture must be seeded directly, because culture will self-propagate.
letting go
Pride rather than ownership
Projects passing between people
Too much control can smother.
Too much control can smother. will
Developed by working astrophysicists.
Tom Abel David Collins Brian Crosby Andrew Cunningham Nathan Goldbaum Cameron Hummels Ji-hoon Kim Steffen Klemer Kacper Kowalik Michael Kuhlen Eve Lee Chris Malone Chris Moody Andrew Myers Jeff Oishi Jean-Claude Passy Thomas Robitaille Anna Rosen Anthony Scopatz Devin Silvia Sam Skillman Stephen Skory Britton Smith Geoffrey So Casey Stark Elizabeth Tasker Matthew Turk Rick Wagner John Wise John ZuHone
Tom Abel David Collins Brian Crosby Andrew Cunningham Nathan Goldbaum Cameron Hummels Ji-hoon Kim Steffen Klemer Kacper Kowalik Michael Kuhlen Eve Lee Chris Malone Chris Moody Andrew Myers Jeff Oishi Jean-Claude Passy Thomas Robitaille Anna Rosen Anthony Scopatz Devin Silvia Sam Skillman Stephen Skory Britton Smith Geoffrey So Casey Stark Elizabeth Tasker Matthew Turk Rick Wagner John Wise John ZuHone
“Usage of a HPC Data Analysis and Visualization System,” Szczepanski et al 2012
Usage on NSF NICS Nautlius
(play movie)
“... it seems likely that significant software contributions to existing scientific software projects are not likely to be rewarded through the traditional reputation economy of science. Together these factors provide a reason to expect the over-production of independent scientific software packages, and the under- production of collaborative projects in which later academics build on the work of earlier
Howison & Herbsleb (2011)
Tom Abel David Collins Brian Crosby Andrew Cunningham Nathan Goldbaum Cameron Hummels Ji-hoon Kim Steffen Klemer Kacper Kowalik Michael Kuhlen Eve Lee Chris Malone Chris Moody Andrew Myers Jeff Oishi Jean-Claude Passy Thomas Robitaille Anna Rosen Anthony Scopatz Devin Silvia Sam Skillman Stephen Skory Britton Smith Geoffrey So Casey Stark Elizabeth Tasker Matthew Turk Rick Wagner John Wise John ZuHone