Parallel astronomical data processing with Python: Recipes for multicore machines

High performance computing has been used in various fields of astrophysical research. But most of it is implemented on massively parallel systems (supercomputers) or graphical processing unit clusters. With the advent of multicore processors in the last decade, many serial software codes have been r...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Astronomy and computing Jg. 2; S. 1 - 10
Hauptverfasser: Singh, Navtej, Browne, Lisa-Marie, Butler, Ray
Format: Journal Article
Sprache:Englisch
Veröffentlicht: Elsevier B.V 01.08.2013
Schlagworte:
ISSN:2213-1337, 2213-1345
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:High performance computing has been used in various fields of astrophysical research. But most of it is implemented on massively parallel systems (supercomputers) or graphical processing unit clusters. With the advent of multicore processors in the last decade, many serial software codes have been re-implemented in parallel mode to utilize the full potential of these processors. In this paper, we propose parallel processing recipes for multicore machines for astronomical data processing. The target audience is astronomers who use Python as their preferred scripting language and who may be using PyRAF/IRAF for data processing. Three problems of varied complexity were benchmarked on three different types of multicore processors to demonstrate the benefits, in terms of execution time, of parallelizing data processing tasks. The native multiprocessing module available in Python makes it a relatively trivial task to implement the parallel code. We have also compared the three multiprocessing approaches—Pool/Map, Process/Queue and Parallel Python. Our test codes are freely available and can be downloaded from our website. •We propose three recipes for parallelizing long running tasks on multicore machines.•Native Python multiprocessing module makes it trivial to write parallel code.•Parallel performance can be optimized by carefully load balancing the workload.•The cross-platform nature of Python makes the code portable on multiple platforms.
ISSN:2213-1337
2213-1345
DOI:10.1016/j.ascom.2013.04.002