Distributed Systems Meetup

Call for Proposals

Folding@Home on Kubernetes in the Cloud

Submitted by Ishaan Malhi (@imalhi) on May 28, 2020

Status: Submitted

Abstract

Folding@Home is a distributed computing project that uses idle compute time to run protein simulations. Recently, they have concentrated their efforts to prioritize Covid-19 research (https://foldingathome.org/covid19/). In this talk, I go through how to deploy Folding@Home client workers on your Kubernetes clusters to donate idle compute time across your cluster.

Outline

  1. What is Folding@Home: A brief overview of the project and it’s importance as well as exploring the underlying distributed systems concepts.
  2. Covid-19 and Protein Simulation Workloads and their Challenges: How do protein simulation workloads work and their relevance to Covid-19.
  3. Spinning up Folding@Home workers on your nodes via Deployments and DaemonSets: Diving into setting up workers on your clusters, pitfalls, and edge cases to avoid, as well as ensuring workers are used only during idle time.
  4. Summary and Future Work: Maintaining Helm charts, following the Folding@Home project.

Requirements

  1. A running Kubernetes cluster (preferably cloud based and not minikube) with kubectl access privileges to create daemonsets and deployments
  2. A stable internet connection
  3. (Optional) A cluster with access to GPU nodes/cloud account with GPU node access. If you want to run workers on GPU nodes, make sure that your GPU node service limits are non-zero.

Speaker bio

Ishaan is a Master’s student in the EECS department at UC Berkeley, researching robustness in Deep Neural Networks. He previously helped build a fast growing ticketing startup in India, where he led a team in scaling the backend infrastructure to serve some of the largest ticketed events in the world. He’s currently applying AI in Healthcare at the Stanford ML Group and creating the data science infrastructure at UC Berkeley’s Discovery Research Program.

Links

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}