Skip to content

Commit d4a957c

Browse files
authored
Merge pull request #168 from matthewturk/minor_fixed-20241217
Minor fixes from December 2024
2 parents 4e52d3a + b86289e commit d4a957c

9 files changed

+558
-339
lines changed

content/45.user_friendliness.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ When loading a dataset, yt will attempt to determine what the format of the data
7575

7676
While these may seem like simple, obvious changes to make, they can hide difficult technical challenges, and more importantly, have dramatically improved the user experience for people using yt.
7777

78-
### Jupyter Integration {#sec:jupyter_integrationt}
78+
### Jupyter Integration {#sec:jupyter_integration}
7979

8080
Project Jupyter is an overarching term for a collection of related projects that provide an extensive, end-to-end suite for the user experience of developing code and narrative, as described in depth in (among other papers) @doi:10.1109/MCSE.2021.3059263 and @soton403913.
8181
While many in the yt community utilize yt through python scripts executed on the command line or through submission queues on high-performance computing resources, a large fraction utilize Jupyter Notebooks for their data exploration.

content/50.halo_finding_and_catalogs.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Being able to identify halos, as well as their associated baryonic content, is n
66
Furthermore, convergence studies and cross-simulation comparisons requires a consistent method for identifying dark matter halos, as well as the ability to track their growth over time.
77

88
In past versions of `yt`, several specific halo finders were bundled and made available to work on any class of data `yt` was able to read.
9-
These included the HOP halo finder, the classic Friends-of-Friends (FOF) halo finder [@doi:10.1086/191003], a scalable and Parallel HOP [@doi: 10.1086/305535], and a wrapping of the ORIGAMI code [@doi:10.1142/9789814623995_0378] for filament identification.
9+
These included the HOP halo finder, the classic Friends-of-Friends (FOF) halo finder [@doi:10.1086/191003], a scalable and Parallel HOP [@doi:10.1086/305535], and a wrapping of the ORIGAMI code [@doi:10.1142/9789814623995_0378] for filament identification.
1010
To do so, `yt` would utilize direct in-memory connectors with these implementations; whereas typically data connectors are written for each individual dataset format for individual halo finding methods, this enabled a single connector to be written from `yt` to the halo finder.
1111
In addition to these bundled halo finders, a direct in-memory interface with Rockstar [@doi:10.1088/0004-637X/762/2/109] was developed that sidestepped Rockstar's built in load-balancing to minimize data duplication and transfer.
1212

content/55.scaling_parallelism.md

+8-12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Scaling and Parallelism
1+
## Scaling and Parallelism
22

33
To support cases where data volume results in long processing time or large memory requirements, yt operations have been parallelized using the Message Passing Interface (MPI; @mpi40).
44
When designing the parallel interface for yt, as discussed in [@doi:10.1088/0067-0049/192/1/9], the design goals included ensuring that scripts required little to no adjustments to be run in parallel.
@@ -8,19 +8,18 @@ In the intervening time, the parallel operation infrastructure has been rewritte
88

99
Almost all of the operations in yt that are conducted in parallel follow a straightforward method of decomposing work and consolidating results:
1010

11-
1. Identify which chunking method (see @sec:chunking) is most appropriate for the operation.
12-
2. Consolidate chunks according to IO minimization and assign to individual MPI tasks
13-
3. Join (potentially applying reduction operations) final results to provide solution to *all tasks* in the group
11+
1. Identify which chunking method (see @sec:chunking) is most appropriate for the operation.
12+
2. Consolidate chunks according to IO minimization and assign to individual MPI tasks
13+
3. Join (potentially applying reduction operations) final results to provide solution to _all tasks_ in the group
1414

1515
The final step, of joining across tasks, results in the final set of values being accessible to all tasks; this is not a universal "final step" in parallel operations, and in some cases results in substantial duplication of memory.
1616
This compromise was accepted as a result of the design goals of ensuring that scripts can run unmodified.
1717

18-
The parallelism in yt heavily leans upon the "index" for a dataset either being available *already* at initiation time on all tasks, or that index being *accessible* through IO operations or fast generation.
18+
The parallelism in yt heavily leans upon the "index" for a dataset either being available _already_ at initiation time on all tasks, or that index being _accessible_ through IO operations or fast generation.
1919
This provides a degree of load-balancing that can be conducted, as estimates of memory and processing requirements are available on all tasks (and thus the load-balancing calculations are deterministic across all tasks).
2020
In essence, this means that for grid-based datasets, the entire grid hierarchy is available on all processors; for octrees or particle datasets, it means that at least a rough estimate of the distribution of values must be available (and identical) on all processors.
2121
This doesn't prevent opaquely distributed datasets from being decomposed, but it does allow datasets whose distribution is well-described to be decomposed with greater precision.
2222

23-
2423
### Multi-Level Parallelism
2524

2625
In its original implementation of parallelism, yt utilized a single, global MPI communicator (`MPI_COMM_WORLD`).
@@ -31,7 +30,7 @@ For example, when conducting halo finding and analysis (see @sec:halo_finding) y
3130
This takes place by specifying a task size at the top level (or allowing yt's internal heuristics to determine it) and then distributing work to sub-communicators, each of which is then used for decomposition inside that top-level task.
3231

3332
In addition to multi-level communicators, yt utilizes OpenMP constructs exposed in Cython in several places.
34-
This includes in the software volume rendering (see @sec:software-volume-rendering), in the pixelization operations for SPH data (see @sec:sph-analysis), calculation of gravitational binding energy (see @sec:analysis-modules) and for computing the bounding volume hierarchy for rendering finite element meshes (see @sec:unstructured-mesh).
33+
This includes in the software volume rendering (see @sec:software-volume-rendering), in the pixelization operations for SPH data (see @sec:sph-analysis), calculation of gravitational binding energy (see @sec:analysis-modules) and for computing the bounding volume hierarchy for rendering finite element meshes (see @sec:unstructured_mesh).
3534
In some instances, the Cython interface to OpenMP has had unpredictable performance implications; owing to this, the usage of OpenMP within yt has been somewhat conservative.
3635

3736
### Parallelism Interfaces
@@ -42,7 +41,7 @@ This parallelism is instrumented through the use of the yt "chunking" interface,
4241
The high-level interface to the `DerivedQuantity` subclasses computes the data chunks in the source data object and then assigns these to individual MPI tasks in the current top-level communicator.
4342
Each initializes storage space for the intermediate values, iterates over its assigned chunks and constructs intermediate reductions, and then the finalization step involves broadcasting the values to all other tasks and completing the final set of operations.
4443
For projections, the procedure is very similar; those datasets with an index duplicated across MPI tasks (such as patch-based grid datasets) are collapsed along a dimension and each MPI task fills in the values, which are then reduced through a broadcast operation.
45-
Utilizing these operations requires *no* modifications to user-facing code other than a call to `yt.enable_parallelism()` at the start of the script.
44+
Utilizing these operations requires _no_ modifications to user-facing code other than a call to `yt.enable_parallelism()` at the start of the script.
4645

4746
The user-facing parallel constructs allow for somewhat greater flexibility in defining parallel task decomposition.
4847
Many objects in yt, particularly those such as the `DatasetSeries` object, have constituent data objects on which analysis can be conducted.
@@ -72,8 +71,6 @@ For many types of data analysis, particularly those operations conducted across
7271

7372
### Performance of Operations
7473

75-
76-
7774
### Inline Analysis
7875

7976
It is possible to instrument a simulation code to call Python routines inline during its execution.
@@ -84,9 +81,8 @@ In these cases, `yt` did not pass around datasets between MPI tasks, but rather
8481
Within Enzo, all of the communication between Python and C++ was managed through Enzo's usage of the C API.
8582
This required some knowledge of how Python conducts garbage collection, and required ensuring that reference counting was managed correctly to avoid memory leaks.
8683

87-
This non-standardized approach to conducting *in situ* visualization led to the creation and development of the library `libyt` which serves as an intermediary layer between simulation codes and `yt` (and Python in general.)
84+
This non-standardized approach to conducting _in situ_ visualization led to the creation and development of the library `libyt` which serves as an intermediary layer between simulation codes and `yt` (and Python in general.)
8885
This library encapsulates all Python API calls, manages references, and provides a systematic method for providing data pointers to Python.
8986
`libyt` provides a stable C-based API, and is accessible from numerous different languages.
9087
It also provides a custom-built `yt` frontend for accepting data.
9188
A more complete description is outside the scope of this paper, and we refer the reader to (**MJT: cite in prep manuscript**).
92-

content/68.future_directions.md

+9
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
11
## Future Directions
2+
3+
- More integration with _in situ_ analysis systems like `libyt`
4+
- Much improved optimization
5+
- Integration with other domains besides astronomy
6+
- Refactoring for the long term
7+
- Static typing
8+
- Improving visual representation of `yt` objects
9+
- Testing infrastructure
10+
- Integration with external libraries such as pytorch-spatial, etc

content/70.sustainability.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ However, at the risk of belaboring a point that has been well-explored elsewhere
1111
A tension exists, however, between support of an existing project and the support of new projects in an ecosystem.
1212
By supporting an existing project, resources can tend to become concentrated; conversely, if a project supports a broader research agenda, that resource concentration can result in greater effort-multipliers for individuals who utilize the project.
1313
We're aware of this tension in yt; in fact, while yt has been grant-supported, most of the grant development has gone to a very small number of groups.
14-
This grant funding has been provided through the National Science Foundation, the Gordon and Betty Moore Foundation, the Department of Energy, the Chan Zuckerberg Initiative and other sources. [@doi:10.6084/m9.figshare.2061465.v1, [@doi:10.6084/m9.figshare.909413.v1], [@doi:10.5281/zenodo.4158589].
14+
This grant funding has been provided through the National Science Foundation, the Gordon and Betty Moore Foundation, the Department of Energy, the Chan Zuckerberg Initiative and other sources. [@doi:10.6084/m9.figshare.2061465.v1], [@doi:10.6084/m9.figshare.909413.v1], [@doi:10.5281/zenodo.4158589].
1515
Grants have supported the development of new features, including specific functionality for analysis routines and support for non-astronomical domains.
1616

1717
Into each of these grants has been explicit support for community building, constituted by the development of documentation, videos, and tutorials, as well as mentoring of new contributors and shepherding the growth of the project through code review and issue management.

content/addl_authors.yaml

+32
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
initials: DN
99
name: Desika Narayanan
1010
orcid: 0000-0002-7064-4309
11+
corresponding: false
1112
- affiliations:
1213
- Outer Loop LLC
1314
@@ -16,6 +17,7 @@
1617
initials: SWS
1718
name: Samuel W. Skillman
1819
orcid: 0000-0002-7626-522X
20+
corresponding: false
1921
- affiliations:
2022
- Lawrence Berkeley National Laboratory
2123
@@ -24,6 +26,7 @@
2426
initials: AH
2527
name: Axel Huebl
2628
orcid: 0000-0003-1943-7141
29+
corresponding: false
2730
- affiliations:
2831
- Oak Ridge National Laboratory
2932
@@ -32,6 +35,7 @@
3235
initials: EB
3336
name: Elliott Biondo
3437
orcid: 0000-0002-9088-1360
38+
corresponding: false
3539
- affiliations:
3640
- University of California, Davis
3741
@@ -40,6 +44,7 @@
4044
initials: AW
4145
name: Andrew Wetzel
4246
orcid: 0000-0003-0603-8942
47+
corresponding: false
4348
- affiliations:
4449
- UC Santa Cruz
4550
@@ -48,6 +53,7 @@
4853
initials: CS
4954
name: Clayton Strawn
5055
orcid: 0000-0001-9695-4017
56+
corresponding: false
5157
- affiliations:
5258
- Idaho National Laboratory
5359
@@ -56,6 +62,7 @@
5662
initials: AL
5763
name: Alexander Lindsay
5864
orcid: 0000-0002-6988-2123
65+
corresponding: false
5966
- affiliations:
6067
- Free Agent
6168
@@ -64,6 +71,7 @@
6471
initials: GA
6572
name: Gabriel Altay
6673
orcid: 0000-0002-4120-2907
74+
corresponding: false
6775
- affiliations:
6876
- Center for Astrophysics - Harvard & Smithsonian
6977
- University of Miami
@@ -73,6 +81,7 @@
7381
initials: ETL
7482
name: Erwin T. Lau
7583
orcid: 0000-0001-8914-8885
84+
corresponding: false
7685
- affiliations:
7786
- Center for Astrophysics - Harvard & Smithsonian
7887
@@ -81,6 +90,7 @@
8190
initials: AS
8291
name: Aaron Smith
8392
orcid: 0000-0002-2838-9033
93+
corresponding: false
8494
- affiliations:
8595
- Center for Theoretical Physics, Seoul National University
8696
@@ -89,6 +99,7 @@
8999
initials: JK
90100
name: Ji-hoon Kim
91101
orcid: 0000-0003-4464-1160
102+
corresponding: false
92103
- affiliations:
93104
- Institute of Astrophysics, National Taiwan University, Taipei 10617, Taiwan
94105
- Physics Division, National Center for Theoretical Sciences, Taipei 10617, Taiwan
@@ -98,6 +109,7 @@
98109
initials: HS
99110
name: Hsi-Yu Schive
100111
orcid: 0000-0002-1249-279X
112+
corresponding: false
101113
- affiliations:
102114
- Indian Institute of Technology Kharagpur
103115
@@ -106,6 +118,7 @@
106118
initials: NS
107119
name: Navaneeth S
108120
orcid: 0009-0007-6922-0369
121+
corresponding: false
109122
- affiliations:
110123
- Michigan State University
111124
@@ -114,6 +127,7 @@
114127
initials: BWO
115128
name: Brian W. O'Shea
116129
orcid: 0000-0002-2786-0348
130+
corresponding: false
117131
- affiliations:
118132
- Kavli Institute for Particle Astrophysics and Cosmology, Stanford University
119133
@@ -122,6 +136,7 @@
122136
initials: TA
123137
name: Tom Abel
124138
orcid: 0000-0002-5969-1251
139+
corresponding: false
125140
- affiliations:
126141
- Birla Institute of Technology and Science, Pilani, Sancoale, Goa 403726, India
127142
@@ -130,13 +145,15 @@
130145
initials: YG
131146
name: Yash Gondhalekar
132147
orcid: 0000-0002-6646-4225
148+
corresponding: false
133149
- affiliations: []
134150
135151
funders: []
136152
github: ''
137153
initials: WJG
138154
name: William J Gray
139155
orcid: 0000-0001-9014-3125
156+
corresponding: false
140157
- affiliations:
141158
- Fermilab
142159
@@ -145,6 +162,7 @@
145162
initials: NYG
146163
name: Nickolay Y. Gnedin
147164
orcid: 0000-0001-5925-4580
165+
corresponding: false
148166
- affiliations:
149167
- Institute of theoretical physics, Chinese Academy of Science
150168
@@ -153,6 +171,7 @@
153171
initials: CJ
154172
name: Cristian Joana
155173
orcid: 0000-0003-4642-3028
174+
corresponding: false
156175
- affiliations:
157176
- 'University of Central Lancashire '
158177
@@ -161,6 +180,7 @@
161180
initials: BBT
162181
name: 'Benjamin B Thompson '
163182
orcid: 0000-0003-4383-9183
183+
corresponding: false
164184
- affiliations:
165185
- University of North Texas
166186
@@ -169,6 +189,7 @@
169189
initials: YL
170190
name: Yuan Li
171191
orcid: 0000-0001-5262-6150
192+
corresponding: false
172193
- affiliations:
173194
- Max Planck Institute for Astrophysics
174195
@@ -177,6 +198,7 @@
177198
initials: RJF
178199
name: Ryan Jeffrey Farber
179200
orcid: 0000-0002-0649-9055
201+
corresponding: false
180202
- affiliations:
181203
- Los Alamos National Laboratory
182204
@@ -185,6 +207,7 @@
185207
initials: JMM
186208
name: Jonah M Miller
187209
orcid: 0000-0001-6432-7860
210+
corresponding: false
188211
- affiliations:
189212
- Penn State University
190213
@@ -193,6 +216,7 @@
193216
initials: MR
194217
name: Michael Ryan
195218
orcid: 0000-0002-0378-5195
219+
corresponding: false
196220
- affiliations:
197221
- Michigan State University
198222
@@ -201,6 +225,7 @@
201225
initials: DWS
202226
name: Devin W. Silvia
203227
orcid: 0000-0002-4109-9313
228+
corresponding: false
204229
- affiliations:
205230
- Argonne National Laboratory
206231
@@ -209,6 +234,7 @@
209234
initials: RJ
210235
name: Robert Jackson
211236
orcid: 0000-0003-2518-1234
237+
corresponding: false
212238
- affiliations:
213239
- none
214240
@@ -217,6 +243,7 @@
217243
initials: KA
218244
name: Kenz Arraki
219245
orcid: 0000-0002-3012-1167
246+
corresponding: false
220247
- affiliations:
221248
- Indian Institute of Science, Bangalore, India
222249
@@ -225,6 +252,7 @@
225252
initials: AD
226253
name: Alankar Dutta
227254
orcid: 0000-0002-9287-4033
255+
corresponding: false
228256
- affiliations:
229257
- 'Indian Institute of Science'
230258
@@ -233,6 +261,7 @@
233261
initials: RG
234262
name: Ritali Ghosh
235263
orcid: 0000-0001-8643-7104
264+
corresponding: false
236265
- affiliations:
237266
- Shanghai Astronomical Observatory, Chinese Academy of Sciences
238267
- School of Astronomy and Space Sciences, University of Chinese Academy of Sciences
@@ -242,6 +271,7 @@
242271
initials: SX
243272
name: Shaokun Xie
244273
orcid: 0000-0001-5624-6008
274+
corresponding: false
245275
- affiliations:
246276
- Posit PBC
247277
@@ -250,6 +280,7 @@
250280
initial: TKT
251281
name: Tracy K. Teal
252282
orcid: 0000-0002-9180-9598
283+
corresponding: false
253284
- affiliations:
254285
- University of California San Diego, San Diego Supercomputer Center
255286
@@ -258,3 +289,4 @@
258289
initials: RPW
259290
name: Rick Wagner
260291
orcid: 0000-0003-1291-5876
292+
corresponding: false

content/frontends.yaml

+14-14
Original file line numberDiff line numberDiff line change
@@ -301,20 +301,20 @@ frontends:
301301
- octree
302302
name: ramses
303303
usage_citations:
304-
- '@doi:10.1051/0004-6361/202243170oi'
305-
- '@doi:10.1051/0004-6361/202037698oi'
306-
- '@doi:10.1051/0004-6361/201936188oi'
307-
- '@doi:10.1051/0004-6361/201935504oi'
308-
- '@doi:10.1093/mnras/sty2859oi'
309-
- '@doi:10.1093/mnras/sty024oi'
310-
- '@doi:10.3847/1538-4357/aa989aoi'
311-
- '@doi:10.1093/mnras/stx1706oi'
312-
- '@doi:10.3847/1538-4357/833/2/202oi'
313-
- '@doi:10.3847/0004-637X/826/1/22oi'
314-
- '@doi:10.1088/0004-637X/807/1/67oi'
315-
- '@doi:10.1088/0067-0049/210/1/14oi'
316-
- '@doi:10.1093/mnras/stt1789oi'
317-
- '@doi:10.1088/0004-637X/765/1/39oi'
304+
- '@doi:10.1051/0004-6361/202243170'
305+
- '@doi:10.1051/0004-6361/202037698'
306+
- '@doi:10.1051/0004-6361/201936188'
307+
- '@doi:10.1051/0004-6361/201935504'
308+
- '@doi:10.1093/mnras/sty2859'
309+
- '@doi:10.1093/mnras/sty024'
310+
- '@doi:10.3847/1538-4357/aa989a'
311+
- '@doi:10.1093/mnras/stx1706'
312+
- '@doi:10.3847/1538-4357/833/2/202'
313+
- '@doi:10.3847/0004-637X/826/1/22'
314+
- '@doi:10.1088/0004-637X/807/1/67'
315+
- '@doi:10.1088/0067-0049/210/1/14'
316+
- '@doi:10.1093/mnras/stt1789'
317+
- '@doi:10.1088/0004-637X/765/1/39'
318318
- '@doi:10.3847/1538-4357/aa6dff'
319319
- '@doi:10.48550/arXiv.2206.11913'
320320
- '@doi:10.1051/0004-6361/201834496'

0 commit comments

Comments
 (0)