Parallel Computing

From AstroBaki
Jump to navigationJump to search

Project Statement[edit]

Most computationally intensive projects in radio astronomy appear to be “embarrassingly parallel,” in the sense that our data have numerous axes (time, frequency, antenna/baseline number, etc.) over which the data are easily divisible. This “parallelizability” suggests that radio astronomy will not be computationally limited as long as we have access to computing clusters of moderate size. However, for those completely inexperienced with regard to multi- and many-core systems, there are still hurdles to be cleared before taking full advantage of these resources. In particular, while our code may be easy to structure around these resources, the actual tools for distributing data among multiple processors are not immediately intuitive.

The goals of my project are two-fold. First, I want to assemble resources for the novice looking to learn the tools necessary for communicating between the multiple nodes and processors of a computing cluster. In this first stage, I plan to focus on two main tools: using sockets to set up direct client/host connections, and the Message Passing Interface (MPI). I plan to assemble astrobaki resource pages on both these tools to complete the first half of my project.

The second goal of my project is to use one of these two tools to improve the run time of the MCMC DDR filtering algorithm written by Aaron Parsons and used by the PAPER project. At the present, this code runs on one processor and runs into memory issues when too many sources are being filtered. However, this algorithm is naturally suited for a scatter/gather architecture, as the score of the latest model can be computed separately on a per-baseline basis. Therefore I hope that I can use the tools learned in part one of my project to speed up this code.