pathos  by uqfoundation

Framework for parallel graph management and execution in heterogeneous computing

Created 12 years ago
1,460 stars

Top 28.1% on SourcePulse

GitHubView on GitHub
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

2 months ago

Responsiveness

1 day

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

Explore Similar Projects

Starred by Yang Song Yang Song(Professor at Caltech; Research Scientist at OpenAI), Jeremy Howard Jeremy Howard(Cofounder of fast.ai), and
6 more.

PiPPy by pytorch

0%
779
PyTorch tool for pipeline parallelism
Created 3 years ago
Updated 1 year ago
Feedback? Help us improve.