metalcore

module
v0.0.0-...-455f444 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2022 License: Apache-2.0

README

build-and-release Go Report Card Documentation Status made-with-Go

metalcore logo

metalcore

Metalcore is the many-task computing framework for the cloud age!

"... but what does that mean?". Glad you asked, metalcore's goals and reasons for existing are:

  • to provide a simple way to quickly submit tasks and receive results from any pool size of compute resources
  • to reduce your TCO (license costs, cloud resources, stack dependencies)
  • to be hardware, virtualization, and containerization wise as agnostic as possible (runs everywhere [Linux, Windows, MacOS, amd64, arm, arm64, ...], can use everything [CPUs, GPUs, FPGAs, ...])
  • to scale billable cloud resources aligned to actual demand and/or upfront plan, and to do so quickly
  • to be highly available and fault tolerant, so that you can use the cheapest metal to run your workloads on (think: spot instances)
  • to be easy to understand, deploy, operate, build, and maintain
  • to be lean in protocols used and fast in execution = being a viable solution for low-latency workloads

"Alright, sounds good, what can I use it for?". Broadly speaking, everything that benefits from massive scale, horizontally or vertically. At its core (pun intended), metalcore implements a work/task queue and distributes the tasks from the client machines to worker nodes, and submits the results back to the clients.

Some usage examples are:

  • financial risk calculations, like Monte Carlo and others
  • video or photo transformation for large scale sites and applications

Feature highlights:

  • Support for many programming languages to implement your clients and service instances
  • shared data support (tasks can share the same input, and you can update it at any time)
  • batching of tasks and results, to save on network round-trips
  • ... + prefetching of entire batches of tasks and results to save even more
  • configuration via simple yaml file per application
  • single binaries compiled for many common OS/arch combinations, no dependencies

Documentation

You can find the latest documentation built and ready to read on readthedocs. The documentation source files can be found under docs here in the repo.

Directories

Path Synopsis
api
v1
cmd
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL