fastlisaresponse: Generic LISA response function for GPUs
This code base provides a GPU-accelerated version of the generic time-domain LISA response function. The GPU-acceleration allows this code to be used directly in Parameter Estimation.
Please see the documentation for further information on these modules. The code can be found on Github here. It can be found on Zenodo.
If you use all or any parts of this code, please cite arXiv:2204.06633. See the documentation to properly cite specific modules.
Getting Started
Install with pip (CPU only for now):
pip install fastlisaresponse
To import fastlisaresponse:
from fastlisaresponse import ResponseWrapper
See examples notebook.
Prerequisites
Now (version 1.0.9) fastlisaresponse
requires the newest version of
LISA Analysis Tools. You
can run pip install lisaanalysistools
.
To install this software for CPU usage, you need Python >3.4 and NumPy.
To run the examples, you will also need jupyter and matplotlib. 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 will need to make sure all necessary
information is passed to the setup command (see below). You also may
need to add information to the setup.py
file.
To install this software for use with NVIDIA GPUs (compute capability
>2.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
Install with pip (CPU only for now):
pip install fastlisaresponse
To install from source:
Install Anaconda if you do not have it.
Create a virtual environment.
conda create -n lisa_resp_env -c conda-forge gcc_linux-64 gxx_linux-64 numpy Cython scipy jupyter ipython h5py matplotlib python=3.12
conda activate lisa_resp_env
If on MACOSX, substitute `gcc_linux-64` and `gxx_linus-64` with `clang_osx-64` and `clangxx_osx-64`.
If you want a faster install, you can install the python packages (numpy, Cython, scipy, tqdm, jupyter, ipython, h5py, requests, matplotlib) with pip.
Clone the repository.
git clone https://github.com/mikekatz04/lisa-on-gpu.git
cd lisa-on-gpu
If using GPUs, use pip to install cupy.
pip install cupy-12x
Run install. Make sure CUDA is on your PATH.
python scripts/prebuild.py
pip install .
Running the Tests
Run the example notebook or the tests using unittest
from the main
directory of the code:
python -m unittest discover
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Current Version: 1.0.9
License
This project is licensed under the GNU License - see the LICENSE.md file for details.
Acknowledgments
It was also supported in part through the computational resources and staff contributions provided for the Quest/Grail high performance computing facility at Northwestern University.
- Fast Response Function
pyResponseTDI
pyResponseTDI.A_in
pyResponseTDI.buffer_integer
pyResponseTDI.channels_no_delays
pyResponseTDI.deps
pyResponseTDI.dt
pyResponseTDI.E_in
pyResponseTDI.half_order
pyResponseTDI.link_inds
pyResponseTDI.link_space_craft_0_in
pyResponseTDI.link_space_craft_1_in
pyResponseTDI.nlinks
pyResponseTDI.num_A
pyResponseTDI.num_channels
pyResponseTDI.num_pts
pyResponseTDI.order
pyResponseTDI.sampling_frequency
pyResponseTDI.tdi
pyResponseTDI.tdi_buffer
pyResponseTDI.use_gpu
pyResponseTDI.xp
pyResponseTDI.response_gen
pyResponseTDI.tdi_gen
pyResponseTDI.response_orbits
pyResponseTDI.tdi_orbits
pyResponseTDI.citation
pyResponseTDI.tdi_combinations
pyResponseTDI.y_gw
pyResponseTDI.get_projections()
pyResponseTDI.XYZ
pyResponseTDI.get_tdi_delays()
- Response Function Wrapper
- Utilities