All Projects → niklasf → Fishnet

niklasf / Fishnet

Licence: other
Distributed Stockfish analysis for lichess.org

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Fishnet

solid-chess
A decentralized chess app build on top of Solid.
Stars: ✭ 46 (-84.97%)
Mutual labels:  chess
elo-js
Elo algorithm implementation in JS.
Stars: ✭ 18 (-94.12%)
Mutual labels:  chess
Cutechess
Cute Chess is a graphical user interface, command-line interface and a library for playing chess.
Stars: ✭ 284 (-7.19%)
Mutual labels:  chess
Awesome-Federated-Machine-Learning
Everything about federated learning, including research papers, books, codes, tutorials, videos and beyond
Stars: ✭ 190 (-37.91%)
Mutual labels:  distributed-computing
interbit
To the end of servers
Stars: ✭ 23 (-92.48%)
Mutual labels:  distributed-computing
Lichess Bot
A bridge between Lichess API and chess engines
Stars: ✭ 258 (-15.69%)
Mutual labels:  chess
SadlyDistributed
Distributing your code(soul), in almost any language(state), among a cluster of idle browsers(voids)
Stars: ✭ 20 (-93.46%)
Mutual labels:  distributed-computing
Lucaschess
Chess GUI
Stars: ✭ 305 (-0.33%)
Mutual labels:  chess
data-parallelism
juliafolds.github.io/data-parallelism/
Stars: ✭ 22 (-92.81%)
Mutual labels:  distributed-computing
Awesome Distributed Deep Learning
A curated list of awesome Distributed Deep Learning resources.
Stars: ✭ 277 (-9.48%)
Mutual labels:  distributed-computing
mobius
Mobius is an AI infra platform including realtime computing and training.
Stars: ✭ 22 (-92.81%)
Mutual labels:  distributed-computing
SciFlow
Scientific workflow management
Stars: ✭ 49 (-83.99%)
Mutual labels:  distributed-computing
Gleam
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.
Stars: ✭ 2,949 (+863.73%)
Mutual labels:  distributed-computing
Walleye
A chess engine written from scratch in Rust ♞
Stars: ✭ 82 (-73.2%)
Mutual labels:  chess
Federated Learning Pytorch
Implementation of Communication-Efficient Learning of Deep Networks from Decentralized Data
Stars: ✭ 286 (-6.54%)
Mutual labels:  distributed-computing
leanchess
The world's smallest chess program
Stars: ✭ 71 (-76.8%)
Mutual labels:  chess
Charm4py
Parallel Programming with Python and Charm++
Stars: ✭ 259 (-15.36%)
Mutual labels:  distributed-computing
Awesome Federated Computing
📚 👓 A collection of research papers, codes, tutorials and blogs on Federated Computing/Learning.
Stars: ✭ 314 (+2.61%)
Mutual labels:  distributed-computing
Python Seminar
Python for Data Science (Seminar Course at UC Berkeley; AY 250)
Stars: ✭ 302 (-1.31%)
Mutual labels:  distributed-computing
Tdigest
t-Digest data structure in Python. Useful for percentiles and quantiles, including distributed enviroments like PySpark
Stars: ✭ 274 (-10.46%)
Mutual labels:  distributed-computing

fishnet: distributed Stockfish analysis for lichess.org

crates.io Build Docker

Installation

  1. Request your personal fishnet key: https://lichess.org/get-fishnet

  2. Install and run the fishnet client.

    Download standalone binary

    Select the binary for your platform from the latest release and run it.

    # After download:
    chmod +x fishnet-x86_64-unknown-linux-gnu
    ./fishnet-x86_64-unknown-linux-gnu --auto-update
    

    Other useful commands:

    ./fishnet-x86_64-unknown-linux-gnu configure              # Rerun config dialog
    ./fishnet-x86_64-unknown-linux-gnu systemd --auto-update  # Print a .service file
    ./fishnet-x86_64-unknown-linux-gnu --help                 # List commands and options
    

    From source

    Assuming you have a recent Rust toolchain installed:

    git clone --recursive https://github.com/niklasf/fishnet.git
    cd fishnet
    cargo run --release --
    

    Docker

    docker run -it -e KEY=abcdef niklasf/fishnet:2
    
  3. Pick an update strategy.

    Automatic updates

    Run with --auto-update as recommended above (will currently still require manual restarts on Windows due to #151).

    Subscribe to release announcements

    With a GitHub account, you can watch this repository (can be set to only release announcements). See the top right corner on this page.

Video introduction

Watch @arex explain fishnet.

Video introduction

FAQ

Which engine does fishnet use?

fishnet uses Stockfish 12 (hence the name) and a fork of Stockfish with multi-variant support.

Precompiled builds for various CPU models come bundled with fishnet. To get another architecture included, all we need is a reproducible build process (so everyone can verify that the compiled binary matches the source).

What are the requirements?

Available for 64-bit Intel and AMD ARMv8 / Silicon
Linux x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
Windows x86_64-pc-windows-gnu.exe
macOS x86_64-apple-darwin aarch64-apple-darwin
FreeBSD build from source
  • Needs an operating system from around 2016 or later
  • Will max out the configured number of CPU cores
  • Uses about 64 MiB RAM per CPU core
  • A small amount of disk space
  • Low-bandwidth network communication with Lichess servers (only outgoing HTTP requests, so probably no firewall configuration required)

Is my CPU fast enough?

Almost all processors will be able to meet the requirement of ~2 meganodes in 6 seconds. Clients on the faster end will automatically be assigned analysis jobs that have humans waiting for the result (the user queue, as opposed to the system queue for slower clients).

What happens if I stop my client?

Feel free to turn your client on and off at any time. By default, the client will try to finish any batches it has already started. On immediate shutdown, the client tries to inform Lichess that batches should be reassigned. If even that fails, Lichess will reassign the batches after a timeout.

Will fishnet use my GPU?

No, Stockfish is a classical alpha-beta engine. The neural network evaluation of Stockfish NNUE works efficiently on CPUs.

Is fishnet secure?

To the best of our knowledge. However you implicitly trust the authors and the GitHub infrastructure when running with --auto-update.

You can mitigate this by running fishnet as an unprivileged user.

Stockfish builds are reproducible, so you can verify that the distributed binaries match the source.

cargo-crev is used to review the trustworthiness of dependencies.

Is there a leaderboard of contributors?

No, sorry, not publically. It would incentivize gaming the metrics.

Can I autoscale fishnet in the cloud?

There is currently no ready-made solution, but an API for monitoring the job queue status is provided.

Protocol

Sequence diagram

See protocol.md for details. Also supports SSLKEYLOGFILE for inspection at runtime.

License

fishnet is licensed under the GPLv3+. See LICENSE.txt for the full license text.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].