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.0.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.0-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.0.tar.gz.

File metadata

  • Download URL: gateau-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 2b13c68fb499719349ef8bba734a71a98485404b276ab6091ae4c20d24d10662
MD5 d75cbb3432bd5328151e685b1b1752f3
BLAKE2b-256 1a4108e104f4f49b7b183ba0a1648e8c1efcac0193d5362929a58cee6b839aaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gateau-0.1.0-cp313-cp313-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 d28cd9f2694005d12948517dc80eb540a69ef3e7872cb7fe8e1e7ec111f88bf4
MD5 207154217034034bc02ea7b5a64c13ea
BLAKE2b-256 d473807883b41b5829a465a98d2fdca27e01c25cbd9bac1db73f53c400186d43

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