pathos  by uqfoundation

Framework for parallel graph management and execution in heterogeneous computing

created 12 years ago
1,457 stars

Top 28.7% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Pathos is a Python framework designed to simplify parallel and distributed computing across heterogeneous resources. It targets researchers and developers needing to scale their Python code with minimal refactoring, offering a unified interface for parallel execution that can seamlessly switch between local multiprocessing, distributed clusters, and even hierarchical setups.

How It Works

Pathos provides a high-level map and apply interface that acts as a drop-in replacement for serial Python equivalents. It achieves this by abstracting away the complexities of configuring, launching, and managing parallel jobs across different execution environments. The framework uses configurable "launchers" (e.g., SSH-based, MPI-based) that handle the syntactic details of job submission. A key design principle is enabling a single codebase to leverage various parallel resources without code duplication, and it supports nested parallel computations for hierarchical heterogeneous computing.

Quick Start & Requirements

Highlighted Details

  • Provides a configurable distributed parallel map interface with SSH tunneling for secure communication.
  • Supports hierarchical heterogeneous computing through nested map and pipe objects.
  • Includes utilities for filesystem exploration, automated builds, and persistent caching.
  • Offers low-level access to SSH and SCP for fine-grained control over remote processes and file transfers.

Maintenance & Community

Licensing & Compatibility

  • Distributed under a 3-clause BSD license.
  • Permissive license suitable for commercial use and closed-source linking.

Limitations & Caveats

The README mentions that RPC communication is inherently insecure, but pathos mitigates this by providing optional SSH tunneling. While it supports various execution environments, the setup for distributed clusters might require specific configurations on those clusters.

Health Check
Last commit

1 month ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
17 stars in the last 90 days

Explore Similar Projects

Starred by Jeff Hammerbacher Jeff Hammerbacher(Cofounder of Cloudera) and Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems).

bytewax by bytewax

0.3%
2k
Python framework for stateful stream processing
created 3 years ago
updated 4 months ago
Feedback? Help us improve.