It turns out, astronomers have lots of photos of the sky but seek knowledge about what the photos mean. Sound familiar? Big data problems are often characterized as transforming data into insights – which is exactly what some ambitious scientists are working to do with “Sky Survey” data. A Sky Survey is essentially astronomer speak for “lots and lots of images taken by telescopes, along with information of when and where they were taken.”
The Celeste collaboration is a group of scientists who have worked to catalog the visible universe in a way never before accomplished. They seek to create and refine a catalog which can detail the placement and characteristics (such as brightness and rotation) of every visible object in the sky.
Along the way, the Celeste collaboration has already proven that one high productive language (Julia) can offer high performance “at scale” (using hundreds of thousands of processor cores for compute), and their success certainly indicates that we will see more “at scale” big data work.
Journey of the Photons
No amount of effort to design an amazing telescope can overcome the effects that a very long journey has had upon the photons. Putting a telescope into orbit might cut out the last few hundred miles through our atmosphere, but that is just the tip of the iceberg when it comes to figuring out what each photo means. The techniques being developed by the Celeste collaboration are applicable to data regardless of whether it is earth-based or space-based. So far, the earth-based data has supplied plenty of work to do.
Aside from inherent limitations of any sensing device in a telescope, the final image we get from a telescope is imperfect on account of point spread from the atmosphere, diffraction spikes from the telescope, and gravitational lensing that has occurred along the journey, among other causes. The Celeste collaboration has plugged away at addressing such challenges in their quest to build their meaningful catalog. As I have learned more about all they have done, I have been both amazed with the magnitude of their accomplishments and in awe of the enormous scope of future work that is possible. A truly big data project, Celeste has an insatiable appetite for more data, and for more sophisticated analysis work.
Lots of Compute, and Lots of (High Productivity) Programming
Collecting all known data about the visible universe into a meaningful model certainly is a big data problem. Celeste collaborators’ computational work has landed in the petascale world, meaning they have performed computations at a rate exceeding a thousand million million (1015) floating-point operations per second. They did this with over nine thousand CPUs, a high productivity language called Julia, and a 178 terabyte dataset representing 188 million stars and galaxies. Processing also involved intensive I/O due to the multiple passes over the dataset processed during a 14.6-minute run on the Cori supercomputer.
They did not use FORTRAN or C++ as the language for this task. Instead, they choose a high productivity language out of MIT known as Julia, and used it to very efficiently utilize Intel processors at a petascale. Specifically, they used 1.3 million threads on 9,300 Intel Xeon Phi processors (650,000 cores) to achieve 1.54 petaflops peak performance. This was the first showing of Julia at petascale, and it certainly will not be the last.
The Julia programming language developers explain Julia by saying: “Julia excels at numerical computing. Julia was designed from the beginning for high performance. Its syntax is great for math, many numeric datatypes are supported, and parallelism is available out of the box. Julia’s multiple dispatch is a natural fit for defining number and array-like datatypes.”
Keys to High-Performance Julia
The developers of the Celeste code have a few Julia-specific tips for making sure Julia is competitive with other compiled languages for high performance. Their tips were:
- Follow the performance tips given with Julia (no global state/eval/etc. in hotspots).
- Type stability (dynamic re-typing might seem cool, but it kills performance).
- Minimize dynamic memory allocations; use memory profiles to find allocations to reduce (double benefit: less time allocating also means less time doing garbage collection).
The final tip may be especially important in languages with garbage collection, but it is a great suggestion for programmers in all languages. Similarly, avoiding global state (the first tip) has enormous merit outside Julia as well.
Finally, the developers stress the need to profile to find and optimize hotspots. Hardly a Julia specific tip! All in all, the experience of the developers with Julia mostly resembled the experience of any HPC programmer using C, C++, and Fortran. They would say that Julia offers a more productive programming environment, but also offers performance you would not find with other high productive languages such as Python. Despite some solid accelerated Python capabilities that are out there, no Python application has shown anything close to petaflops performance.
It seems that making Julia scale to petaflops performance involves the same thinking as effective parallel programming in any high-performance language.
The Data: SDSS
In 1998, the Apache Point Observatory in New Mexico began imaging every visible object from over 35 percent of the sky in a project known as the Sloan Digital Sky Survey. Today, data is also collected from the Irénée du Pont Telescope at Las Campanas Observatory in Chile (APOGEE-2S). The Sloan Digital Sky Survey (SDSS) has been one of the most successful surveys in the history of astronomy. After a decade of design and construction, the SDSS began regular survey operations in 2000. It has progressed through several phases, SDSS-I (2000-2005), SDSS-II (2005-2008), SDSS-III (2008-2014), and SDSS-IV (2014+). Each phase has involved multiple surveys with interlocking science goals. This project proudly shares that they have already created the most detailed three-dimensional maps of the Universe ever made, with deep multi-color images of one third of the sky, and spectra for more than three million astronomical objects. The project has released fourteen data versions of their datasets thus far. They continue to release new data sets annually. The dataset scheduled for the end of this year will include spectral data across the face of the nearest ten thousand galaxies, instead of the previous surveys which obtained spectra only at the centers of target galaxies. The SDSS team calls this work “Mapping Nearby Galaxies at APO (MaNGA).” The dataset in 2019 will include information from the Apache Point Observatory Galaxy Evolution Experiment (APOGEE-2) to observe the “archaeological” record embedded in hundreds of thousands of stars to explore the assembly history and evolution of the Milky Way. You could say that the details as to how the Galaxy evolved are preserved today in the motions and chemical compositions of its stars.
It’s not hard to image that these ever-expanding datasets will offer even more opportunities for the Celeste collaboration in their analysis work.
Prior work focused on non-statistical models. The Celeste collaboration focused on a statistical model, a fully generative model to be precise. Over the course of their first three years, the Celeste collaboration developed a new parallel computing method that was used to process the dataset (about 178 terabytes) and produce the most accurate catalog of 188 million astronomical objects in just 14.6 minutes with state-of-the-art point and uncertainty estimates.
In addition to creating a catalog, an important objective of this work was to identify promising galaxies for spectrograph targeting with the hope of better understanding dark energy and the geometry of the universe.
A key design objective of Celeste is to help be an extensible model and inference procedure for use by the astronomical community. This will allow more computation to be applied selectively if deeper understanding of any particular object is desired (e.g., brightness, rotation). Other applications might include finding supernovas or detecting near-Earth asteroids. The teams see enormous potential in the framework they have built. An hour-long presentation offers many more details of the work of Celeste 1.0 and is available for viewing online.
Envisioning Version 2.0
They first reported their petascale results last year, and they’ve been busy since then envisioning and developing “Celeste 2.0.” The collaboration is focused on moving to a more sophisticated inference model to replace the purely graphical model approach of Celeste 1.0, which was quite successful in its own right using only conventional variable inference. A key objective of this work is not only more accurate placement and features, but also more accurate uncertainties (“error bars”) for these as well.
Celeste 2.0 utilizes an autoencoder (variable) with a recurrent neural network (RNN), that also employs bayesian inference, and adds a gravitational lensing capability. The Bayesian inference technique is commonly associated with big data and machine learning projects, and typically gets sharper predictions from data than other techniques. Bayesian inference effectively aims to inject some common sense (bias based on additional knowledge) into an otherwise sterile statistical analysis. In the case of Celeste 2.0, the newer techniques capture meaning from the vast dataset more accurately.
Bayesian models are composable, meaning that they work well as add-ons. This enables work on using Bayesian models to create a new gravitational lensing capability to undo the distortions which have occurred by the time it reaches a telescope. This is an area of active development, which promises to further refine the catalog of visible objects.
Of course, I’m guessing work will not end with Celeste 2.0. They’ve opened up the challenge of building a catalog of the universe, and like all big data problems it has an insatiable appetite for more data. The continually growing sources of data in the SDSS offers many opportunities for the analysis work of the Celeste collaboration. One day, perhaps gravitational wave data from the newest source of astronomy data can be incorporated? By then, we might also be able to offer them a data feed from a telescope sitting on Mars. It will happen.
In the meantime, the Celeste collaboration continues to make excellent use of the Intel processors in the Cori supercomputer with the Julia language. And this provides a wealth of encouragement for all big data projects looking to scale.
 The key contributors to the Celeste collaboration have been: Jeffrey Regier, Bryan Liu and Jon McAuliffeat of UC Berkeley ; Andy Miller and Ryan Adams of Harvard; David Schlegel of LBL Physics; and Prabhat of NERSC.
James Reinders is an HPC enthusiast and author of eight books with more than 30 years of industry experience, including 27 years at Intel Corporation (retired June 2016).