By uw-ssec
Development toolkit for HPyX — HPX Python bindings. Provides deep HPX knowledge, binding patterns, build system guidance, benchmarking, and code review for contributors.
Use this agent to write, run, and analyze performance benchmarks for HPyX bindings. Trigger when the user wants to benchmark a new binding, compare HPX vs Python/NumPy performance, measure thread scaling, or analyze performance results. Examples: <example> Context: User added a new binding and wants to benchmark it user: "Write benchmarks for the new reduce binding" assistant: "I'll use the benchmark-engineer agent to create and run benchmarks." <commentary> New binding needs performance characterization. Create benchmarks following HPyX patterns. </commentary> </example> <example> Context: User wants to compare performance user: "How does our dot1d compare to numpy's dot product?" assistant: "I'll run the benchmarks and analyze the comparison." <commentary> User wants performance comparison data. Run existing benchmarks and analyze results. </commentary> </example> <example> Context: User wants to understand scaling behavior user: "How does the for_loop scale with thread count?" assistant: "I'll create and run thread scaling benchmarks." <commentary> User wants scaling analysis. Create parametrized benchmarks with different thread counts. </commentary> </example> <example> Context: User notices performance regression user: "The async submit seems slower after the recent changes" assistant: "I'll benchmark and profile to identify the regression." <commentary> Performance regression investigation. Run benchmarks and compare to baseline. </commentary> </example>
Use this agent to review C++/Python binding code for correctness, GIL safety, and adherence to HPyX patterns. Trigger proactively after writing or modifying C++ binding code in src/*.cpp or Python wrappers in src/hpyx/. Examples: <example> Context: User just wrote a new Nanobind binding in src/ user: "I've added a new reduce binding in src/reduce.cpp" assistant: "Let me review the binding for correctness." <commentary> New binding code was written. Proactively review for GIL safety, type correctness, and pattern adherence. </commentary> </example> <example> Context: User modified existing binding code user: "I changed the for_loop binding to support par_unseq policy" assistant: "I'll review the changes for thread safety and correctness." <commentary> Existing binding was modified. Review for regressions and correct GIL handling. </commentary> </example> <example> Context: User asks for explicit review user: "Review my HPX binding code" assistant: "I'll use the binding-reviewer agent to analyze the code." <commentary> Explicit review request for binding code. </commentary> </example>
Use this agent to explore HPX C++ source code and find APIs suitable for Python binding. Trigger when the user wants to discover what HPX features are available, understand an HPX API's signature, or research how to wrap a specific HPX component. Examples: <example> Context: User wants to find HPX APIs to wrap user: "What parallel algorithms does HPX provide that we haven't wrapped yet?" assistant: "I'll use the hpx-api-explorer agent to search the HPX source." <commentary> User needs to discover unwrapped HPX APIs. Explorer searches vendor/hpx/ source. </commentary> </example> <example> Context: User wants to understand a specific HPX API user: "How does hpx::when_all work? What's its signature?" assistant: "I'll explore the HPX source to find the when_all API details." <commentary> User needs specific API information from the HPX C++ source. </commentary> </example> <example> Context: User is planning what to bind next user: "What HPX features would be useful for distributed computing in Python?" assistant: "I'll explore HPX's distributed computing components." <commentary> User is researching HPX features for future binding work. </commentary> </example>
Generates the complete scaffolding (C++ source, header, `bind.cpp` registration, CMake update, Python wrapper package, tests, and optional benchmarks) for a new HPX algorithm binding in HPyX. Use when the user asks to "add a new binding", "scaffold a binding", "create an HPX wrapper", "add hpx::for_each binding", "add hpx::reduce binding", "wrap a new HPX algorithm", "add a new HPX feature to HPyX", or provides a specific HPX feature name and wants end-to-end scaffolding.
Generates `pytest-benchmark` scripts for HPyX bindings, runs HPX vs NumPy/pure-Python comparisons, measures thread scaling and binding overhead, and interprets timing results. Use when the user asks about "benchmarking", "performance testing", "pytest-benchmark", "benchmark HPX vs Python", "benchmark HPX vs NumPy", "measure binding overhead", "profile HPyX", "threadpoolctl", "benchmark scaling", "performance comparison", mentions the "benchmarks/" directory or "pixi run benchmark", or asks about performance characteristics of HPyX operations.
Guides building and configuring HPyX (CMake + scikit-build-core + Nanobind + pixi), diagnoses CMake/compilation/link errors, explains `nanobind_add_module` usage, configures conda-forge dependencies, and resolves RPATH issues. Use when the user asks about "build system", "CMake configuration", "scikit-build-core", "pixi", "build errors", "compilation errors", "link errors", "nanobind_add_module", "CMakeLists.txt", "pyproject.toml", "pixi.toml", "build HPX from source", "install dependencies", "RPATH", "conda-forge", or hits build failures, missing library errors, or environment setup issues.
Enforces correct GIL handling in HPyX's Nanobind bindings under Python 3.13 free-threading — diagnoses GIL deadlocks and callback segfaults, applies `gil_scoped_acquire`/`release` patterns, and validates thread safety in C++/Python code. Use when the user asks about "GIL management", "free-threading", "Python 3.13 free-threading", "gil_scoped_acquire", "gil_scoped_release", "thread safety", "GIL deadlock", "nogil", "disable-gil", or debugs threading issues, segfaults in callbacks, or race conditions in HPyX.
Maps HPX C++ library components to their `vendor/hpx/` source locations, tracks which HPX features are already wrapped in HPyX, and identifies unwrapped candidates for new Python bindings. Use when the user asks about "HPX architecture", "HPX components", "HPX APIs", "what HPX features to wrap", "HPX parallel algorithms", "HPX futures", "HPX distributed computing", "HPX AGAS", "HPX performance counters", "HPX execution policies", or mentions "vendor/hpx", "HPX source", or asks what parts of HPX are available for binding.
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
HPyX provides Python bindings for the HPX C++ Parallelism Library using Nanobind and leveraging Python 3.13's free-threading capabilities. This project aims to make HPX's powerful parallel processing features accessible to Python developers while achieving optimal performance through true multi-threading.
Status: HPyX is currently in active development as part of a research project at the University of Washington's Scientific Software Engineering Center (SSEC). The project is experimental and APIs may change as we explore optimal integration patterns between Python's free-threading mode and HPX's parallel execution model.
HPX (High Performance ParalleX) is a C++ Standard Library for Concurrency and Parallelism that implements modern C++ parallelism features defined by the C++ Standard. It provides:
Note: HPyX is currently in active development. Pre-built packages are not yet available. Installation requires building from source using the provided build system.
HPyX uses pixi for environment and dependency management, which provides reproducible builds and handles complex C++ dependencies automatically.
--disable-gil option for optimal performanceClone the repository and navigate to the project directory:
git clone https://github.com/uw-ssec/HPyX.git
cd HPyX
HPyX provides predefined pixi environments (see also docs/CONTRIBUTING.md):
| Environment | Purpose |
|---|---|
py313t | Default development (Python 3.13 free-threading) + editable HPyX install |
test-py313t | Run test suite (pytest + test deps) |
build-py313t | Build distributions (sdist / wheel + verification) |
benchmark-py313t | Performance benchmarking (pytest-benchmark etc.) |
docs | Documentation authoring (MkDocs + plugins) |
linting | Lint / formatting (pre-commit) |
py313t-src | Advanced: build HPX from source & test against it |
To create and activate an environment:
pixi shell -e py313t
Note: Environments that include the hpyx feature (e.g. py313t) automatically install HPyX in editable mode.
npx claudepluginhub uw-ssec/hpyx --plugin hpx-devAgents and skills for Research-Through-Design approach to research software design
Agents and skills for Scientific Python development and best practices
Development kit for working with HoloViz ecosystem (Panel, hvPlot, HoloViews, Datashader, GeoViews, Lumen)
Comprehensive agents and skills for working with the Zarr array storage format
Benchmark and optimize Zarr chunking strategies for multi-dimensional scientific datasets on cloud object stores (S3, GCS)
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
Feature development with code-architect/explorer/reviewer agents, CLAUDE.md audit and session learnings, and Agent Skills creation with eval benchmarking from Anthropic.
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.