Skip to content
Snippets Groups Projects
  1. Nov 28, 2022
  2. Oct 27, 2022
    • Thorsten Hater's avatar
      Add a plethora of config options to a-b-c. (#1958) · 81096351
      Thorsten Hater authored
      Closes #1861 
      Closes #1783 
      
      - arbor-build-catalogue (a-b-c) does no longer need to be in a fixed location
      - nor do we statically fix the configuration for a-b-c
      - instead, we rely on `arbor.config` to read the relevant default values
      - each value can be overriden, if desired
      - added many more values to the configuration
        - gpu type and arch
        - paths and prefix 
        - CXX
      - report default settings for better diagnosis
      - implement a fallback for prefix if that does not exist; in particular for the amazing skbuild.
      
      In essence you can now use a-b-c as a standalone tool, as long as you have a properly 
      configured py-arbor.
      
      Example output after removing `_skbuild`
      ```
      Warning: prefix '/Users/hater/src/arbor/_skbuild/macosx-11.0-x86_64-3.10/cmake-install' does not exist, falling back to '/Users/hater/src/arbor/.direnv/python-3.10.6'.
      usage: arbor-build-catalogue catalogue_name mod_source_dir
      
      Generate dynamic catalogue and build it into a shared object.
      
      positional arguments:
        name              Catalogue name.
        modpfx            Directory name where *.mod files live.
      
      options:
        --raw raw [raw ...]
                          Advanced: Raw mechanisms as C++ files. Per <name> the files <name>.hpp, <name>_cpu.cpp (if CPU
                          is enabled) must be present in the target directory and with GPU support also <name>_gpu.cpp and
                          <name>_gpu.cu.
        -v, --verbose     Verbose.
        -q, --quiet       Less output.
        --cpu CPU         Enable CPU support.
        --debug [path]    Don't clean up the generated temp cpp code. Can be a target path for the generated code.
        --gpu gpu         Enable GPU support
        --gpu-arch gpu_arch
                          Enable GPU support; default=-
        --cxx cxx         Use this C++ compiler; default=/usr/local/opt/llvm/bin/clang++.
        --prefix prefix   Arbor's install prefix; default=/Users/hater/src/arbor/.direnv/python-3.10.6.
        --bin bin         Look here for Arbor utils like modcc; relative to prefix, default=bin.
        --lib lib         Look here for Arbor's CMake config; relative to prefix, default=lib.
        --data data       Look here for Arbor supplementals like generate_catalogue; relative to prefix, default=lib
        -h, --help        Display this help and exit.
      ```
  3. Sep 20, 2022
  4. Jan 24, 2022
    • Thorsten Hater's avatar
      More robust build-catalogue (#1784) · d0dc6bd7
      Thorsten Hater authored
      - build-catalogue
        - now installed by pip
        - enable GPU-backends
        - isolate from being installed in a non-default dir
        - rename to arbor-build-catalogue
        - allow hand-written C++ mechanisms to be linked in the same catalogue.
      - CMake
        - enable PIC on arbor always to allow linking to shared objects
        - use relative paths when configuring a-b-c, to make relocation less of a problem
      - Python
          - ensure a-b-c is installed by pip, along with headers and libarbor.a
          - throw errors if tools (cmake scripts, arbor package, modcc) missing
          - transition setup.py setuptools -> skbuild.
      - Wheels
          - Add NML2 support to wheels
          - scripts/build-wheels.sh builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with .github/workflows/ciwheel.yml
          - scripts/patchwheel.py corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see pypa/auditwheel#363
          - Python Wheels are tested as part of the Github Action 
          - Add nml and bundled status to config().
  5. Oct 07, 2021
  6. May 15, 2020
  7. Aug 16, 2019
    • akuesters's avatar
      Python wrapper: add hint_map to domain decomposition (#827) · 953d5007
      akuesters authored and Benjamin Cumming's avatar Benjamin Cumming committed
      - wraps `partition_hint` struct for python
      - `partition_hint`struct in `load_balance.hpp` is adjusted in a way that in case of zero unsigned int `cpu_group_size`/`gpu_group_size` it is set to the default value (via setter/getter)
      - adds documentation for `partition_hint`  
      - adds testing for `domain_decomposition` including `partition_hint` (in unit and unit_distributed)
      - adds `partition_hint` in example `ring.py`
      - corrects `config.cpp` (and doc) to test for `ARB_GPU_ENABLED` instead of `ARB_WITH_GPU`
      
      Fixes #776 
      Addresses #799, #769
      953d5007
  8. Jun 07, 2019
    • akuesters's avatar
      Py feature domain decomp (#771) · ce6ccec8
      akuesters authored and Benjamin Cumming's avatar Benjamin Cumming committed
      Domain decomposition in python wrapper
      * functions: `partition_load_balance`
      *  types: `group_description` and `domain_decomposition`
      
      Also includes
      * remove comment that `gid` in a `group_description` must be sorted.
      * a host of small clean ups of python wrapper
      
      Fixes #761
      ce6ccec8
  9. May 09, 2019
  10. Mar 01, 2019