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.4-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.4-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.4-cp313-cp313-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.4-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.4-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.4-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.4-cp312-cp312-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.4-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.4-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.4-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.4-cp311-cp311-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.4-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.4-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.4-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.4-cp310-cp310-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.4-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.4-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.4-cp39-cp39-macosx_14_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

lisaanalysistools_cpu-1.1.4-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.4-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2eeba005bdda089f94a27485da93de765dfa02eb332134bd990503c6755c7f61
MD5 8234ba6a930ddad21f38ce8cc1158d63
BLAKE2b-256 ca3974f785f7c6ee9f3b4b994653f5fb0d73c1918f7f119d0d702ca07ad3765a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69f52d9d07982c85e737e5af444ffefb25b29c31bed5764097909e62cbf23273
MD5 8710c8bba496e0f84e4f77f80803f2c4
BLAKE2b-256 9703f16ddc505df25f433530f27ff27373d9a9ce8bb1ee615d1dc79af414f7cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 814602f7ab18cd451b4d797bcef6c66a116c2f4c102b558f9799590a829ab285
MD5 796d7136345c2f43bf7ac2bab12baa57
BLAKE2b-256 8e858c6bd91fca0780599bb8e4215742f199447290925dcbb64f1678546758c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a597a33e744ab9ee776de203ff75537dd59a04adda8888ae18811507fd1a3a62
MD5 2658d6a46f6e7447e0faf5da50e60295
BLAKE2b-256 7b98a6a7d098b9b3e277b88ef72c6d6aeecde2666a91074429a4ba0a35a7039b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7b8ffaeed5101a0b74b8c6b610beb87eced84f131ce4d48fe0577acc68f5dc54
MD5 99472d27f665753ee2482f0f47c3953a
BLAKE2b-256 2f1b9e0212d67d39359f734806649d187cee3147cc63cbb535e26840f86908c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 930bb921c0d7e37783bd32ead1a14b5731e82b570faaeeb52bf3dec0c475d06e
MD5 7399cbe7cddcfdd244f914ad9b23db10
BLAKE2b-256 a83fdd8983d850831031b1f40df3d918af1b41f1ae44ea55b2a0dd5380b6e6f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bae594fb15732feed0ea077773c9520051c6adc2b667c941c869695aa67a41d4
MD5 2152438218765cd7ff51e3e79edd2d49
BLAKE2b-256 07810cfd13f4e0b89770f0aa0d5dd18b4b40e837298c48202f91d6cb33e14851

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 eae8ad9b89fa75b0480ef0b5e208d650d610bbcace3c097c37f4dd8c7911d26a
MD5 a2530793e54f2c83bd5242cbd4be7ca2
BLAKE2b-256 52071373206890c36302b67fd6277fcc8ff01332ce69f86acd8185cb1835cd18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dd86a8e4f39a38e397fb4659e0e88c26b8a49a353c5c47f1fcd35413d316ebb2
MD5 3e3f68efee3db79f63d2da20dff4c0f7
BLAKE2b-256 416647baafa4c99b207e92ff23dfe343f9f13de4ac8a3321cd5ddaa83aa68618

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6eef96c7008db981476398fc0ba6c76bf028014ca4ee4b9745f78ecf6a56f434
MD5 81fcd55900452452fb1d302b3fbc4163
BLAKE2b-256 2bd0a637cfe51b487b2771e363a766adf4fe3a20390cacc53baa31c6b23d4543

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cb390a6f4f9fd50c495600dea1cf9658374ae053e687c4dba3eb0ef83cac0bc5
MD5 1d1148aeef0bb81ef54376e7f6aaa514
BLAKE2b-256 6293bded97f3cdf507165fc9dc656606fcff69f3902156970a3b43ed91d8b494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8f22ad5293fbc30e056bde795fc19826441563b607e5b290ef07e6f4d00d7ed3
MD5 1f4293c46174d47ed3d835d3ae6d3db5
BLAKE2b-256 d57bd0c7b4c5f9a67a50f855870f9fc74116318e1977744197bb2892b7f55ee7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 065b1ecce7301caf7644907351ca15b22adc5c031ad91264762faafacb9b76eb
MD5 c1c1044484fdb09d7e58b145dcd172f0
BLAKE2b-256 cda9c75cabc96ee641cb6dfbe815c1eb65434796e36d3342cea3762656092215

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75c4a45354e6377eea5b470c28894be5b7b72f6be9d7565f6d30f9d7d6096b10
MD5 2908bb089f9ac5164ec5da7e6d10538e
BLAKE2b-256 d84e43368c2e367869ea691037570f6e0c25da8b38705c28b990777814d538b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 77adaec8409aa8cc58d8991a874936db93c9b651a02084f8b9a61be30c64e873
MD5 c97c6d4034cbf4a3f430ae8941cba404
BLAKE2b-256 a814f22e5d61190307e891d3d5676621b0e29a23d310990223a4806ed0c49e92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 daf74a505ff97e74c726dfb9a80bcb24182eee39589e89378a44bcef880e4006
MD5 ff00d21e18bbcb39f2cf7a5cfcf31795
BLAKE2b-256 3317c6faed02ca3639eb57f943dc1ff265f7ca2a78d8497120ae5bd150f49e48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd1ee208f3c0ed0cd35639a545c77ce3afad111486e54b22ed4be9eaf666f7d1
MD5 6c128499e92754e418e6785d590432b3
BLAKE2b-256 f50c0b240339820c07f3d8348cb9e9fc8ac66354a8fde6c06e16f8ad8f00ac45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ee78b7f496e5289e32d72cd43c89930726203ebc6bc8b22ec51fac37d208a9cb
MD5 a611bd4fd6de0f44b88a49337218aece
BLAKE2b-256 bf1f4236ccf959738807367d482b34ef38eb1eddfad583273142316b59f70208

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lisaanalysistools_cpu-1.1.4-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9b9c11c7fa521c1ff354ce6d0bc4490771934e087bab66c1ecbfbb54ac09396b
MD5 0369d00f3a121f38379c93bdac557c3d
BLAKE2b-256 cd8f59e96072f9f83fecf67959787761b086eb7f365884fb297d0a31c56ab06a

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