Skip to main content

HILLMAPPER

HILLMAPPER is a high-performance C++ extension (via PyBind11) that provides a fast, parallel hill-climbing algorithm implementation.

Features

  • Blazing fast C++ core compiled with PyBind11.
  • Provides find_optimal_bijection — a parallel hill-climbing optimizer.
  • Precompiled for Ubuntu (manylinux) and macOS (universal2).
  • Windows support coming soon.

Requirements

  • Python 3.11+
  • Runs on Ubuntu and macOS (x86_64 & Apple Silicon)

Installation

Install from PyPI

pip install hillmapper

Usage example

#!/usr/bin/env python3
# import it first!
from hillmapper import find_optimal_bijection


def main():
    # Frequency counters for Redset scansets
    redset_scanset_counters = [4, 2, 3]

    # Redset scansets (1-based table IDs, since C++ uses 1..N internally)
    redset_scansets = [
        [1, 2],   # Scanset 0
        [2, 3],   # Scanset 1
        [1, 3],   # Scanset 2
    ]

    # Benchmark scansets (also 1-based)
    tpcds_scansets = [
        [1, 2],   # Benchmark scanset 0
        [2, 3],   # Benchmark scanset 1
    ]

    # Map each Redset table (1-based) to the indices of the scansets it affects
    r_table_to_scansets = [
        [],       # index 0 unused (placeholder so tables match 1..N)
        [0, 2],   # Table 1 in scansets 0, 2
        [0, 1],   # Table 2 in scansets 0, 1
        [1, 2],   # Table 3 in scansets 1, 2
    ]

    n_redset_tables = 3  # Tables 1..3
    n_tpcds_tables = 2   # Tables 1..2

    best_distance, best_assignment = find_optimal_bijection(
        2,                          # n_threads
        50,                         # n_iterations_per_thread
        redset_scanset_counters,
        redset_scansets,
        tpcds_scansets,
        r_table_to_scansets,
        n_redset_tables,
        n_tpcds_tables
    )

    print("=== Hillmapper Optimization Demo ===")
    print(f"Best Manhattan distance: {best_distance}")
    print("Optimal table assignment (redset_table → tpcds_table):")
    for redset_table, tpcds_table in best_assignment.items():
        print(f"  Redset table {redset_table} → TPCDS table {tpcds_table}")


if __name__ == "__main__":
    main()

Metadata

Release files for hillmapper 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for hillmapper 0.1.1
File
hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-32 Details
hillmapper-0.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64 Details
hillmapper-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
hillmapper-0.1.1-cp313-cp313-musllinux_1_2_i686.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-32 Details
hillmapper-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
hillmapper-0.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-32 Details
hillmapper-0.1.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
hillmapper-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
hillmapper-0.1.1-cp312-cp312-musllinux_1_2_i686.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-32 Details
hillmapper-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
hillmapper-0.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-32 Details
hillmapper-0.1.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
hillmapper-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
hillmapper-0.1.1-cp311-cp311-musllinux_1_2_i686.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-32 Details
hillmapper-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
hillmapper-0.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-32 Details
hillmapper-0.1.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 8.3 MB

Release files / hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 189.9 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
18342a26dc84abc2edae5c810d576c204f4f44fa6693ec374cb4b0a21d0738ac
BLAKE2b-256 checksum
How to use checksums
d9e8cc883e524d50a5e8bb4c30d02849e3a16be79aab90a1babf2967c78fc0f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Size 203.9 kB
Tags Linux glibc 2.17+ x86-32 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
85f33c62705941f31f79163ecd3da2d0f4c2c15bb0b34a7dbdc69435c91c77de
BLAKE2b-256 checksum
How to use checksums
45bf05f44eb102020df33d358d1fef90f3bc37d6e91572ddb98f574e04bb4358
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl

Download URL hillmapper-0.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Size 126.4 kB
Tags PyPy 3.11 PyPy 3.11 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d865c14eb5ae74e89f67da84f61743a32facf588486f34ae7e75250217ed469e
BLAKE2b-256 checksum
How to use checksums
b89d5e4dccfc532b6d18e7e179a123c8dace2721efd2638fdb106c707388fe86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL hillmapper-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f74cdcc371b459f2807d34ea821aad05601b49ff21a5e044cbc599c28898e143
BLAKE2b-256 checksum
How to use checksums
ff3b97c3e32e5cd4044f062425db27c552ae4293bfe6bb42c5dcc82a4e07ad13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp313-cp313-musllinux_1_2_i686.whl

Download URL hillmapper-0.1.1-cp313-cp313-musllinux_1_2_i686.whl
Size 1.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
f27d082aa7adfe85435af2b1cc6a2993794382691fc32af805115e819fd76724
BLAKE2b-256 checksum
How to use checksums
304917d3a14d1adc71bc4fc00ffdd28390149998d5abacc1a3c0c2adcb8ea277
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hillmapper-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 95.9 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7f9b15fa8d045259c9002359cd5fada33db2ce01e7d9e4b4af00b972f0971c30
BLAKE2b-256 checksum
How to use checksums
09f1a23110b06c2f49a2a60be35aca3fe3f80fb4fa09fa129f5e1a286f4fe6af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL hillmapper-0.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Size 103.6 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
8b74386913dbda709566386e0689b8e45cd43f16e35017ec6327f24cecf82ed6
BLAKE2b-256 checksum
How to use checksums
b9e86b6093bdadfe66f33f31e815f68d5e24a6ef716bfcbe0fd89300169fa856
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL hillmapper-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Size 65.3 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4f8985b10ae85f7398dcf5fb7973503b13ada1685f42a3d0f4d6c942aff44745
BLAKE2b-256 checksum
How to use checksums
d64594b5a71f946251e526a247c18c51d25d842d51ed39653d2af4aa63cd1072
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL hillmapper-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d4d94022a97d3d99373d69c85aade4d8c962c4318723e96f11d46fa496c40754
BLAKE2b-256 checksum
How to use checksums
9bafc37d7452edc155440831081be6f3200354193110a85621a848184d78ef42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp312-cp312-musllinux_1_2_i686.whl

Download URL hillmapper-0.1.1-cp312-cp312-musllinux_1_2_i686.whl
Size 1.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
c701a8e0277c69f545400b885cfa8b085a66f5b29a8310870e462eddf15f1195
BLAKE2b-256 checksum
How to use checksums
8060072c90b240eff5b27e2f04ffa137f68fc3642962644da4192e747b7c9869
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hillmapper-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 96.1 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8466d130d50de486d063db0d4ad37d90f9e6263caaeb83ba1b7b4350a145b40c
BLAKE2b-256 checksum
How to use checksums
ecee39258cdc05e1b02ea6cfc9ad8abc72728881739abb570623b4cb72ae19f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL hillmapper-0.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Size 104.0 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
be109179030934beb3a3196f755ebeb6dfcfad24ee207417adf0736d4a2ecd50
BLAKE2b-256 checksum
How to use checksums
0a5705930056798d3f5d0c205772ad4ee335bfecc2da7f07e8b78abdec796e03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL hillmapper-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Size 65.3 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
36f04a04640f017d8f6890fcba51fd5f62abc9f68856c69ddefc5b16473e7b51
BLAKE2b-256 checksum
How to use checksums
6f3521d5bc82609753170c588cfda72ce92f703c4a69b67fafd3cc8d5baf24d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL hillmapper-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ce1b587889d3e50aa614e087d76fba6165f9f6658ae1ea803d1a65d0ba513d09
BLAKE2b-256 checksum
How to use checksums
c640e61206ffa82db5d6368ec1c7f211fda26f119b3a47e2061c97f7c86dadc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp311-cp311-musllinux_1_2_i686.whl

Download URL hillmapper-0.1.1-cp311-cp311-musllinux_1_2_i686.whl
Size 1.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
22795e5ee08f9cc5586bee705264e709f6209517b09ca03ded239a8c262767d1
BLAKE2b-256 checksum
How to use checksums
3f6f754099c05f00ea54066bab923ebc347551ff7d545ccfebe10b585cd54714
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hillmapper-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 96.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8d62c96b1c7d081837c67b11df5dae069e31e497762dbc14ccb825790343f986
BLAKE2b-256 checksum
How to use checksums
87fa1e395ac54fd90c96553e8b66c620c283f3d21cb76d1f7248111a24557512
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL hillmapper-0.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Size 104.1 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
5742f9b4ef305315356b0583384cf6e9ae0a939338947977f650834704b186da
BLAKE2b-256 checksum
How to use checksums
853f4f93689abe8a534dd0d49c7983cf7a4ce887d89e30c6a27859b96577becb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / hillmapper-0.1.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL hillmapper-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Size 64.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
00e6d032773a5ef2d74aa35a6ace8a6c1b45aa31d4199519fec5cec8f806f856
BLAKE2b-256 checksum
How to use checksums
1437f1866f546ac33c3e9a4f9a36685f2c09aa3ab745ce69edebc6cba6a6ad52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Security for hillmapper 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

18 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page