<span class="var-sub_title">Accelerating the Signal Alignment Process in Time-Evolving Geometries Using Python</span> SC18 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

8th Workshop on Python for High-Performance and Scientific Computing


Accelerating the Signal Alignment Process in Time-Evolving Geometries Using Python

Abstract: This paper addresses the computational challenges involved in postprocessing of signals received using multiple collectors (satellites). Multiple low cost, small sized satellites can be used as dynamic beamforming arrays (DBA) in remote sensing satellites. This usually requires precise metrology and synchronized clocks. In order to mitigate this requirement, correlation searches can be performed across time and frequency offset values to align the signal. However, this process can take considerable time on traditional CPUs. We explore the use of heterogeneous parallel architectures to expedite the computation process, while trying to maintain the flexibility and ease of development using Python.

The Cross-Ambiguity Function (CAF) is used to perform correlation searches across a range of all possible frequency differences of arrival and time differences of arrival for a given emitter-collector geometry, followed by a phase alignment search. For evolving geometries, maintaining the signal alignment over long time periods require time evolving CAF searches, which is computationally expensive. Consequently, we explore the use of massively parallel architectures using both distributed and shared memory parallelism, and show performance results. We also propose a simple load balancing scheme for efficient use of heterogenous architectures.

We show that the NumPy implementation provides the same performance as the compiled Armadillo C++ code. Using different optimization techniques, the results show a performance improvement of 150x on a GPU compared to the naive implementation on a CPU.


Archive Materials


Back to 8th Workshop on Python for High-Performance and Scientific Computing Archive Listing

Back to Full Workshop Archive Listing