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)
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.