All Projects → richstokes → K8s Fah

richstokes / K8s Fah

Licence: bsd-3-clause
⛑ Run [email protected] on Kubernetes

Projects that are alternatives of or similar to K8s Fah

Fhe Toolkit Linux
IBM Fully Homomorphic Encryption Toolkit For Linux. This toolkit is a Linux based Docker container that demonstrates computing on encrypted data without decrypting it! The toolkit ships with two demos including a fully encrypted Machine Learning inference with a Neural Network and a Privacy-Preserving key-value search.
Stars: ✭ 1,123 (+1147.78%)
Mutual labels:  research
Topics In Deep Learning
Materials for class on topics in deep learning (STAT 991, UPenn/Wharton)
Stars: ✭ 72 (-20%)
Mutual labels:  research
Spam Bot 3000
Social media research and promotion, semi-autonomous CLI bot
Stars: ✭ 79 (-12.22%)
Mutual labels:  research
Container Service Extension
Container Service for VMware vCloud Director
Stars: ✭ 66 (-26.67%)
Mutual labels:  kubernetes-deployment
Kcd
Continuous Delivery for Kubernetes
Stars: ✭ 69 (-23.33%)
Mutual labels:  kubernetes-deployment
Skuba
CLI tool used to simplify (or orchestrate) kubeadm-based Kubernetes cluster deployment and update
Stars: ✭ 76 (-15.56%)
Mutual labels:  kubernetes-deployment
Instapy Research
📄 Research repository for InstaPy
Stars: ✭ 60 (-33.33%)
Mutual labels:  research
Theseus
A modern experimental OS written from scratch in Rust to explore novel OS structure, state management techniques, and how to maximally leverage the power of language by shifting OS responsibilities into the compiler.
Stars: ✭ 1,273 (+1314.44%)
Mutual labels:  research
Keras Shufflenet
ShuffleNet Implementation using Keras Functional Framework 2.0
Stars: ✭ 69 (-23.33%)
Mutual labels:  research
Network Threats Taxonomy
Machine Learning based Intrusion Detection Systems are difficult to evaluate due to a shortage of datasets representing accurately network traffic and their associated threats. In this project we attempt at solving this problem by presenting two taxonomies
Stars: ✭ 79 (-12.22%)
Mutual labels:  research
Gubbins
Rapid phylogenetic analysis of large samples of recombinant bacterial whole genome sequences using Gubbins
Stars: ✭ 67 (-25.56%)
Mutual labels:  research
Ai Residency List
List of AI Residency & Research programs, Ph.D Fellowships, Research Internships
Stars: ✭ 69 (-23.33%)
Mutual labels:  research
Hyperlearn
50% faster, 50% less RAM Machine Learning. Numba rewritten Sklearn. SVD, NNMF, PCA, LinearReg, RidgeReg, Randomized, Truncated SVD/PCA, CSR Matrices all 50+% faster
Stars: ✭ 1,204 (+1237.78%)
Mutual labels:  research
Speedrun
Research code need not be ugly.
Stars: ✭ 65 (-27.78%)
Mutual labels:  research
Unity Experiment Framework
UXF - Framework for creating human behaviour experiments in Unity
Stars: ✭ 81 (-10%)
Mutual labels:  research
Vln Ce
Vision-and-Language Navigation in Continuous Environments using Habitat
Stars: ✭ 62 (-31.11%)
Mutual labels:  research
Python nlp tutorial
This repository provides everything to get started with Python for Text Mining / Natural Language Processing (NLP)
Stars: ✭ 72 (-20%)
Mutual labels:  research
Morphogenesis Resources
Comprehensive list of resources on the topic of digital morphogenesis (the creation of form through code). Includes links to major articles, code repos, creative projects, books, software, and more.
Stars: ✭ 1,278 (+1320%)
Mutual labels:  research
Pyndri
pyndri is a Python interface to the Indri search engine.
Stars: ✭ 85 (-5.56%)
Mutual labels:  research
Deploy
Deploy Development Builds of Open Cluster Management (OCM) on RedHat Openshift Container Platform
Stars: ✭ 78 (-13.33%)
Mutual labels:  kubernetes-deployment

k8s-fah

Run [email protected] on Kubernetes.

The [email protected] project added support for the Corona virus (2019-nCoV).

This deployment lets you run [email protected] on Kubernetes, should you have any spare cluster-power you'd like to donate.

Note: COVID-19 work units are currently being prioritized, however the [email protected] client is liable to select jobs for other diseases too.

If/when they add an option to work only on COVID-19, I will update the deployment here to do so (until the pandemic is over).

 

Overview

There are options to run this on CPU, GPU or a combination of both.

To use these deployment sets that uses GPU's to fold with, I assume that you have a working k8s cluster that have nodes with either 1 or more NVIDIA GPUs in them. (AMD have not been tested).

We are using the same prerequisites as the k8s-device-plugin

  • NVIDIA drivers ~= 384.81
  • nvidia-docker version > 2.0 (see how to install and it's prerequisites)
  • docker configured with nvidia as the default runtime.
  • Kubernetes version >= 1.10

 

Installation modes

Only CPU

The default install deploys 2 replicas, limited to using 1 CPU core each.

kubectl apply -f https://raw.githubusercontent.com/richstokes/k8s-fah/master/folding-cpu.yaml

Only GPU (Nvidia)

The default install deploys 2 replicas, limited to using 1 GPU in each pod.

kubectl apply -f https://raw.githubusercontent.com/richstokes/k8s-fah/master/folding-gpu.yaml

Both CPU & GPU (Nvidia)

kubectl apply -f https://raw.githubusercontent.com/richstokes/k8s-fah/master/folding-gpu-cpu.yaml

Minikube (CPU only mode)

Runs 6x replicas, 1 CPU core each.

kubectl apply -f https://raw.githubusercontent.com/richstokes/k8s-fah/master/folding-minikube.yaml

I like to give my minikube cluster extra resources with:

minikube config set cpus 6
minikube config set memory 8192
minikube delete && minikube start

 

Tested GPU's:

  • NVIDIA
    • NVIDIA GeForce GTX 1080
    • GeForce RTX 2080
    • Tesla K40m
    • Tesla K80
    • V100
  • AMD
    • ... If you have tested this on AMD GPU's, please make a PR accordingly and update the list!

 

Rancher

If you have Rancher, you can easily install by searching for "folding" in your Rancher app catalog.

 

DaemonSet

You can also run this as a DaemonSet (runs one replica per node) with:

kubectl apply -f https://raw.githubusercontent.com/richstokes/k8s-fah/master/folding-daemonset.yaml

There is a tolerations section in this .yaml you can uncomment in order to also run FAHClient on master nodes if you wish.

To enable GPU with the daemon set, uncomment the nvidia.com/gpu: "1" lines from folding-daemonset.yaml before applying.

 

Customizing

Set the replica count and resource limit as appropriate depending on how much CPU you wish to donate. In my testing, memory load has been reasonably low (<512Mi).

I've also added the framework for a PriorityClass, so that K8s may preemptively evict [email protected] pods if a higher-priority pod needs resources.

 

config.xml

The most compatible way to edit the config.xml is by modifying it's values and creating your own Docker image.

You can override/mount as a configMap in Kubernetes (you can see the scaffolding for this inside the manifests), however FAHClient seems to what to copy/move this file around, which doesn't work if the file is mounted.

You'll get a bunch of errors from the FAHClient if you do this - there may be a better way to manage the config file - PRs welcome!

 

Credits

Special thanks to Bendik for his work on supporting GPUs and general tweaks to the configs.

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].