Date of Award

5-2025

Document Type

Thesis open access

First Advisor

Dr. Lewis

Second Advisor

Dr. Kelton

Third Advisor

Dr. Horn

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.

Share

COinS