10744 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
c56cb62c25 feat: implement mlsysim dashboard platform and initial interactive labs
- Implement universal 4-zone dashboard cockpit in mlsysim.viz.dashboard
- Add Lab 00: Flight School (Persona & Dashboard Onboarding)
- Add Lab 15: Sustainable AI (Grid-Interactive Scheduler Dashboard)
- Update Mission Plans for Systems, Data, and Orchestration with 3-act narrative
- Establish mlsysim at repo root as future-proof analytical engine
2026-03-01 18:39:13 -05:00
Vijay Janapa Reddi
533cfa6e99 fix: pre-commit hooks — all 48 checks now pass
- book/quarto/mlsys/__init__.py: add repo-root sys.path injection so
  mlsysim is importable when scripts run from book/quarto/ context
- book/quarto/mlsys/{constants,formulas,formatting,hardware}.py: new
  compatibility shims that re-export from mlsysim.core.* and mlsysim.fmt
- mlsysim/viz/__init__.py: remove try/except for dashboard import; use
  explicit "import from mlsysim.viz.dashboard" pattern instead
- .codespell-ignore-words.txt: add "covert" (legitimate security term)
- book/tools/scripts/reference_check_log.txt: delete generated artifact
- Various QMD, bib, md files: auto-formatted by pre-commit hooks
  (trailing whitespace, bibtex-tidy, pipe table alignment)
2026-03-01 17:30:24 -05:00
Vijay Janapa Reddi
c30f2a3bfd refactor: move mlsysim to repo root, extract fmt module from viz
Moves the mlsysim package from book/quarto/mlsysim/ to the repo root
so it is importable as a proper top-level package across the codebase.

Key changes:
- mlsysim/fmt.py: new top-level module for all formatting helpers (fmt,
  sci, check, md_math, fmt_full, fmt_split, etc.), moved out of viz/
- mlsysim/viz/__init__.py: now exports only plot utilities; dashboard.py
  (marimo-only) is no longer wildcard-exported and must be imported
  explicitly by marimo labs
- mlsysim/__init__.py: added `from . import fmt` and `from .core import
  constants`; removed broken `from .viz import plots as viz` alias
- execute-env.yml: fixed PYTHONPATH from "../../.." to "../.." so
  chapters resolve to repo root, not parent of repo
- 51 QMD files: updated `from mlsysim.viz import <fmt-fns>` to
  `from mlsysim.fmt import <fmt-fns>`
- book/quarto/mlsys/: legacy shadow package contents cleaned up;
  stub __init__.py remains for backward compat
- All Vol1 and Vol2 chapters verified to build with `binder build pdf`
2026-03-01 17:24:11 -05:00
Vijay Janapa Reddi
6a763c2552 Fix Node 1 NVLink ring arrowhead tangents in hierarchical-allreduce.svg
Offset the 2nd bezier control point x from the endpoint x on all four
Node 1 ring arcs so orient="auto" computes a diagonal arrival angle
instead of a straight vertical arrowhead.
2026-03-01 16:02:21 -05:00
Vijay Janapa Reddi
b0d826df64 Add Vol 2 textbook-quality SVG figures across all 17 chapters
Generated and audited 122 SVG figures covering all Vol 2 chapters:
introduction, compute_infrastructure, network_fabrics, data_storage,
distributed_training, collective_communication, fault_tolerance,
performance_engineering, inference, fleet_orchestration, ops_scale,
edge_intelligence, responsible_ai, robust_ai, security_privacy,
sustainable_ai. All figures follow the shared SVG style guide
(680x460 viewBox, Helvetica Neue, no embedded titles). Layout audit
applied 11 fixes for text overflow, out-of-bounds elements, and
missing arrowheads.
2026-03-01 15:51:20 -05:00
github-actions[bot]
ae4322101d Update contributors list [skip ci] 2026-03-01 16:41:28 +00:00
Vijay Janapa Reddi
7994f91e0e Merge pull request #1178 from salmanmkc/upgrade-github-actions-node24
Upgrade GitHub Actions for Node 24 compatibility
2026-03-01 11:36:51 -05:00
Vijay Janapa Reddi
6bddf33d1a Merge pull request #1208 from harishb00/patch-1
Fixed typo in GitHub user links and avatars in README
2026-03-01 11:33:48 -05:00
Vijay Janapa Reddi
bf9c402827 Adds callout-definition blocks to all Vol.2 chapters and fixes pre-commit hook errors
- Adds standardized callout-definition blocks with bold term + clear definition
  to all Vol.2 chapters (distributed training, inference, network fabrics, etc.)
- Fixes caption_inline_python errors: replaces Python inline refs in table
  captions with static text in responsible_engr, appendix_fleet, appendix_reliability,
  compute_infrastructure
- Fixes undefined_inline_ref errors: adds missing code fence for PlatformEconomics
  class in ops_scale.qmd; converts display math blocks with Python refs to prose
- Fixes render-pattern errors: moves inline Python outside $...$ math delimiters
  in conclusion, fleet_orchestration, inference, introduction, network_fabrics,
  responsible_ai, security_privacy, sustainable_ai, distributed_training
- Fixes dropcap errors: restructures drop-cap sentences in hw_acceleration and
  nn_architectures to not start with cross-references
- Fixes unreferenced-label errors: removes @ prefix from @sec-/@tbl- refs inside
  Python comment strings in training, model_compression, ml_systems
- Adds clientA to codespell ignore words (TikZ node label in edge_intelligence)
- Updates mlsys constants, hardware, models, and test_units for Vol.2 calculations
- Updates _quarto.yml and references.bib for two-volume structure
2026-03-01 10:44:33 -05:00
Harish
9a6a363b62 Update GitHub user links and avatars in README 2026-03-01 15:18:51 +05:30
Vijay Janapa Reddi
69736d3bdb updates 2026-02-28 18:20:47 -05:00
Vijay Janapa Reddi
3266bc7dfa Standardize chapter discovery via Quarto config
Refactors chapter discovery across CLI commands to use a single, canonical source of truth: the volume's Quarto PDF configuration file.

Introduces a new `get_chapters_from_config` function in `core/discovery.py` that parses the `_quarto-pdf-{volume}.yml` to derive the ordered list of testable chapter stems. This ensures consistent chapter order for `build` and `debug` operations, reducing duplication and improving maintainability.

Updates `build.py` and `debug.py` to delegate all chapter list retrieval to this new centralized method within `ChapterDiscovery`. Also enhances chapter QMD file location to support shared content paths.
2026-02-28 17:08:17 -05:00
Vijay Janapa Reddi
ae6f5d9f11 Refines book structure; modularizes embedded code and updates content
Updates Quarto configurations to reorder, add, and rename appendices across all output formats for both volumes, and includes previously commented chapters in PDF builds.

Encapsulates Python calculation logic and exported variables within dedicated classes across numerous Quarto documents, improving modularity, maintainability, and clarity of in-text references.

Refines MLOps definitions, corrects TCO calculation with distinct inference GPU rates, adjusts distributed training scaling scenarios (e.g., commodity network bandwidth), and clarifies network fabric details (e.g., FEC latency).
2026-02-28 17:00:09 -05:00
Vijay Janapa Reddi
d299e49d10 update 2026-02-28 16:25:00 -05:00
Vijay Janapa Reddi
3697fb7bf8 Merge remote-tracking branch 'origin/dev' into dev 2026-02-28 14:21:48 -05:00
Vijay Janapa Reddi
72d64a5499 cell updates 2026-02-28 13:03:38 -05:00
Vijay Janapa Reddi
2ce322def1 LEGO updates , call out updates 2026-02-28 11:47:42 -05:00
Vijay Janapa Reddi
c8dd1782d3 Math updates 2026-02-28 08:28:51 -05:00
Vijay Janapa Reddi
30f4cb1453 Renames Volume II parts and refines content for clarity
Renames Volume II parts from V-VIII to I-IV, updating all corresponding references in the about section, volume introduction, and individual part principle files.

Refines various textual elements across the book for improved conciseness and readability. Cleans up markdown formatting, including removal of unnecessary horizontal rules and empty code blocks. Adjusts footnote placement for better consistency.

Adds new reliability calculation parameters and corrects a tikz diagram rendering issue.
2026-02-27 18:00:41 -05:00
Vijay Janapa Reddi
ccf7ade8cc Merge pull request #1207 from harvard-edge/bug/login-goes-to-dash-and-freezes
bug fix user manual account broken
2026-02-27 17:51:21 -05:00
kai
81373c5dd7 bug fix user manual account broken 2026-02-27 17:06:38 -05:00
Vijay Janapa Reddi
2737f6e43d Merge pull request #1206 from harvard-edge/feat/account-deletion-calendar
updated calendar to pull from real cal, account deletions enabled
2026-02-27 08:57:37 -05:00
Vijay Janapa Reddi
b256ce1296 Refactors Lab 00 as Architect's Portal
Transforms the initial lab from a static manifesto into an interactive orientation. Introduces three Knowledge Assessment Tasks (KATs) designed to calibrate architectural intuition:

- KAT 1: Explores the cost implications of discovering design constraints late.
- KAT 2: Illustrates non-linear physical scaling laws through processor power consumption.
- KAT 3: Guides users to select a career specialization, defining their long-term mission and binding physical constraints.

Integrates new interactive components and a persistent Design Ledger HUD to enhance user engagement and track progress through the curriculum.
2026-02-27 08:12:13 -05:00
Vijay Janapa Reddi
8200b19e27 Introduces ML engineering lab plans for two volumes
Establishes the foundational content for a structured ML engineering curriculum, covering topics from single-node physics to fleet-scale orchestration.

Adds detailed mission plans for 16 labs in Volume 1 and 17 labs in Volume 2. Each plan outlines chapter context, core invariants, narrative arcs, 3-part missions with objectives, interactive workbenches, and reflection questions to define comprehensive learning experiences.
2026-02-27 08:11:39 -05:00
Vijay Janapa Reddi
dcf48671e2 Merge remote-tracking branch 'origin/feature/book-volumes' into feature/book-volumes 2026-02-27 08:09:51 -05:00
Vijay Janapa Reddi
acd3f59f4f Displays pre-flight build manifest in output
Introduces a detailed build manifest that appears in a dedicated output channel prior to any build or debug command execution.

The manifest provides key information about the upcoming operation, including the target volume, build format, execution mode (sequential or parallel), the Quarto configuration file in use, and a comprehensive list of all chapters slated for compilation. The chapter list is derived directly from the Quarto YML, acting as a single source of truth that reflects the full intended book structure, even for entries that are currently commented out.

Additionally, the manifest clearly displays the exact shell command that will be executed, enhancing transparency and aiding in debugging.
2026-02-27 08:09:12 -05:00
Vijay Janapa Reddi
b02b38aa32 fix: resolve PDF build failures in distributed_training and robust_ai
distributed_training: fix unclosed code cell (backticks appended to comment
line), add missing variable computations (a100_mem, nvlink_a100, etc.),
reorder LEGO cells so inline Python refs follow their defining cells, fix
duplicate cell label and stray code fence near young-daly-calc.

robust_ai: add missing TikZ definitions (gear macro, brain/skull pics,
LinePE style) to the data poisoning diagram so it compiles standalone.
2026-02-27 08:08:43 -05:00
Vijay Janapa Reddi
9cba37c92d Refactor TikZ figures and standardize code constants
Introduces reusable `pic` definitions for common elements across numerous TikZ diagrams, enhancing modularity and visual consistency. Improves diagram readability through explicit node positioning and refined styling.

Standardizes hardware and model constants in Python code by using specific `mlsys.constants` and dedicated setup classes, improving maintainability and clarity.

Addresses minor LaTeX formatting in math blocks and refines unit-aware calculations.
2026-02-27 07:15:37 -05:00
Zeljko Hrcek
6de84f20e6 Update chapter 20 figures 2026-02-27 12:02:50 +01:00
kai
5ae6b3bd5f updated calendar to pull from real cal, account deletions enabled 2026-02-27 01:26:24 -05:00
Vijay Janapa Reddi
303cd26669 refactor: use fmt_percent across Vol 1 and Vol 2 to prevent Pint precision bugs
This commit standardizes percentage formatting across the entire codebase to prevent critical rendering bugs (like the `19250000000000%` effective utilization bug in Vol 2).

Root Cause:
When dividing two Pint Quantities (e.g., `flop/second` by `TFLOPs/second`), Pint creates a mixed unit (`flop/TFLOPs`). The raw `.magnitude` of this fraction is $10^{12}$. When passed to `fmt(x * 100)`, it multiplied that massive magnitude by 100, resulting in an incorrect display.

Fix:
1. Fortified `fmt_percent` and `display_percent` in `mlsys/formatting.py` to defensively strip units using `.m_as('')`. This forces Pint to cancel out the units (e.g., `flop/TFLOPs` becomes `1.0`) *before* extracting the number.
2. Replaced all instances of `fmt(X * 100)` with the fortified `fmt_percent(X)` across Vol 1 and Vol 2.
3. Fixed inline f-strings in `appendix_assumptions.qmd` by moving formatting logic into the Python setup cell as `_str` variables, adhering to the book's standard practice.

Validation:
- Audited all `.magnitude` extractions in the codebase to ensure they are safe (e.g., explicitly converting to dimensionless units first).
- Ran `validate_inline_refs.py` and confirmed no Python variables are trapped inside LaTeX math mode.
- Successfully built full PDFs for both Volume 1 and Volume 2.
2026-02-26 20:59:43 -05:00
Vijay Janapa Reddi
96336ab0c6 fix: resolve Vol 2 PDF build failures and Pint unit display bugs
- Add missing attributes to FleetFoundations in appendix_fleet.qmd
- Fix regression_testing.png image path in fault_tolerance.qmd
- Add pgfplots package to header-includes.tex for TikZ compatibility
- Fortify fmt_percent in formatting.py to handle Pint Quantities properly, fixing the 19250000000000% display bug
2026-02-26 20:46:12 -05:00
Vijay Janapa Reddi
734e6fc987 fix: contribution guidelines link (main branch, CONTRIBUTING.md) 2026-02-26 17:42:08 -05:00
Vijay Janapa Reddi
baebb4c6d7 fix(vol1): model_serving PDF build — Python cell and TikZ
- Remove duplicate indented block in resnet-spectrum-calc cell that caused
  IndentationError (partial EXPORTS + stray class-body lines).
- Fix TikZ in fig-server-anatomy: add missing 'to' in brain path segments,
  remove stray/double commas in node and draw options.
2026-02-26 17:35:42 -05:00
Vijay Janapa Reddi
141a1efbe3 Refactor Volume 2 TikZ diagrams for structural integrity and positioning 2026-02-26 16:05:29 -05:00
Vijay Janapa Reddi
c69b6ab2d1 Add book tools (agent personas, check_figure_div_syntax) 2026-02-26 15:23:19 -05:00
Vijay Janapa Reddi
6ac05888f1 Add labs (protocol, core, plans, vol1 lab scripts and renders) 2026-02-26 15:23:17 -05:00
Vijay Janapa Reddi
0267506dbe Update requirements.txt 2026-02-26 15:23:09 -05:00
Vijay Janapa Reddi
fd21a57dd3 Update vscode-ext (debug commands, terminal) 2026-02-26 15:23:08 -05:00
Vijay Janapa Reddi
5e0c9a2f5d Update book quarto mlsys (hardware, validate_inline_refs, engine) 2026-02-26 15:23:07 -05:00
Vijay Janapa Reddi
73e39a0b8e Update book index 2026-02-26 15:23:04 -05:00
Vijay Janapa Reddi
2be59e3cec Update shared frontmatter (about, socratiq) 2026-02-26 15:23:04 -05:00
Vijay Janapa Reddi
0e992b79ae Update vol2 content and config 2026-02-26 15:23:03 -05:00
Vijay Janapa Reddi
49ca6889ca Update pre-commit config 2026-02-26 15:23:01 -05:00
Vijay Janapa Reddi
c8447dd556 Update vol1 content and config 2026-02-26 15:11:04 -05:00
Vijay Janapa Reddi
45a3ad829e feat(landing): refine DAM/C3 hexagon wireframe visibility 2026-02-26 13:14:46 -05:00
Vijay Janapa Reddi
9420cfb87e feat(landing): replace sliders with DAM/C3 hexagon cube animation 2026-02-26 13:12:38 -05:00
Vijay Janapa Reddi
05ada2698d feat(landing): finalize pixel grid background and smooth scrolling 2026-02-26 12:48:57 -05:00
Vijay Janapa Reddi
fe4daeb728 chore(landing): remove unused background variations 2026-02-26 12:47:54 -05:00
Vijay Janapa Reddi
59cffeef48 feat(landing): add matrix and particle background variations 2026-02-26 12:31:08 -05:00