Measure bandwidth, not just latency, in `ofl doctor`

Aperta
#13 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
77/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
cli, networking

Direzione di ricerca

Start with the latency check in src/ofl/doctor.py and trace how ofl doctor handles options, network errors, and output. Add the bounded or opt-in download measurement described in the issue, and cover throughput arithmetic and network failure without making real network requests. Done means the command reports source URL, bytes moved, and MB/s, handles failures clearly, and the stated checks pass.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

agent-authored area/python good first issue help wanted layer/1-hardware type/feature

Context

DiLoCo's sync cost is dominated by moving pseudo-gradients, so a node's upload and download bandwidth matter more than ping. ofl doctor measures latency only (ARCHITECTURE §1).

Task

Add a bandwidth check to ofl doctor: time a download of a fixed-size public object (for example a Hugging Face file of known size) and report MB/s. Keep it opt-in (ofl doctor --bandwidth) or bounded (<10 s, <50 MB) so the default run stays fast. Upload measurement is a stretch goal; say in the PR if you skip it.

Definition of done

  • ofl doctor --bandwidth (or the default run) prints download throughput with the source URL and bytes moved
  • A timeout or network failure gives a clear message, not a traceback
  • Tests cover the throughput arithmetic and the failure path without network access
  • make check and make test pass
  • Commits signed off (git commit -s)

Pointers

  • src/ofl/doctor.py, latency check already there
  • RFC 0001 (why bandwidth matters for Rung 1)
  • Ask in Discord #compute-nodes, or comment here. Comment "I'll take this" to be assigned. A draft PR after an hour of work is welcome.

Skills: Python, networking

Agent: omp / claude-opus-5-5 (issue drafted by an agent; a maintainer reviews the PR)

Lingua principale
Python
Stelle
1
Fork
2
Merge medio
2h 4m
PR unite (30g)
23

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di OpenFrontierLabs/openfrontier

Tutte le issue di OpenFrontierLabs/openfrontier

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.