Skip to content
Back to skills

Distributed Execution

ASecurity

"Choose and debug img2dataset distributed execution, throughput

  • 247 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 8, 2026
businesspythongojavadebuggingbackendperformance

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill distributed-execution --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Distributed Execution?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Distributed Execution
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-distributed-execution/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-distributed-execution)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: distributed-execution
description: "Choose and debug img2dataset distributed execution, throughput
  tuning, logging, and large-scale operations."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# distributed-execution

Use this sub-skill when an img2dataset task depends on execution scale rather than on URL-table schema, image transforms, or core downloader options: choosing a distributor, preparing PySpark or Ray, tuning throughput, reading speed/status logs, enabling W&B, or debugging slow and failed distributed shards.

## Triggers

- The user asks which `--distributor` to use. The supported values are exactly `multiprocessing`, `pyspark`, and `ray`.
- The user mentions PySpark, SparkSession, Java, Spark clusters, Ray clusters, or distributed workers.
- The user needs to tune `processes_count`, `thread_count`, `subjob_size`, `number_sample_per_shard`, or `max_shard_retry` for a large run.
- The user has low images/sec, many failed shards, W&B/account issues, DNS bottlenecks, object-store filesystem questions, or wants to interpret stats and status logs.

## Route elsewhere

- Core command construction, HTTP retries, SSL, hash verification, incremental mode, user-agent, and X-Robots-Tag handling: route to `../core-download/SKILL.md`.
- Input formats, URL/caption/additional columns, output layouts, shard metadata schemas, and TFRecord writer details: route to `../input-output-formats/SKILL.md`.
- Resize modes, encoding, interpolation, image filters, `skip_reencode`, `disable_all_reencoding`, and bbox blurring: route to `../image-processing/SKILL.md`.

## Short workflow

1. Confirm the target scale and runtime: single host, Spark cluster, or Ray cluster. If optional backends are uncertain, run `python scripts/check_distributed_backends.py --json` from this sub-skill directory.
2. Choose one exact distributor value using `references/distributed-execution.md`.
3. Size local work with `processes_count` and `thread_count`; size PySpark dispatch with `subjob_size`; choose a retry policy with `max_shard_retry` and a restartable output folder.
4. Prefer `webdataset` for large datasets unless another sibling sub-skill's format contract requires a different output format.
5. Enable observability deliberately: stats files are always written; `--enable_wandb=True` adds W&B metrics/status tables when account or anonymous logging is acceptable.
6. If throughput or failures are poor, use `references/performance-tuning.md` first, then `references/troubleshooting.md` for backend-specific errors.

## Critical gotchas

- PySpark requires `pyspark` and a Java runtime. If no active `SparkSession` exists, img2dataset creates a local session with `local[processes_count]` and stops it afterward; if a session already exists, img2dataset uses it and leaves ownership to the caller.
- Ray is optional. In the current implementation, missing Ray can make the Ray distributor a no-op, so verify Ray before selecting `--distributor ray`.
- Avoid outdated Ray `local_mode=True` guidance; use current `ray.init(...)` patterns such as `ray.init(num_cpus=1)` for a short local smoke or `ray.init(address="auto")` for a cluster.
- `max_shard_retry` is an end-of-run shard retry loop for multiprocessing and PySpark. The current Ray path does not apply that retry loop.

## References and scripts

- `references/distributed-execution.md` — mode decision tree, PySpark/Ray/SparkSession behavior, self-contained command templates.
- `references/performance-tuning.md` — process/thread/shard sizing, bottleneck diagnosis, W&B/stat usage, filesystem and benchmark guidance.
- `references/troubleshooting.md` — missing optional dependencies, Java/Spark/Ray/W&B/DNS/filesystem failure modes.
- `scripts/pyspark_download_template.py` — dry-run-first PySpark download template; only imports Spark/img2dataset for `--run` or `--check-backends`.
- `scripts/check_distributed_backends.py` — safe optional-backend checker for PySpark, Java, Ray, TensorFlow/TFIO, W&B, and fsspec.

Files in this skill

  • SKILL.md3.9 KB
  • references/distributed-execution.md8.5 KB
  • references/performance-tuning.md8.7 KB
  • references/troubleshooting.md7.2 KB
  • scripts/check_distributed_backends.py10.6 KB
  • scripts/pyspark_download_template.py8.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.