Kategorien
Blog Software

Folding@home remote client prototype

Yeah, a first version of the folding@home remote client prototype is ready to go!

The use case of the software is the following :

The available client software for the folding@home project concentrates on making the calculations for the famous protein project. That makes complete sense.

Folding@home remote client
DNA

On the other hand sometimes I also want just to control my clients from the mobile phone. And this problem is solved by the remote client.

The software makes no calculations at all, it just controls the other devices/clients where the calculations are happening.

Features

With the prototype you can already perform the following actions :

  • Add a new client with name, IP address and port
  • Edit the client’s properties
  • Delete a client
  • Select a client and perform the following actions :
    • Select the power used for the calculations
    • Start, Pause and finish folding of a slot
    • While a client is selected, it’s status including multiple properties is pulled in regular intervals

The next actions/features I have in mind :

  • Compile a runnable IOS and Android package
  • Make the GUI more beautiful with e. g. images for the buttons etc.
  • Add another screen for the work unit details
  • Implement a link to the user or show the browser results
  • Implement a link to the project or show the browser results

If you want to contribute just grab the code at https://github.com/hardy2408/FAH_Remote

For the implementation you need the following :

Let me know, if you wanna contribute, not only via a merge request 😉

One test I cannot do with my environment as I only have a laptop with one CPU.

So you can also contribute just with testing in an environment where one server has more than one CPU / GPU. Then the machine would have multiple slots.

Kategorien
Blog Software

Python software project for folding@home remote client

After a long time of not programming and just configuring software – and working as a manager in a heavily growing company – I started a new python software project for the folding@home project.

I was inspired first by the folding@home project itself. This project supports heavily finding new vaccines and other drugs while calculating protein folding activities. These computations are also related to the COVID-19 desease.

So please join and contribute the idle time of your computer(s)@home to the project!

Python software project for folding@home

Second I wanted to learn python for a long time already.

So I thought why not combining these two ideas, specifically during the not so busy corona time (that’s not completely true, as I’m in the luxury position to be still 100% busy at work ;-))

Methods learned

The methods I learned so far are quite a lot:

  • Python programming itself, including object oriented programming (I’m sure there are still plenty of things I don’t know)
  • Kivy, a library for a GUI, based on python, where you are able to produce applications for different mobile operating systems
  • Working with threads in python for regulary polling the clients
  • Virtual environments for python
  • Working with GIT for the first time as a version management system, and using github as a cloud version
  • Implementing a telnet client to connect to multiple processing folding@home clients (the API is sometimes a bit weird)

The idea is to compile an app that can be used on any mobile device to control folding@home clients in your local network – or also from outside your network as long as you have access to the folding@home clients via an IP V4 address.

For the time being you always have to have a folding@home client running at your local machine to control other clients. With my app you can control the clients also just with any mobile device.

I have some long ago experience with C++ and Java, but honestly working with python is much easier and makes much more fun!

Contribute

If you want to contribute to the project, just let me know. I will publish the source code soon on github.

The first prototyp with some GUI and some telnet commands is already running 🙂