From hpx-dev
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hpx-dev:hpx-architectureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The HPX source lives at `vendor/hpx/` as a git submodule. Key source directories:
The HPX source lives at vendor/hpx/ as a git submodule. Key source directories:
vendor/hpx/libs/ — Core library modules (algorithms, futures, threading, etc.)vendor/hpx/components/ — Runtime components (performance counters, iostreams)vendor/hpx/examples/ — C++ usage examplesvendor/hpx/docs/sphinx/ — Official documentationThe following HPX features have Python bindings in src/:
| HPX Feature | C++ Source | Python API |
|---|---|---|
hpx::async (deferred) | src/futures.cpp | hpyx.futures.submit() |
hpx::future<T> | src/bind.cpp | hpyx._core.future |
hpx::experimental::for_loop | src/algorithms.cpp | hpyx.multiprocessing.for_loop() |
hpx::transform_reduce (dot product) | src/algorithms.cpp | hpyx._core.dot1d() |
| Runtime init/shutdown | src/init_hpx.cpp | hpyx._core.init_hpx_runtime() / stop_hpx_runtime() |
hpx::get_num_worker_threads | src/bind.cpp | hpyx._core.get_num_worker_threads() |
vendor/hpx/libs/core/algorithms/)hpx::for_each — Apply function to range (parallel)hpx::transform — Transform range into outputhpx::reduce — Parallel reductionhpx::sort / hpx::stable_sort — Parallel sortinghpx::count / hpx::count_if — Parallel countinghpx::find / hpx::find_if — Parallel searchhpx::copy / hpx::copy_if — Parallel copyhpx::fill — Parallel fillhpx::transform_reduce — Fused transform + reduce (partially wrapped as dot1d)hpx::inclusive_scan / hpx::exclusive_scan — Prefix sumshpx::execution::seq — Sequential (wrapped)hpx::execution::par — Parallel (partially wrapped)hpx::execution::par_unseq — Parallel unsequencedhpx::execution::task — Returns future instead of blockinghpx::latch — Thread synchronization barrierhpx::barrier — Reusable barrierhpx::mutex / hpx::shared_mutex — Lightweight mutexeshpx::when_all / hpx::when_any — Future combinatorshpx::dataflow — Dataflow-based task executionhpx::find_here() / hpx::find_all_localities() — Locality discoveryhpx::components — Distributed objectshpx::actions — Remote procedure callshpx::performance_counters — Runtime metricsWhen adding new bindings, include the appropriate HPX headers:
#include <hpx/algorithm.hpp> // Parallel algorithms
#include <hpx/future.hpp> // Futures
#include <hpx/numeric.hpp> // Numeric algorithms
#include <hpx/execution.hpp> // Execution policies
#include <hpx/hpx_start.hpp> // Runtime management
#include <hpx/iostream.hpp> // HPX I/O streams
#include <hpx/latch.hpp> // Synchronization primitives
#include <hpx/version.hpp> // Version info
HPX execution policies control how algorithms dispatch work:
seq → Single thread, caller's thread
par → HPX thread pool, parallel tasks
par_unseq → Parallel + vectorization hints
task(policy) → Returns future<result> instead of blocking
When binding algorithms, always expose the policy parameter to Python to let users choose between sequential and parallel execution.
For detailed HPX API documentation and component maps:
references/hpx-api-map.md — Comprehensive map of HPX APIs organized by module with binding feasibility notesreferences/hpx-distributed.md — Detailed guide to HPX distributed computing features (AGAS, actions, components, parcelports)Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
npx claudepluginhub uw-ssec/hpyx --plugin hpx-dev