Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
daminton committed Mar 4, 2023
2 parents f4d1d7b + f0f1611 commit 76bc5c2
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 5 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
!README_tables/**
!paper/paper.md
!paper/paper.bib
!paper/performance.png
!README.swifter
dump*
!**/.gitignore
Expand Down
6 changes: 3 additions & 3 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ @article{Levison:1994
Year = 1994,
Month = mar,
Volume = 108,
DOI = {https://doi.org/10.1006/icar.1994.1039},
DOI = {10.1006/icar.1994.1039},
url = {https://www.sciencedirect.com/science/article/pii/S0019103584710396?via%3Dihub}
}

Expand All @@ -16,7 +16,7 @@ @article{Duncan:1998
Year = 1998,
Month = oct,
Volume = 116,
DOI = {https://doi.org/10.1086/300541},
DOI = {10.1086/300541},
url = {https://iopscience.iop.org/article/10.1086/300541}
}

Expand All @@ -27,6 +27,6 @@ @article{Leinhardt:2012
Year = 2012,
Month = dec,
Volume = 745,
DOI = {https://doi.org/10.1088/0004-637X/745/1/79},
DOI = {10.1088/0004-637X/745/1/79},
url = {https://iopscience.iop.org/article/10.1088/0004-637X/745/1/79}
}
12 changes: 10 additions & 2 deletions paper/paper.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: 'Swiftest: An N-body Integrator for Gravitational Systems'
title: 'Swiftest: An \textit{N}-body Integrator for Gravitational Systems'
tags:
- Python
- Fortran
Expand Down Expand Up @@ -37,7 +37,7 @@ bibliography: paper.bib

# Summary

The dynamical evolution of planetary systems is dominated by gravitational interactions between massive bodies. Determining the orbits of massive bodies over long time scales is the first step towards understanding the formation and evolution of planets, moons, asteroids, comets, and more. To model these systems, which often include hundreds or thousands of gravitationally interacting bodies, a numerical tool called an n-body integrator is often employed.
The dynamical evolution of planetary systems is dominated by gravitational interactions between massive bodies. Determining the orbits of massive bodies over long time scales is the first step towards understanding the formation and evolution of planets, moons, asteroids, comets, and more. To model these systems, which often include hundreds or thousands of gravitationally interacting bodies, a numerical tool called an \textit{n}-body integrator is often employed.

# Statement of Need

Expand All @@ -47,6 +47,14 @@ Building off a strong legacy, including its predecessors `Swifter` [@Duncan:1998

The combination of modern programming practices, flexible data processing tools, and the latest advances in the field of collisional dynamics make `Swiftest` the ideal tool for studying the formation of planetary systems, the growth of planetary moons, the evolution of asteroid families, and beyond.

# Performance

Modeling the behavior of thousands of fully interacting bodies over long timescales is computationally expensive, with typical runs taking weeks or months to complete. The addition of collisional fragmentation can quickly generate hundreds or thousands of new bodies in a short time period, creating further computational challenges for traditional \textit{n}-body integrators. As a result, enhancing computational performance was a key aspect of the development of `Swiftest`. Here we show a comparison between the performance of `Swift`, `Swifter-OMP` (a parallel version of `Swifter`), and `Swiftest` on simulations with 1k, 2k, 8k, and 16k fully interacting bodies. The number of cores dedicated to each run is varied from 1 to 24 to test the parallel performance of each program.

\autoref{fig:performance} shows the results of this performance test. We can see that `Swiftest` outperforms `Swifter-OMP` and `Swift` in each simulation set, even when run in serial. When run in parallel, `Swiftest` shows a significant performance boost when the number of bodies is increased. The improved performance of `Swiftest` compared to `Swifter-OMP` and `Swift` is a critical step forward in \textit{n}-body modeling, providing a powerful tool for modeling the dynamical evolution of planetary systems.

![Performance testing of `Swiftest` on systems of (a) 1k, (b) 2k, (c) 8k, and (d) 16k fully interacting massive bodies. All simulations were run using the \textit{SyMBA} integrator included in `Swift`, `Swifter-OMP`, and `Swiftest`. Speedup is measured relative to `Swift` (dashed), with an ideal 1:1 speedup relative to `Swiftest` in serial shown as an upper limit (dotted). The performance of `Swifter-OMP` is shown in green while the performance of `Swiftest` is shown in blue. All simulations were run on the Purdue University Rosen Center for Advanced Computing Brown Community Cluster. Brown contains 550 Dell compute nodes, with each node containing 2 12-core Intel Xeon Gold Sky Lake processors, resulting in 24 cores per node. Each node has 96 GB of memory. \label{fig:performance}](performance.png)

# Acknowledgements

`Swiftest` was developed at Purdue University and was funded under the NASA Emerging Worlds and Solar System Workings programs. Active development by the Purdue Swiftest Team is ongoing and contributions from the community are highly encouraged.
Expand Down
Binary file added paper/performance.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 76bc5c2

Please sign in to comment.