{"adoption": {"forks": 89, "observed_at": "2026-08-28T04:04:51.361940+00:00", "stars": 1484}, "canonical_url": "https://ross.abutalabs.com/products/pathos", "card": {"archived": false, "artifact_type": "library", "description": "parallel graph management and execution in heterogeneous computing", "domain": ["microservices", "developer-tools"], "enriched": true, "function": ["concurrency", "serialization", "caching", "rpc"], "health_score": 90, "homepage": "http://pathos.rtfd.io", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["uqfoundation/pathos"], "name": "uqfoundation/pathos", "platform": ["python", "cross-platform", "cli"], "pushed_at": "2026-06-22T01:58:48+00:00", "repo": "uqfoundation/pathos", "stars": 1484, "tags": ["parallel-computing", "parallel-map", "heterogeneous-computing", "ssh-launcher", "mpi", "multiprocessing", "dill", "automation"], "topics": [], "urls": [], "use_cases": ["parallelize a serial Python loop with minimal refactoring", "run map/apply across multiple machines over ssh", "launch MPI-based parallel jobs on a cluster", "nest parallel maps for hierarchical heterogeneous computing", "serialize Python functions and closures for remote execution", "monitor and control remote RPC services from Python"], "what_it_is": "pathos is a Python framework for parallel graph management and execution across heterogeneous computing resources. It provides drop-in parallel and distributed versions of map and apply, with pluggable launchers including ssh-based, MPI-based, and multiprocessing backends.", "when_to_avoid": ["you need fine-grained control over MPI internals or node-level HPC scheduling", "you need GPU/accelerator parallelism (use CUDA or Dask instead)", "you want a full distributed data pipeline framework like Dask or Ray", "you need strict async/await concurrency rather than process-based parallelism"], "when_to_choose": ["you want drop-in parallel map without rewriting your codebase", "you need one codebase spanning serial, threaded, multiprocess, ssh, and MPI execution", "you need to pickle nearly any Python object (via dill) for distributed tasks", "you want hierarchical/nested parallelism across heterogeneous resources"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pathos", "repo": "uqfoundation/pathos", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.361940+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:01.422364+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1729357e87dd621fe51fb1ed16ba6aec0dbd950e1f25b5585db12308b98a6a58", "fetched_at": "2026-08-28T04:04:51.361940+00:00", "kind": "readme", "missing": false, "url": "https://github.com/uqfoundation/pathos"}, {"content_hash": "65f16286ef2ff011f5a70652ef419155e9ffc8d4ac767a403810bc6b77586d36", "fetched_at": "2026-08-29T11:40:59.622587+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/pathos/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 100, "rhythm": 34}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4814, "days_push": 73, "days_rel": 226, "gap_med": 237.5, "n_releases_24m": 3}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}