Skip to main content

A package for LISA Data Analysis

Project description

LISA Analysis Tools

Doc badge DOI

LISA Analysis Tools is a package for performing LISA Data Analysis tasks, including building the LISA Global Fit.

To install the latest version of lisaanalysistools using pip, simply run:

# For CPU-only version
pip install lisaanalysistools

# For GPU-enabled versions with CUDA 11.Y.Z
pip install lisaanalysistools-cuda11x

# For GPU-enabled versions with CUDA 12.Y.Z
pip install lisaanalysistools-cuda12x

To know your CUDA version, run the tool nvidia-smi in a terminal a check the CUDA version reported in the table header:

$ nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15              Driver Version: 550.54.15      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
...

You may also install lisaanalysistools directly using conda (including on Windows) as well as its CUDA 12.x plugin (only on Linux). It is strongly advised to:

  1. Ensure that your conda environment makes sole use of the conda-forge channel
  2. Install lisaanalysistools directly when building your conda environment, not afterwards
# For CPU-only version, on either Linux, macOS or Windows:
conda create --name lisatools_cpu -c conda-forge --override-channels python=3.12 lisaanalysistools
conda activate lisatools_cpu

# For CUDA 12.x version, only on Linux
conda create --name lisatools_cuda -c conda-forge --override-channels python=3.12 lisaanalysistools-cuda12x
conda activate lisatools_cuda

Now, in a python file or notebook:

import lisatools

You may check the currently available backends:

>>> for backend in ["cpu", "cuda11x", "cuda12x", "cuda", "gpu"]:
...     print(f" - Backend '{backend}': {"available" if lisatools.has_backend(backend) else "unavailable"}")
 - Backend 'cpu': available
 - Backend 'cuda11x': unavailable
 - Backend 'cuda12x': unavailable
 - Backend 'cuda': unavailable
 - Backend 'gpu': unavailable

Note that the cuda backend is an alias for either cuda11x or cuda12x. If any is available, then the cuda backend is available. Similarly, the gpu backend is (for now) an alias for cuda.

If you expected a backend to be available but it is not, run the following command to obtain an error message which can guide you to fix this issue:

>>> import lisatools
>>> lisatools.get_backend("cuda12x")
ModuleNotFoundError: No module named 'lisatools_backend_cuda12x'

The above exception was the direct cause of the following exception:
...

lisatools.cutils.BackendNotInstalled: The 'cuda12x' backend is not installed.

The above exception was the direct cause of the following exception:
...

lisatools.cutils.MissingDependencies: LISAanalysistools CUDA plugin is missing.
    If you are using lisatools in an environment managed using pip, run:
        $ pip install lisaanalysistools-cuda12x

The above exception was the direct cause of the following exception:
...

lisatools.cutils.BackendAccessException: Backend 'cuda12x' is unavailable. See previous error messages.

Once LISA Analysis Tools is working and the expected backends are selected, check out the examples notebooks on how to start with this software.

Installing from sources

Prerequisites

To install this software from source, you will need:

  • A C++ compiler (g++, clang++, ...)
  • A Python version supported by scikit-build-core (>=3.7 as of Jan. 2025)

If you want to enable GPU support in LISA Analysis Tools, you will also need the NVIDIA CUDA Compiler nvcc in your path as well as the CUDA toolkit (with, in particular, the libraries CUDA Runtime Library, cuBLAS and cuSPARSE).

Installation instructions using conda

We recommend to install LISA Analysis Tools using conda in order to have the compilers all within an environment. First clone the repo

git clone https://github.com/mikekatz04/LISAanalysistools.git
cd LISAanalysistools

Now create an environment (these instructions work for all platforms but some adjustements can be needed, refer to the detailed installation documentation for more information):

conda create -n lisatools_env -y -c conda-forge --override-channels |
    cxx-compiler pkgconfig conda-forge/label/lapack_rc::liblapacke

activate the environment

conda activate lisatools_env

Then we can install locally for development:

pip install -e '.[dev, testing]'

Installation instructions using conda on GPUs and linux

Below is a quick set of instructions to install the LISA Analysis Tools package on GPUs and linux.

conda create -n lisatools_env -c conda-forge lisaanalysistools-cuda12x python=3.12
conda activate lisatools_env

Test the installation device by running python

import lisatools
lisatools.get_backend("cuda12x")

Running the installation

To start the from-source installation, ensure the pre-requisite are met, clone the repository, and then simply run a pip install command:

# Clone the repository
git clone https://github.com/mikekatz04/LISAanalysistools.git
cd LISAanalysistools

# Run the install
pip install .

If the installation does not work, first check the detailed installation documentation. If it still does not work, please open an issue on the GitHub repository or contact the developers through other means.

Running the Tests

The tests require a few dependencies which are not installed by default. To install them, add the [testing] label to LISA Analysis Tools package name when installing it. E.g:

# For CPU-only version with testing enabled
pip install lisaanalysistools[testing]

# For GPU version with CUDA 12.Y and testing enabled
pip install lisaanalysistools-cuda12x[testing]

# For from-source install with testing enabled
git clone https://github.com/mikekatz04/LISAanalysistools.git
cd LISAanalysistools
pip install '.[testing]'

To run the tests, open a terminal in a directory containing the sources of LISA Analysis Tools and then run the unittest module in discover mode:

$ git clone https://github.com/mikekatz04/LISAanalysistools.git
$ cd LISAanalysistools
$ python -m lisatools.tests  # or "python -m unittest discover"
...
----------------------------------------------------------------------
Ran 20 tests in 71.514s
OK

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

If you want to develop LISA Analysis Tools and produce documentation, install lisatools from source with the [dev] label and in editable mode:

$ git clone https://github.com/mikekatz04/LISAanalysistools.git
$ cd LISAanalysistools
pip install -e '.[dev, testing]'

This will install necessary packages for building the documentation (sphinx, pypandoc, sphinx_rtd_theme, nbsphinx) and to run the tests.

The documentation source files are in docs/source. To compile the documentation locally, change to the docs directory and run make html.

Versioning

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

Contributors

A (non-exhaustive) list of contributors to the LISA Analysis Tools code can be found in CONTRIBUTORS.md.

License

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

Citation

Please make sure to cite LISA Analysis Tools papers and the LISA Analysis Tools software on Zenodo. We provide a set of prepared references in PAPERS.bib. There are other papers that require citation based on the classes used. For most classes this applies to, you can find these by checking the citation attribute for that class. All references are detailed in the CITATION.cff file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

lisaanalysistools_cpu-1.1.5-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

lisaanalysistools_cpu-1.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

lisaanalysistools_cpu-1.1.5-cp313-cp313-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.5-cp313-cp313-macosx_13_0_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

lisaanalysistools_cpu-1.1.5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

lisaanalysistools_cpu-1.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

lisaanalysistools_cpu-1.1.5-cp312-cp312-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.5-cp312-cp312-macosx_13_0_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

lisaanalysistools_cpu-1.1.5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

lisaanalysistools_cpu-1.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

lisaanalysistools_cpu-1.1.5-cp311-cp311-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.5-cp311-cp311-macosx_13_0_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

lisaanalysistools_cpu-1.1.5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

lisaanalysistools_cpu-1.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

lisaanalysistools_cpu-1.1.5-cp310-cp310-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.5-cp310-cp310-macosx_13_0_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

lisaanalysistools_cpu-1.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

lisaanalysistools_cpu-1.1.5-cp39-cp39-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.5-cp39-cp39-macosx_13_0_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 acd81252666a3f998b0d73633e8b4f81d55105e514e4db6971845a107065b40a
MD5 2c07df1688fd1865dc2381cf1becabfc
BLAKE2b-256 b80d058ff05afb78bbd4c3e924534e80cf5789791ca680b5cc4fee8e72befac7

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c44205b5e84a21cc1ec22784d4b8ea93e2204ca82ae81754fef4b303201f3cb
MD5 bfbe24e844d6403a8cf7762f30b8bc1b
BLAKE2b-256 c4273cf574c25e8afb1aae56b6a3ca9ee68b4032f5daa09cf08515a9574260f8

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e1e44dcf1c1f085c906808159acddcfe29e3d9e69ea585cdc6172fc5386efde9
MD5 7021d9651cefb592c9be9bb1dace5d7d
BLAKE2b-256 fd38dcc87e25fcb8d3bb68db7d2fc850c7fe3d862391bcd22286e92c92a41996

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8fd06bd1d91c1bca49df1147717ed73cc7df95b2841158d479518977d906645e
MD5 3f8a70550eb435c6c247e531a681a03f
BLAKE2b-256 b8448efd536b34e741226301245abe657ec754fe4f02c452ebf7e0e979d5a111

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6525b075271384ce3dfac51f82d295011a07db34548585ae1d1fad9b29705254
MD5 373101d2f956ee4e168b6225438f3230
BLAKE2b-256 cadbc66974a2aa484d3562e66574cec0f3ddaaceacc8dc504eefef95bb043df5

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7eda0b70bd7c72d9d209e146c266c2c04cb2f84d15cc4c669b285d5d6db780f
MD5 706b7e2c87c13f6291133a7ffe402d87
BLAKE2b-256 2c6f1dce27968d7fc04aef595ef50ded3279f2f691372bf394920894394f9ec8

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 03e7160a7d24669c4341a11d5fcc48217f35216a9bd035c629d2a6856a5121ec
MD5 5949a94f00c98a9211e5762932022490
BLAKE2b-256 0b7e2a5def28fdae77903ca274980b848794b44b9313c0061358e3421abdc98a

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 c973fe0e8c347d5f65a998503cffb6c5b3e7f53af564bac80453f48bbd4e9bcd
MD5 7a9971d5e25137284276b6cccac274e2
BLAKE2b-256 30666e957e325313d9838b5e9265bc4d80029d03e4d807573647b4466e1f932f

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 913058698d0c5b557c0979bd072353c4e85f9bb51a53687df3fbaf41124372e0
MD5 3f737495101fd14bc859e81b4ce0cc6d
BLAKE2b-256 0cc510a58186b15add632bcd9ea8db28d55760cdccd51d6eddf0e756e8a410a1

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41f5e4e66eed03fdf555c209c4fbbaaeb9e8dbfded68e4c82b8f2f16672d7c9d
MD5 5cceb5cb88f7a91d28de63338865c960
BLAKE2b-256 addf0e545c540e5865e8ee66e621bf7d277101f3c015be0aac63c7f57563d18b

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 da7d637c0621d54443d4b7ac9bec115392f1602bc75716bc5c2f597ed2bbe822
MD5 2517a71c48f4e8016c7a4a1c212d3fa5
BLAKE2b-256 5a42f0aebfa7d021a877cd572ba9f92e0c54d9dd64e31a9b8446e62c9cc11e45

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 c6cb0e1a8d435d0afef76d95ed23f0138f0dd994f803776b89571794ef431b9b
MD5 97f3ceeb57c79d9c6099a9f9336ef48b
BLAKE2b-256 f727889710c801186a050d912bc39e7d79c9c369025bceb2672964382ca56108

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 62608852dda04a302462d85e8e17fa18dec30540da7cbdb6b746e432ee637ee4
MD5 28b3ae73ece12069ed362b30a37b76f5
BLAKE2b-256 090b813fdd0d57b5f7c7dc84e562214a6297e05447ed711371dcf2695ed20f43

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17cb436507ecbcbb290692a95d6bc0bab964966d28ab3c67d8adfda9ea929f10
MD5 7aca7ef0d6f455f82d547f1793ae33f7
BLAKE2b-256 003a9915bfed671118019eb283b01380f316e568ce2c66d240ee0b8e2530d9b5

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2e56e85f4d0abe104cc5f2c2e0319788edc3d5badb675e2923d6ef890c7f753e
MD5 8ecf4e080cd26fb80a1bad38c631d945
BLAKE2b-256 23bd1500326d632b1bfec1352aff046f89069bc361b513a5b9cf216f8fd35327

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2581a57dc7fb122b8719494cf84a20b57a8322fe2bc1ba4170e82d6330593478
MD5 fb49fcf93a90333dfb537fb67c421ead
BLAKE2b-256 39c295880ffc0c70994ae4b4d2e819d76926c55d55013407f12c209e261f38d3

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f5cf7f6e44871627e25cd56d9941108e3d333b274dc4d8c993e31aa577a08e7b
MD5 8b5b21d1e75d4a4c0e9fd9b75371afa0
BLAKE2b-256 85595f5abcc0eff17408054d42665f2e039cdf2bfff8c74673405540e6d1be18

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b2001d045e14e1922700bf9923610de3a8d3ec03b7eb319e9ecf83cb2055de64
MD5 0a4ec388cb9ac1f9c895867d1ff96ac3
BLAKE2b-256 5eb19307d3075e8f3ecdd8d621da926cae74c99a0d732288e43590db702b1d7f

See more details on using hashes here.

File details

Details for the file lisaanalysistools_cpu-1.1.5-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.5-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e37121fd4f901895ef18eaaa5ccd5894c529294bffed4fea17963019e2fcc907
MD5 f40a039cc6cb332938125de9e8baae95
BLAKE2b-256 8d1e27cc2b3de7b9d537e933ccc4242c661346cbe1bac6a5cae3f8ad04ca8d52

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page