Optimization of Soft-Sphere N-body Simulation through choice of Programming Language and Priority Queue

In this thesis I will describe my efforts to improve the performance of the current Rust softsphere N-body simulation. To do this I undertook two projects; validating the performance of our chosen programming language Rust along with comparing Rust to other languages, and implementing and testing a novel priority queue, the Parallel Bucket Queue, for object collision processing. In order to validate our programming language choice I benchmarked the parallel performance of C, C++, Go, Java, Julia, and Rust for N-body simulations. This benchmarking is based off the O(N2) simulation done each language in the Benchmark Game, with simulations modified to have larger number of objects simulated and be run in parallel. The benchmarking will show all compared languages have as similar performance and does not invalidate the choice to use Rust to implement the n-body simulation. Then I will describe the process of implementing a sequential bucket queue then adding parallel functionality to create a parallel bucket queue and comparing the performance of this novel queue to a sequential and parallel binary heap. The performance of a priority queue is done by having it play back and process collision events logs. Our testing shows that at large particle number counts that the parallel priority queue is almost four times as fast as the next fastest data structure.

Publication Details

Journal
Digital Commons - Trinity University (Trinity University)
Published
2025-05-01
Primary Topic
Quantum many-body systems
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Optimization of Soft-Sphere N-body Simulation through choice of Programming Language and Priority Queue

Digital Commons - Trinity University (Trinity University)
Quantum many-body systems
article

Optimization of Soft-Sphere N-body Simulation through choice of Programming Language and Priority Queue

article en

Abstract

In this thesis I will describe my efforts to improve the performance of the current Rust softsphere N-body simulation. To do this I undertook two projects; validating the performance of our chosen programming language Rust along with comparing Rust to other languages, and implementing and testing a novel priority queue, the Parallel Bucket Queue, for object collision processing. In order to validate our programming language choice I benchmarked the parallel performance of C, C++, Go, Java, Julia, and Rust for N-body simulations. This benchmarking is based off the O(N2) simulation done each language in the Benchmark Game, with simulations modified to have larger number of objects simulated and be run in parallel. The benchmarking will show all compared languages have as similar performance and does not invalidate the choice to use Rust to implement the n-body simulation. Then I will describe the process of implementing a sequential bucket queue then adding parallel functionality to create a parallel bucket queue and comparing the performance of this novel queue to a sequential and parallel binary heap. The performance of a priority queue is done by having it play back and process collision events logs. Our testing shows that at large particle number counts that the parallel priority queue is almost four times as fast as the next fastest data structure.

Digital Commons - Trinity University (Trinity University)
Openalex Percentile: Top 52%
Quantum many-body systems
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Optimization of Soft-Sphere N-body Simulation through choice of Programming Language and Priority Queue · Digital Commons - Trinity University (Trinity University) (2025) | TGRS Research Map | TGRS