{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/corrfunc-blazing-fast-correlation-functions","title":"Corrfunc: Blazing fast correlation functions with AVX512F SIMD Intrinsics","arxiv_id":"1911.08275","date":"2019-11-15","proceeding":null,"authors":["Manodeep Sinha","Lehman H. Garrison"],"abstract":"Correlation functions are widely used in extra-galactic astrophysics to extract insights into how galaxies occupy dark matter halos and in cosmology to place stringent constraints on cosmological parameters. A correlation function fundamentally requires computing pair-wise separations between two sets of points and then computing a histogram of the separations. Corrfunc is an existing open-source, high-performance software package for efficiently computing a multitude of correlation functions. In this paper, we will discuss the SIMD AVX512F kernels within Corrfunc, capable of processing 16 floats or 8 doubles at a time. The latest manually implemented Corrfunc AVX512F kernels show a speedup of up to $\\sim 4\\times$ relative to compiler-generated code for double-precision calculations. The AVX512F kernels show $\\sim 1.6\\times$ speedup relative to the AVX kernels and compare favorably to a theoretical maximum of $2\\times$. In addition, by pruning pairs with too large of a minimum possible separation, we achieve a $\\sim 5-10\\%$ speedup across all the SIMD kernels. Such speedups highlight the importance of programming explicitly with SIMD vector intrinsics for complex calculations that can not be efficiently vectorized by compilers. Corrfunc is publicly available at https://github.com/manodeep/Corrfunc/.","url_abs":"https://arxiv.org/abs/1911.08275v1","url_pdf":"https://arxiv.org/pdf/1911.08275v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"corrfunc-blazing-fast-correlation-functions","repo_url":"https://github.com/manodeep/Corrfunc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"corrfunc-blazing-fast-correlation-functions","repo_url":"https://github.com/adematti/corrfunc","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"corrfunc-blazing-fast-correlation-functions","repo_url":"https://github.com/kstoreyf/Corrfunc","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"corrfunc-blazing-fast-correlation-functions","repo_url":"https://github.com/kstoreyf/suave","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}