Skip to main content

gbgpu: GPU/CPU Galactic Binary Waveforms

GBGPU is a GPU-accelerated version of the FastGB waveform which has been developed by Neil Cornish, Tyson Littenberg, Travis Robson, and Stas Babak. It computes gravitational waveforms for Galactic binary systems observable by LISA using a fast/slow-type decomposition. For more details on the original construction of FastGB see arXiv:0704.1808.

The current version of the code is very closely related to the implementation of FastGB in the LISA Data Challenges' Python code package. The waveform code is entirely Python-based. It is about 1/2 the speed of the full C version, but much simpler in Python for right now. There are also many additional functions including fast likelihood computations for individual Galactic binaries, as well as fast C-based methods to combine waveforms into global fitting templates.

The code is CPU/GPU agnostic. CUDA and NVIDIA GPUs are required to run these codes for GPUs.

See the documentation for more details. This code was designed for arXiv:2205.03461. If you use any part of this code, please cite arXiv:2205.03461, its Zenodo page, arXiv:0704.1808, and arXiv:1806.00500.

Getting Started

  1. Run pip install. This works only for CPU currently. For GPU, see below for installing from source.
pip install gbgpu
  1. To import gbgpu:
from gbgpu.gbgpu import GBGPU

Prerequisites

To install this software for CPU usage, you need Python >3.4, and NumPy. We generally recommend installing everything, including gcc and g++ compilers, in the conda environment as is shown in the examples here. This generally helps avoid compilation and linking issues. If you use your own chosen compiler, you may need to add information to the setup.py file.

To install this software for use with NVIDIA GPUs (compute capability >5.0), you need the CUDA toolkit and CuPy. The CUDA toolkit must have cuda version >8.0. Be sure to properly install CuPy within the correct CUDA toolkit version. Make sure the nvcc binary is on $PATH or set it as the CUDAHOME environment variable.

Installing

To pip install (only for CPU currently):

pip install gbgpu

To install from source:

  1. Install Anaconda if you do not have it.

  2. Create a virtual environment. Note: There is no available conda compiler for Windows. If you want to install for Windows, you will probably need to add libraries and include paths to the setup.py file.

conda create -n gbgpu_env -c conda-forge gcc_linux-64 gxx_linux-64 gsl numpy Cython scipy jupyter ipython h5py matplotlib python=3.12 cmake
conda activate gbgpu_env
If on MACOSX, substitute `gcc_linux-64` and `gxx_linus-64` with `clang_osx-64` and `clangxx_osx-64`.
  1. If using GPUs, use pip to install cupy. If you have cuda version 9.2, for example:
pip install cupy-cuda92
  1. Clone the repository.
git clone https://github.com/mikekatz04/GBGPU.git
cd GBGPU
  1. Run install. Make sure CUDA is on your PATH.
pip install -v -e .

Running the Tests

Change to the testing directory:

cd gbgpu/tests

Run in the terminal:

python -m unittest discover

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Current Version: 1.2.2

Authors

  • Michael Katz
  • Travis Robson
  • Neil Cornish
  • Tyson Littenberg
  • Stas Babak

Contributors

  • Mathieu Dubois
  • Maxime Pigou

License

This project is licensed under the Apache License - see the LICENSE file for details.

Metadata

Release files for gbgpu 1.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for gbgpu 1.2.4
File
gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 13.0+ x86-64 Details
gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 13.0+ x86-64 Details
gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 13.0+ x86-64 Details
gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details
gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 13.0+ x86-64 Details
gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl CPython 3.9 CPython 3.9 macOS 14.0+ ARM64 Details
gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 13.0+ x86-64 Details

Total release size: 12.2 MB

Release files / gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl

Download URL gbgpu-1.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Size 74.7 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0f0ba2e316d110cad9bd62114959aa50144df16437e696035dbeb5f36be074ce
BLAKE2b-256 checksum
How to use checksums
92ac9393cabc750d09bb9f18d9a9d2f74f2e7b976575c17eeb485ca3931a635d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gbgpu-1.2.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 77.6 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
49791fc364c70cf15e433988ead4facf505a53a51695e7169b767d75f79c451e
BLAKE2b-256 checksum
How to use checksums
c48d4ac7fc4c9f432c1f3287eb075030b99d49c2dfbf9edc20c5df4be52584ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl

Download URL gbgpu-1.2.4-cp313-cp313-macosx_14_0_arm64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
45a0e1aac1ca68afa947c32dd4fed05266fb7755820b1049f837a2279b1dacda
BLAKE2b-256 checksum
How to use checksums
b74f3a359c4b0b1193d3ffd5599b002de07d8c01edf310f4cd8fbee039c36da8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl

Download URL gbgpu-1.2.4-cp313-cp313-macosx_13_0_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
2340081f567ea70840d2e8743a7ac06b7597894dc398ab5f819c08a2fd391274
BLAKE2b-256 checksum
How to use checksums
5b1d9dee4e60c187df852834ce7dc7304252ae929c4f5c8b55013b55977f0af6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl

Download URL gbgpu-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Size 75.3 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2d5c25c5e0368138a5abf831bf115422158a5e22b1facf75de08a82fad45f2a2
BLAKE2b-256 checksum
How to use checksums
b13d03405efda4b0b42d7c1fe0ad06768ff3ec9b8b13eaddff588bd6a28b2a91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gbgpu-1.2.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 77.9 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
015890d08b48e67a55e06178eae82c2bd2cb7a4b31d8217cef337b7ebb47525f
BLAKE2b-256 checksum
How to use checksums
8bf4297ea28fa4f4a998dfab3b7aa7bc62b478e3b2735df8986c4f859fe79aa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl

Download URL gbgpu-1.2.4-cp312-cp312-macosx_14_0_arm64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
8a4ce8df149a569d882d1f7f628986aefa797e3213d069da833d2c736084873b
BLAKE2b-256 checksum
How to use checksums
1ba120d8cffd33118ab54861f163c3e42bd963b09a6b58ac4c32178cd135253e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl

Download URL gbgpu-1.2.4-cp312-cp312-macosx_13_0_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
368ce1c72cc46f4697c25288adb0e6ba2c3f705f992db630c07c40f9b2620876
BLAKE2b-256 checksum
How to use checksums
e4b029fc4b854c70648fee10fbe4f0d28f1b5fcca81d01cdb3fbbc277bcb67fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl

Download URL gbgpu-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Size 76.0 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4705abe1e4b6ba2d1cf69f428be85313c3db6bb43723590c0630ee7f3dabf81e
BLAKE2b-256 checksum
How to use checksums
26aa3e1521c85d4cc333af79b2a64430eb8db00ca82829d9beb3826df10ea5c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gbgpu-1.2.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 77.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6b3dc02534f7580e799c53ae07d508d0e533643bc456bf1948d334a780087093
BLAKE2b-256 checksum
How to use checksums
ec9fb8f4f1b50e9a687cbb879d7f6dc23e2c26fcdb3d72866a26b0b593d6c0c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl

Download URL gbgpu-1.2.4-cp311-cp311-macosx_14_0_arm64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
e382a648b9348e19690ccea039eaab6d6e5b8668319a1bc5cb4e7f484b074a0d
BLAKE2b-256 checksum
How to use checksums
d8b502dffc5703da91d9ee2d1b6ec42d8332cadca513e425bcc946b61618a559
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl

Download URL gbgpu-1.2.4-cp311-cp311-macosx_13_0_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
343bd9e386543895646803326536e7e3f2778fc7abb65364d9d44543bdb63fd6
BLAKE2b-256 checksum
How to use checksums
bd01a473a0f0b566f54edcf1b9717aa67d0416d05a3d8f9f19624f7babc64a10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl

Download URL gbgpu-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Size 75.2 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9825baf767b1ef0e6a1e80d8faef7fc64307e27c939c331e7da3c6b4d72ef405
BLAKE2b-256 checksum
How to use checksums
f800f4bec6e2e062d8e1302846ab1a5f0f445179e3d5a3a2495afb9b230d1184
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gbgpu-1.2.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 77.1 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c86b0b46e2fc670c7eea1ba0b318e64f9064b6c43535a957d8943bdd2a4569fd
BLAKE2b-256 checksum
How to use checksums
a4cf4e883e57927c6678748ad557532d213cac2eaca4be363a35b9361b9a4bf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl

Download URL gbgpu-1.2.4-cp310-cp310-macosx_14_0_arm64.whl
Size 1.1 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
e24625c4739deff4e5dd4300b05314311f296318cbeab7f6c410782dd424278d
BLAKE2b-256 checksum
How to use checksums
0fb19d75663dee68bbd806093c1d915b2d8279669abd7a77aa156a98738925ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl

Download URL gbgpu-1.2.4-cp310-cp310-macosx_13_0_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
389dc6fd64b59df3b300c5d3615c9b2f41d112615a8efffca026665b89f5e465
BLAKE2b-256 checksum
How to use checksums
c21f0443e7d5efdd764cb7b670ad9418ae5582334e4a9a386db8516f8826b475
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gbgpu-1.2.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 77.1 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
50707a995b221ecd831e3050b922c0e1b90dbd477895d785cbaef2b82c2936a0
BLAKE2b-256 checksum
How to use checksums
77a2767fafadb97e8330ae42ab484cf69420bacb175ebb3380eb3e7ee7fd5200
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl

Download URL gbgpu-1.2.4-cp39-cp39-macosx_14_0_arm64.whl
Size 1.1 MB
Tags CPython 3.9 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
178900812f4c3f9f67eb6a0637ed14921541858fcbb113d1508be14d571fef0c
BLAKE2b-256 checksum
How to use checksums
565c78d237ce7024c8a1f964847a2249624da58d73e3533a03bf0536b04985fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl

Download URL gbgpu-1.2.4-cp39-cp39-macosx_13_0_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
cc19f8460108256da6b0801e7d5f8e59e407e36fb510f2b780049d4a368e7861
BLAKE2b-256 checksum
How to use checksums
f5e84a13a05a8372a313e692e7dab0de6d244af362842f39a3cdb301dbdce168
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Security for gbgpu 1.2.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page