Hillmapper C++ extension
Project description
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()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 189.9 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18342a26dc84abc2edae5c810d576c204f4f44fa6693ec374cb4b0a21d0738ac
|
|
| MD5 |
ee6eaf0ffb0211ea7305efddc85d5ca4
|
|
| BLAKE2b-256 |
d9e8cc883e524d50a5e8bb4c30d02849e3a16be79aab90a1babf2967c78fc0f6
|
File details
Details for the file hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: hillmapper-0.1.1-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 203.9 kB
- Tags: PyPy, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85f33c62705941f31f79163ecd3da2d0f4c2c15bb0b34a7dbdc69435c91c77de
|
|
| MD5 |
5c5f074ec9c4bac235605830db1aed08
|
|
| BLAKE2b-256 |
45bf05f44eb102020df33d358d1fef90f3bc37d6e91572ddb98f574e04bb4358
|
File details
Details for the file hillmapper-0.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl.
File metadata
- Download URL: hillmapper-0.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl
- Upload date:
- Size: 126.4 kB
- Tags: PyPy, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d865c14eb5ae74e89f67da84f61743a32facf588486f34ae7e75250217ed469e
|
|
| MD5 |
a693d1f91b0845d316cd1a5dafa00f29
|
|
| BLAKE2b-256 |
b89d5e4dccfc532b6d18e7e179a123c8dace2721efd2638fdb106c707388fe86
|
File details
Details for the file hillmapper-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f74cdcc371b459f2807d34ea821aad05601b49ff21a5e044cbc599c28898e143
|
|
| MD5 |
e2f6fb6102853ddce1ea924381b6864c
|
|
| BLAKE2b-256 |
ff3b97c3e32e5cd4044f062425db27c552ae4293bfe6bb42c5dcc82a4e07ad13
|
File details
Details for the file hillmapper-0.1.1-cp313-cp313-musllinux_1_2_i686.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp313-cp313-musllinux_1_2_i686.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f27d082aa7adfe85435af2b1cc6a2993794382691fc32af805115e819fd76724
|
|
| MD5 |
dffb2491ab8f3d496bfd21b25b93cad5
|
|
| BLAKE2b-256 |
304917d3a14d1adc71bc4fc00ffdd28390149998d5abacc1a3c0c2adcb8ea277
|
File details
Details for the file hillmapper-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 95.9 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f9b15fa8d045259c9002359cd5fada33db2ce01e7d9e4b4af00b972f0971c30
|
|
| MD5 |
5080f58d77f919eed5adf8d873cbd3e4
|
|
| BLAKE2b-256 |
09f1a23110b06c2f49a2a60be35aca3fe3f80fb4fa09fa129f5e1a286f4fe6af
|
File details
Details for the file hillmapper-0.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 103.6 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b74386913dbda709566386e0689b8e45cd43f16e35017ec6327f24cecf82ed6
|
|
| MD5 |
dde58e0d2e561a2af59dd4bb4d1977e7
|
|
| BLAKE2b-256 |
b9e86b6093bdadfe66f33f31e815f68d5e24a6ef716bfcbe0fd89300169fa856
|
File details
Details for the file hillmapper-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 65.3 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f8985b10ae85f7398dcf5fb7973503b13ada1685f42a3d0f4d6c942aff44745
|
|
| MD5 |
12db181a6b5ae533231f793bf14f3962
|
|
| BLAKE2b-256 |
d64594b5a71f946251e526a247c18c51d25d842d51ed39653d2af4aa63cd1072
|
File details
Details for the file hillmapper-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4d94022a97d3d99373d69c85aade4d8c962c4318723e96f11d46fa496c40754
|
|
| MD5 |
85fde076f2f2d07b71c3e2a613252364
|
|
| BLAKE2b-256 |
9bafc37d7452edc155440831081be6f3200354193110a85621a848184d78ef42
|
File details
Details for the file hillmapper-0.1.1-cp312-cp312-musllinux_1_2_i686.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp312-cp312-musllinux_1_2_i686.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c701a8e0277c69f545400b885cfa8b085a66f5b29a8310870e462eddf15f1195
|
|
| MD5 |
66170be64a1bbe4e0775d278d06c3d5e
|
|
| BLAKE2b-256 |
8060072c90b240eff5b27e2f04ffa137f68fc3642962644da4192e747b7c9869
|
File details
Details for the file hillmapper-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 96.1 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8466d130d50de486d063db0d4ad37d90f9e6263caaeb83ba1b7b4350a145b40c
|
|
| MD5 |
e9478598a9ce530aa42c541df4463d0e
|
|
| BLAKE2b-256 |
ecee39258cdc05e1b02ea6cfc9ad8abc72728881739abb570623b4cb72ae19f6
|
File details
Details for the file hillmapper-0.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 104.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be109179030934beb3a3196f755ebeb6dfcfad24ee207417adf0736d4a2ecd50
|
|
| MD5 |
6ae58eb88ede890cad7dfb03ad7a498f
|
|
| BLAKE2b-256 |
0a5705930056798d3f5d0c205772ad4ee335bfecc2da7f07e8b78abdec796e03
|
File details
Details for the file hillmapper-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 65.3 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36f04a04640f017d8f6890fcba51fd5f62abc9f68856c69ddefc5b16473e7b51
|
|
| MD5 |
3775f832ba4d1e00ff248b6c90174f27
|
|
| BLAKE2b-256 |
6f3521d5bc82609753170c588cfda72ce92f703c4a69b67fafd3cc8d5baf24d9
|
File details
Details for the file hillmapper-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce1b587889d3e50aa614e087d76fba6165f9f6658ae1ea803d1a65d0ba513d09
|
|
| MD5 |
87fc46a0f86d0c50ce2878d179122671
|
|
| BLAKE2b-256 |
c640e61206ffa82db5d6368ec1c7f211fda26f119b3a47e2061c97f7c86dadc8
|
File details
Details for the file hillmapper-0.1.1-cp311-cp311-musllinux_1_2_i686.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp311-cp311-musllinux_1_2_i686.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22795e5ee08f9cc5586bee705264e709f6209517b09ca03ded239a8c262767d1
|
|
| MD5 |
dddb9a4375049f6d168ac139db449757
|
|
| BLAKE2b-256 |
3f6f754099c05f00ea54066bab923ebc347551ff7d545ccfebe10b585cd54714
|
File details
Details for the file hillmapper-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 96.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d62c96b1c7d081837c67b11df5dae069e31e497762dbc14ccb825790343f986
|
|
| MD5 |
823f20cac33e62ff17c90eebc0218b98
|
|
| BLAKE2b-256 |
87fa1e395ac54fd90c96553e8b66c620c283f3d21cb76d1f7248111a24557512
|
File details
Details for the file hillmapper-0.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 104.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5742f9b4ef305315356b0583384cf6e9ae0a939338947977f650834704b186da
|
|
| MD5 |
add36df6a480e9823036997d2d824cb9
|
|
| BLAKE2b-256 |
853f4f93689abe8a534dd0d49c7983cf7a4ce887d89e30c6a27859b96577becb
|
File details
Details for the file hillmapper-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: hillmapper-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 64.9 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00e6d032773a5ef2d74aa35a6ace8a6c1b45aa31d4199519fec5cec8f806f856
|
|
| MD5 |
4a3f1bcbc5df6bade2649e39d285c620
|
|
| BLAKE2b-256 |
1437f1866f546ac33c3e9a4f9a36685f2c09aa3ab745ce69edebc6cba6a6ad52
|