Skip to content

About

Proof of concept for sharing GPU time across a research organisation, with clear budgets, visible use, and allocation decisions people can stand behind.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

faircenter

faircenter is a proof of concept application for fair and transparent sharing of GPU time across a research organisation or department. For researchers, it ensures a clear view on their resource availability (budget) and policies, and the mechanisms to (de)prioritise work according to their needs. For team leaders, it provides flexibility of resource allocation within their team's projects when needed. For managers, it provides a clear overview of resource load over time, with the policy mechanisms and parameters to optimise usage against operational strategy, and support for signalling investment needs. For executives, it provides a clear view and the ability to set priorities, timely summary statistics, and runway from hardware capacity to investment.

graph BT

  engineers([engineers]) -->|transparency| app([faircenter])
  managers([managers]) -->|funding & mandate| app
  operations([operations]) -->|policy & approvals| app
  app -->|reporting & decisions| direction([direction])
Loading

Fit within the existing ecosystem

faircenter aims to interface with existing tools. E.g., People and projects are imported from Notion, SLURM implements scheduling and standing, and communication is done via slack. Identity is assumed to come from single sign-on.

graph TD

  app([faircenter]) -.->|people & projects| notion([notion])
  app -.->|jobs, budgets & reservations| slurm([slurm])
  app -.->|notifications| slack([slack, email])
  app -.->|identity| sso([single sign-on])
Loading

How it is built and run

faircenter is build by me using Claude for vibecoding in React and Vite, with charts in Recharts and hand-built SVG. It runs on invented data roughly at scale, with around 20 teams and 300 people. A small simulated scheduler is running generated demand, and creates synthetic data. Each push to main builds the static site and publishes it to GitHub Pages through .github/workflows/deploy.yml. To run it locally, work in the frontend directory: npm install once, then npm run dev. There is no backend to the application yet, with further imagined improvements described in TODO.md, and build details in BUILD.md which includes the imagines Django service and SLURM adapter.

graph TD

  me([maintainer]) -->|vibe-codes & designs| claude([claude])
  claude -->|writes the react + vite app| repo([github repository])
  repo -->|build| dist([static site])
  dist -->|deploy| pages([github pages])
Loading

Documentation

The manual walks through the app tab by tab. The policy sets out the policies and parameters values, introducing a distribution of GPU "budget" across persons, teams and projects. strategy explained how the policy could be phased over time, anticipating a gradual organization towards team and project-oriented budgets, minimizing administrative burden and maximizing transparancy and decision-making at each level.

Where it lives

About

Proof of concept for sharing GPU time across a research organisation, with clear budgets, visible use, and allocation decisions people can stand behind.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages