This project uses Observable Framework to present performance information from benchmarks running on multiple supercomputers.
.
├── src/
│ ├── index.md # Main page with supercomputer list
│ ├── supercomputers/ # Individual supercomputer folders
│ │ └── polaris/ # Example: Polaris supercomputer
│ └── data/ # Data loaders for benchmark data
├── observablehq.config.js # Framework configuration
└── package.json # Dependencies and scripts
npm installStart the local development server:
npm run devThis will start a local server at http://localhost:3000 where you can preview your site.
Build the static site:
npm run buildThe built site will be in the dist/ directory.
To add a new supercomputer:
- Create a new markdown file in
src/supercomputers/(e.g.,my-system.md) - Add the system to the list in
src/index.md - Add performance data visualization using Observable Plot
- Optionally create data loaders in
src/data/for loading benchmark results
Observable Framework supports data loaders that can fetch and process data at build time. Place data loaders in the src/data/ directory. They can be:
- JavaScript/TypeScript files (
.js,.ts) - Python scripts (
.py) - Shell scripts (
.sh) - Any executable that outputs JSON, CSV, or other supported formats
Example data loader (src/data/system-metrics.json.js):
import fs from "fs";
// Fetch or generate your data
const data = await fetchBenchmarkData();
// Output as JSON
process.stdout.write(JSON.stringify(data));For GitHub Pages deployment:
npm run buildThen commit and push the dist/ directory, or configure GitHub Actions to build and deploy automatically.