Skip to main content

GPU-Accelerated Time-dEpendent observAtion simUlator

Project description

[DOI] (https://doi.org/10.5281/zenodo.10528021)

Welcome to the gateau Github repository: the GPU-Accelerated Time-dEpendent observAtion simUlator! This is the end-to-end simulator for TIFUUn observations, and is currently still in progress. For more info, please see the documentation pages (to be fixed).

Building and testing

General procedure

  1. Install Python, gcc, cmake, gsl-devel
  2. (optional) create and activate venv
  3. pip install -e .
  4. python -m unittest
  5. TODO gtest

What follows is notes and examples for various distros. Tip: take a look at the dockerfile under podman for more info.

Oracle Linux 9

  • Available pythons: 3.9, 3.11, 3.12
  • Extra repos need to be added for googletest:
dnf install -y oracle-epel-release-el9
dnf config-manager --set-enabled ol9_developer_EPEL
dnf install -y gtest gtest-devel gsl-devel python3.11

python3.11 -m venv /venv
source /venv/bin/activate

pip install -e .
python -m unittest
TODO gtest

Ubuntu 20.04

  • deadsnakes repo needed for non-ancient Pythons
    • contains almost all releases of python that you might ever want (3.9, 3.10, 3.11, 3.12, 3.13)
    • venv shipped separately, so you need to install both pythonX.XX and pythonX.XX-venv
  • gsl-devel is called libgsl-dev
  • TODO gtest
apt install -y libgsl-dev software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt update -y
apt install python3.11 python3.11-venv

python3.11 -m venv /venv
source /venv/bin/activate

pip install -e .
python -m unittest
TODO gtest

Installation

System-wide requirements (get these from your package manager):

  • gcc
  • cmake
  • gsl-devel

Example for Void Linux: xbps-install -Syu gcc cmake gsl-devel

Once you have installed the system-wide requirements, you can pip install -e . this repo. All Python dependencies will be downloaded by pip.

Testing

  1. Make sure podman is installed and working.
  2. Pull the tests images: ./podman/test-all.sh pull
    • You can also build the images locally: ./podman/test-all.sh build
  3. Run the tests: ./podman/test-all.sh test
  4. Check results: the results of pip install are saved in ./podman/output/*. They must all be zero. Otherwise, something went wrong.

Misc notes

Changing the signature of run_gateau

If you want to add/remove arguments of run_gateau there's four places you need to change it:

  • InterfaceCUDA.h
  • SimKernels.cu
  • bindings.py -- the Python function itself
  • bindings.py -- the call to the C++ code

License

Gateau is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License only.

Gateau is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with Gateau. If not, see https://www.gnu.org/licenses/.

Note: Previous versions of gateau were released under different licenses. If the current license does not meet your needs, you may consider using an earlier version under the terms of its original license. You can find these versions by browsing the commit history.


Copyright (c) 2025, maybetree, Arend Moerman.

Project details


Download files

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

Source Distribution

gateau-0.1.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

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

gateau-0.1.1-cp313-cp313-manylinux_2_31_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ x86-64

File details

Details for the file gateau-0.1.1.tar.gz.

File metadata

  • Download URL: gateau-0.1.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gateau-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4b809c2ad0870931a4b05daa433d925fd4fc98a94fc845fd606028dafebe1334
MD5 b4c08f04e51b87861652467be866b099
BLAKE2b-256 ae1259553148c4615a4c53f383379ff1b305a3feff0d30ba29dcbb4e08cde24d

See more details on using hashes here.

File details

Details for the file gateau-0.1.1-cp313-cp313-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gateau-0.1.1-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 0d20ac704ba341879b1c362cdf82a655f3c95e36c3bc7473c1da05e1e5867e04
MD5 0f2fab7884624e942bac2e9182e0ca2c
BLAKE2b-256 b7ebfa0ee7522fc76358f70d7e1c060dafd687035c8383ff5875022927b60bc8

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