Parallelmap

io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.0更新於 Nov 3, 2026

可安全並行化的作業或測試的依賴圖:層級、關鍵路徑、排程。

AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。

原文描述

Dependency graph of jobs or tests that can safely parallelize: levels, critical path, schedule.

已驗證STDIO僅桌面

概覽

Parallelmap 的本機 MCP 服務;無需登入;STDIO。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Parallelmap,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

parallelmap

A test suite or a job pipeline takes as long as it takes — unless some of it can run side by side. parallelmap takes the workload graph — every job's name, its duration, and the names of the jobs that must finish before it starts — and maps out what can safely parallelize:

  • Levels — the jobs grouped by depth. Level 0 holds the jobs with no dependencies; every other job sits at one level above its deepest dependency. Everything in a level can run together, once the levels below it are done.
  • Sequential vs parallel time — the sum of all durations against the makespan with unbounded workers (the largest earliest finish), and the speedup between them. All reported seconds are rounded to 3 decimals, and the speedup is computed from those rounded values.
  • Critical path — the chain that sets the parallel time, in execution order. Ties — for the finishing job and for each step back along the chain — go to the smallest job name, so the path is fully deterministic.
  • Worker schedule — pass a worker count and a greedy list schedule assigns the jobs in (level, name) priority order, each to the worker that frees up first (lowest index on a tie), starting no earlier than its dependencies' finishes under that schedule. The schedule reports each job's worker, start, and finish, sorted by (start, worker, job), plus the resulting makespan. Without a worker count there is no schedule and the makespan is the unbounded parallel time.
  • Cycle detection — when the jobs cannot be scheduled at all, parallelmap does not error out or guess. It reports ok: false with the exact cycle: a depth-first search over names and dependencies in ascending order returns the first cycle it finds as the list of jobs forming it (a job that depends on itself reports as a one-name cycle), with the time fields null.

The graph must be closed: a depends_on entry naming a job that was not supplied is a validation error, as are a missing or duplicate job name, a missing, negative, or non-finite duration, and a worker count that is not an integer of at least 1. Errors name the offending path (for example jobs[1].depends_on[0] references unknown job "build") and no partial map is produced. The computation is pure and local: no network, no configuration, no files read beyond the input you pass in.

CLI

bash
npx @reneturcios/parallelmap map --input args.jsonnpx @reneturcios/parallelmap --version

args.json contains the full arguments object:

json
{  "jobs": [    { "name": "compile", "duration_seconds": 30 },    { "name": "unit", "duration_seconds": 45, "depends_on": ["compile"] },    { "name": "lint", "duration_seconds": 10, "depends_on": ["compile"] },    { "name": "package", "duration_seconds": 5, "depends_on": ["unit", "lint"] }  ],  "workers": 2}

depends_on defaults to [] per job and workers is optional overall. The map is printed as JSON:

json
{  "ok": true,  "levels": [["compile"], ["lint", "unit"], ["package"]],  "sequential_seconds": 90,  "parallel_seconds": 80,  "speedup": 1.125,  "critical_path": ["compile", "unit", "package"],  "cycle": [],  "schedule": [    { "job": "compile", "worker": 0, "start": 0, "finish": 30 },    { "job": "unit", "worker": 0, "start": 30, "finish": 75 },    { "job": "lint", "worker": 1, "start": 30, "finish": 40 },    { "job": "package", "worker": 1, "start": 75, "finish": 80 }  ],  "makespan_seconds": 80}

Exit codes: 0 on success, 1 on a runtime error (including an unreadable or invalid input file, or invalid input), 2 on a usage error.

MCP server

bash
npx -y @reneturcios/parallelmap mcp

MCP client config:

json
{  "mcpServers": {    "parallelmap": {      "command": "npx",      "args": ["-y", "@reneturcios/parallelmap", "mcp"]    }  }}

Tools

  • map_parallelization — Map which jobs or tests can safely run in parallel.

    • jobs (array, required, at least one) — jobs as {name, duration_seconds, depends_on?} objects; name is unique across the set and each depends_on entry names another supplied job
    • workers (integer, optional, at least 1) — when given, a greedy schedule onto that many workers is included

    Returns {ok, levels, sequential_seconds, parallel_seconds, speedup, critical_path, cycle, schedule, makespan_seconds} — or, on a cycle, {ok: false, cycle, levels: [], sequential_seconds, parallel_seconds: null, speedup: null, critical_path: [], schedule: [], makespan_seconds: null}.

Docker

bash
docker run -i ghcr.io/cloudcorprecords/parallelmapdocker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/parallelmap map --input /w/args.json

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # tsx --test test/*.test.ts (pure local, no network)npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

來源:README.md,提交 7819014

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Nov 3, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分