Underwater Acoustic Soundscaping with Bellhopcuda

Sponsors: Office of Naval Research

Link to the project repository

Project Overview:

The Bellhop Acoustic Toolbox (AT) has been actively developed over the last several decades to model the propagation of sound in the ocean with ray tracing. AT was mainly used for 2D modeling but has 3D capabilities.  However, because of the limitations of the technology at the time, computational processing took far too long. We took advantage of current parallel computing tech, specialized software, and algorithmic design, and adapted AT to compile with multithreaded processors and modern GPUs. Through this goal, we developed Bellhopcuda/cxx (BHC) to use native C++ multithreading on the CPU or on the GPU using NVIDIA CUDA.

General Information:

BHC is a port from the original Bellhop code written in FORTRAN into C++/CUDA.  The new version executes faster than the original code by a wide margin while still producing similar results.  This is consistent in both the 2D and 3D settings of Bellhop.  We have a released version of BHC on our GitHub.  Here you will find further technical details and a breakdown of how to build and run the program, as well as why we chose to use C++/CUDA.


  • Principal Investigators: Jules S. Jaffe
  • Principal Engineers: Louis Pisha, Joe Snider
  • Technical Support: Khalil Jackson

(Each of these figures is an underwater sound profile using the test cases originally included in AT and ran on BHC.)