https://github.com/lablup/backend.ai
Backend.AI is a streamlined, container-based computing cluster platform that hosts popular computing/ML frameworks and diverse programming languages, with pluggable heterogeneous accelerator support including CUDA GPU, ROCm GPU, TPU, IPU and other NPUs.
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 86 committers (1.2%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.4%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Backend.AI is a streamlined, container-based computing cluster platform that hosts popular computing/ML frameworks and diverse programming languages, with pluggable heterogeneous accelerator support including CUDA GPU, ROCm GPU, TPU, IPU and other NPUs.
Basic Info
- Host: GitHub
- Owner: lablup
- License: lgpl-3.0
- Language: Python
- Default Branch: main
- Homepage: https://www.backend.ai
- Size: 717 MB
Statistics
- Stars: 578
- Watchers: 25
- Forks: 163
- Open Issues: 891
- Releases: 238
Topics
Metadata Files
README.md
Backend.AI
Backend.AI is a streamlined, container-based computing cluster platform that hosts popular computing/ML frameworks and diverse programming languages, with pluggable heterogeneous accelerator support including CUDA GPU, ROCm GPU, Rebellions, FuriosaAI, HyperAccel, Google TPU, Graphcore IPU and other NPUs.
It allocates and isolates the underlying computing resources for multi-tenant computation sessions on-demand or in batches with customizable job schedulers with its own orchestrator named "Sokovan".
All its functions are exposed as REST and GraphQL APIs.
Contents in This Repository
This repository contains all open-source server-side components and the client SDK for Python as a reference implementation of API clients.
Directory Structure
src/ai/backend/: Source codesmanager/: Manager as the cluster control-planemanager/api: Manager API handlersaccount_manager/: Unified user profile and SSO managementagent/: Agent as per-node controlleragent/docker/: Agent's Docker backendagent/k8s/: Agent's Kubernetes backendagent/dummy/: Agent's dummy backendkernel/: Agent's kernel runner counterpartrunner/: Agent's in-kernel prebuilt binarieshelpers/: Agent's in-kernel helper packagecommon/: Shared utilitiesclient/: Client SDKcli/: Unified CLI for all componentsinstall/: SCIE-based TUI installerstorage/: Storage proxy for offloading storage operationsstorage/api: Storage proxy's manager-facing and client-facing APIsappproxy/: App proxy for accessing container apps from outsideappproxy/coordinator: App proxy coordinator who provisions routing circuitsappproxy/worker: App proxy worker who forwards the trafficweb/: Web UI serverstatic/: Backend.AI WebUI release artifactslogging/: Logging subsystemplugin/: Plugin subsystemtest/: Integration test suitetestutils/: Shared utilities used by unit testsmeta/: Legacy meta packageaccelerator/: Intrinsic accelerator plugins
docs/: Unified documentationtests/manager/,agent/, ...: Per-component unit tests
configs/manager/,agent/, ...: Per-component sample configurations
docker/: Dockerfiles for auxiliary containersfixtures/manager/, ...: Per-component fixtures for development setup and tests
plugins/: A directory to place plugins such as accelerators, monitors, etc.scripts/: Scripts to assist development workflowsinstall-dev.sh: The single-node development setup script from the working copy
stubs/: Type annotation stub packages written by ustools/: A directory to host Pants-related toolingdist/: A directory to put build artifacts (.whl files) and Pants-exported virtualenvschanges/: News fragments for towncrierpants.toml: The Pants configurationpyproject.toml: Tooling configuration (towncrier, pytest, mypy)BUILD: The root build config file**/BUILD: Per-directory build config filesBUILD_ROOT: An indicator to mark the build root directory for PantsCLAUDE.md: The steering guide for agent-assisted developmentrequirements.txt: The unified requirements file*.lock,tools/*.lock: The dependency lock filesdocker-compose.*.yml: Per-version recommended halfstack container configsREADME.md: This fileMIGRATION.md: The migration guide for updating between major releasesVERSION: The unified version declaration
Server-side components are licensed under LGPLv3 to promote non-proprietary open innovation in the open-source community while other shared libraries and client SDKs are distributed under the MIT license.
There is no obligation to open your service/system codes if you just run the server-side components as-is (e.g., just run as daemons or import the components without modification in your codes). Please contact us (contact-at-lablup-com) for commercial consulting and more licensing details/options about individual use-cases.
Getting Started
Installation for Single-node Development
Run scripts/install-dev.sh after cloning this repository.
This script checks availability of all required dependencies such as Docker and bootstrap a development
setup. Note that it requires sudo and a modern Python installed in the host system based on Linux
(Debian/RHEL-likes) or macOS.
Installation for Multi-node Tests & Production
Please consult our documentation for community-supported materials. Contact the sales team (contact@lablup.com) for professional paid support and deployment options.
Accessing Compute Sessions (aka Kernels)
Backend.AI provides websocket tunneling into individual computation sessions (containers), so that users can use their browsers and client CLI to access in-container applications directly in a secure way.
- Jupyter: data scientists' favorite tool
- Most container images have intrinsic Jupyter and JupyterLab support.
- Web-based terminal
- All container sessions have intrinsic ttyd support.
- SSH
- All container sessions have intrinsic SSH/SFTP/SCP support with auto-generated per-user SSH keypair. PyCharm and other IDEs can use on-demand sessions using SSH remote interpreters.
- VSCode
- Most container sessions have intrinsic web-based VSCode support.
Working with Storage
Backend.AI provides an abstraction layer on top of existing network-based storages (e.g., NFS/SMB), called vfolders (virtual folders). Each vfolder works like a cloud storage that can be mounted into any computation sessions and shared between users and user groups with differentiated privileges.
Major Components
Manager
It routes external API requests from front-end services to individual agents. It also monitors and scales the cluster of multiple agents (a few tens to hundreds).
src/ai/backend/manager- README
- Legacy per-pkg repo: https://github.com/lablup/backend.ai-manager
- Available plugin interfaces
backendai_scheduler_v10backendai_agentselector_v10backendai_hook_v20backendai_webapp_v20backendai_monitor_stats_v10backendai_monitor_error_v10
Agent
It manages individual server instances and launches/destroys Docker containers where REPL daemons (kernels) run. Each agent on a new EC2 instance self-registers itself to the instance registry via heartbeats.
src/ai/backend/agent- README
- Legacy per-pkg repo: https://github.com/lablup/backend.ai-agent
- Available plugin interfaces
backendai_accelerator_v21backendai_monitor_stats_v10backendai_monitor_error_v10
Storage Proxy
It provides a unified abstraction over multiple different network storage devices with vendor-specific enhancements such as real-time performance metrics and filesystem operation acceleration APIs.
src/ai/backend/storage- README
- Legacy per-pkg repo: https://github.com/lablup/backend.ai-storage-proxy
Webserver
It hosts the SPA (single-page application) packaged from our web UI codebase for end-users and basic administration tasks.
src/ai/backend/web- README
- Legacy per-pkg repo: https://github.com/lablup/backend.ai-webserver
Synchronizing the static Backend.AI WebUI version:
console
$ scripts/download-webui-release.sh <target version to download>
Kernels
Computing environment recipes (Dockerfile) to build the container images to execute on top of the Backend.AI platform.
- https://github.com/lablup/backend.ai-kernels
Jail
A programmable sandbox implemented using ptrace-based system call filtering written in Rust.
- https://github.com/lablup/backend.ai-jail
Hook
A set of libc overrides for resource control and web-based interactive stdin (paired with agents).
- https://github.com/lablup/backend.ai-hook
Client SDK Libraries
We offer client SDKs in popular programming languages. These SDKs are freely available with MIT License to ease integration with both commercial and non-commercial software products and services.
- Python (provides the command-line interface)
pip install backend.ai-client- https://github.com/lablup/backend.ai/tree/main/src/ai/backend/client
- Java
- Currently only available via GitHub releases
- https://github.com/lablup/backend.ai-client-java
- Javascript
npm install backend.ai-client- https://github.com/lablup/backend.ai-client-js
- PHP (under preparation)
composer require lablup/backend.ai-client- https://github.com/lablup/backend.ai-client-php
Plugins
Plugins are detected and loaded via Python package entrypoints. The followings are the mainly used entrypoint names:
backendai_accelerator_v21ai.backend.accelerator.cuda: CUDA accelerator pluginai.backend.accelerator.cuda(mock): CUDA mockup plugin- This emulates the presence of CUDA devices without actual CUDA devices, so that developers can work on CUDA integration without real GPUs.
ai.backend.accelerator.rocm: ROCm accelerator plugin- More available in the enterprise edition!
backendai_monitor_stats_v10ai.backend.monitor.stats- Statistics collector based on the Datadog API
backendai_monitor_error_v10ai.backend.monitor.error- Exception collector based on the Sentry API
Legacy Components
These components still exist but are no longer actively maintained.
Media
The front-end support libraries to handle multi-media outputs (e.g., SVG plots, animated vector graphics)
- The Python package (
lablup) is installed inside kernel containers. - To interpret and display media generated by the Python package, you need to load the Javascript part in the front-end.
- https://github.com/lablup/backend.ai-media
IDE and Editor Extensions
- Visual Studio Code Extension
- Search “Live Code Runner” among VSCode extensions.
- https://github.com/lablup/vscode-live-code-runner
- Atom Editor plugin
- Search “Live Code Runner” among Atom plugins.
- https://github.com/lablup/atom-live-code-runner
We now recommend using in-kernel applications such as Jupyter Lab, Visual Studio Code Server, or native SSH connection to kernels via our client SDK or desktop apps.
Python Version Compatibility
| Backend.AI Core Version | Python Version | Pantsbuild version | |:-----------------------:|:--------------:|:------------------:| | 25.06.x ~ | 3.13.x | 2.23.x | | 24.03.x / 24.09.x ~ 25.05.x | 3.12.x | 2.21.x | | 23.03.x / 23.09.x | 3.11.x | 2.19.x | | 22.03.x / 22.09.x | 3.10.x | | | 21.03.x / 21.09.x | 3.8.x | |
Building Packages
Backend.AI supports building two types of packages:
- Python wheels (.whl)
- SCIE (Self-Contained Installable Executables)
To build:
```bash
Build wheels or SCIE packages
./scripts/build-wheels.sh ./scripts/build-scies.sh ```
All built packages will be placed in the dist/ directory.
License
Refer to LICENSE file.
Owner
- Name: Lablup
- Login: lablup
- Kind: organization
- Email: contact@lablup.com
- Location: Seoul, Republic of Korea
- Website: https://www.lablup.com
- Repositories: 114
- Profile: https://github.com/lablup
lab | up: Make AI Accessible - A start-up to innovate AI research / service processes.
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Joongi Kim | j****i@l****m | 825 |
| Sanghun Lee | s****n@l****m | 416 |
| Kyujin Cho | k****o@l****m | 384 |
| Sion Kang | s****a@g****m | 189 |
| Gyubong Lee | j****e@n****m | 120 |
| Jeongseok Kang | j****g@l****m | 91 |
| Jeongkyu Shin | i****s@g****m | 84 |
| Jonghyun Park | j****k@l****m | 52 |
| Sujin Kim | k****n@l****m | 44 |
| HyeockJinKim | k****z@g****m | 32 |
| DaeHyun Sung | d****g@l****m | 29 |
| Jihyun Kang | j****g@l****m | 28 |
| Mario Cho | h****x@g****m | 19 |
| ChangHoon Sung | c****g@l****m | 15 |
| Dongjin Park | c****3@n****m | 9 |
| SEONGHYUN KOO | 4****3 | 9 |
| Seo Sanghyeon | s****h@l****m | 9 |
| JinMyeong Kim | 8****g | 8 |
| Mincheol | p****8@g****m | 8 |
| dependabot[bot] | 4****] | 8 |
| mirageoasis | 3****s | 8 |
| Lee Siyoung | 4****2 | 6 |
| Nayeon Keum | r****8@g****m | 5 |
| SangwonYoon | y****2@n****m | 5 |
| leejiwon | 1****5 | 5 |
| Bokyum Kim | 김보겸 | 1****t | 4 |
| KangJuSeong | 3****g | 4 |
| MINSEOK LEE | 9****y | 4 |
| Suhwan Jee | j****n@g****m | 4 |
| chisacam | 3****m | 4 |
| and 56 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 1,530
- Total pull requests: 4,439
- Average time to close issues: 2 months
- Average time to close pull requests: 20 days
- Total issue authors: 49
- Total pull request authors: 61
- Average comments per issue: 0.17
- Average comments per pull request: 0.47
- Merged pull requests: 3,301
- Bot issues: 0
- Bot pull requests: 25
Past Year
- Issues: 1,165
- Pull requests: 2,476
- Average time to close issues: 6 days
- Average time to close pull requests: 6 days
- Issue authors: 25
- Pull request authors: 26
- Average comments per issue: 0.02
- Average comments per pull request: 0.22
- Merged pull requests: 1,865
- Bot issues: 0
- Bot pull requests: 3
Top Authors
Issue Authors
- HyeockJinKim (299)
- achimnol (280)
- jopemachine (273)
- fregataa (262)
- kyujin-cho (58)
- seedspirit (57)
- rapsealk (47)
- agatha197 (43)
- Yaminyam (41)
- studioego (27)
- lizable (22)
- inureyes (16)
- adrysn (14)
- nowgnuesLee (11)
- yomybaby (10)
Pull Request Authors
- lablup-octodog (1,013)
- fregataa (959)
- jopemachine (607)
- achimnol (362)
- HyeockJinKim (324)
- Yaminyam (319)
- kyujin-cho (295)
- rapsealk (153)
- seedspirit (109)
- agatha197 (41)
- lizable (30)
- dependabot[bot] (24)
- why-arong (21)
- mirageoasis (19)
- MintCat98 (16)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 24
-
Total downloads:
- pypi 60,997 last-month
- Total docker downloads: 572
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 4,157
- Total maintainers: 2
- Total advisories: 3
proxy.golang.org: github.com/lablup/backend.ai
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://pkg.go.dev/github.com/lablup/backend.ai#section-documentation
- License: LGPL-3.0
-
Latest release: v0.7.0
published about 9 years ago
Rankings
pypi.org: backend.ai-accelerator-cuda-mock
Backend.AI Accelerator Plugin for CUDA (Mockup)
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 23.3.0
published almost 3 years ago
Rankings
Maintainers (1)
pypi.org: backend.ai
Lablup Backend.AI Meta-package
- Homepage: https://backend.ai
- Documentation: https://docs.backend.ai
- License: LGPLv3
-
Latest release: 22.3.0
published almost 4 years ago
Rankings
Maintainers (1)
Advisories (3)
pypi.org: backend.ai-agent
Backend.AI Agent
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-common
Backend.AI commons library
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-client
Backend.AI Client SDK
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: MIT
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-cli
Backend.AI Command Line Interface Helper
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: MIT
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-webserver
Backend.AI WebUI Host
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-plugin
Backend.AI Plugin Subsystem
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: MIT
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-storage-proxy
Backend.AI Storage Proxy
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-kernel-helper
Backend.AI Kernel Runner Prebuilt Binaries Package
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-kernel
Backend.AI Kernel Runner
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-accelerator-cuda-open
Backend.AI Accelerator Plugin for CUDA
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-test
Backend.AI Integration Test Suite
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: MIT
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-accelerator-mock
Backend.AI Mockup Accelerator Plugin
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-install
Backend.AI Installer
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: MIT
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-logging
Backend.AI Logging Subsystem
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: MIT
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-wsproxy
Backend.AI WSProxy
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.12.1
published 7 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-appproxy-worker
Backend.AI AppProxy Worker
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-appproxy-common
Backend.AI AppProxy Common
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: Proprietary
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-appproxy-coordinator
Backend.AI AppProxy Coordinator
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-manager
Backend.AI Manager
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-kernel-binary
Backend.AI Kernel Runner Prebuilt Binaries Package
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago
Rankings
Maintainers (1)
pypi.org: backend.ai-account-manager
Backend.AI Account Manager
- Homepage: https://github.com/lablup/backend.ai
- Documentation: https://docs.backend.ai/
- License: LGPLv3
-
Latest release: 25.13.4
published 6 months ago