Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bounty DRAFT add Docker support to BOINC #13

Open
makeasnek opened this issue Aug 13, 2023 · 0 comments
Open

Bounty DRAFT add Docker support to BOINC #13

makeasnek opened this issue Aug 13, 2023 · 0 comments

Comments

@makeasnek
Copy link
Contributor

makeasnek commented Aug 13, 2023

THIS IS A DRAFT BOUNTY AND NOT LIVE YET
BOINC is a software tool used by scientific researchers to distribute large computational workloads to the computers of volunteers. Currently, they can distribute a native app (compiled for each target platform that the computers of volunteers run) or a vbox image. A native app is great, but requires a lot of work to maintain the different compiled versions. Vbox images make it easier to do broad cross-platform support, but come at a significant performance overhead.

Docker containers would make it easier to distribute cross-platform containerized workunits without the performance loss of virtualbox. Additionally, it would allow researchers using BOINC to pull from docker's vast library of pre-built images instead of having to build the software packages themselves.

You can see the existing Boinc2Docker software which wraps docker in virtualbox as a base for building your solution.

Relevant issue in BOINC repo BOINC/boinc#1620

Requirements to claim bounty:

  • Submit code to BOINC repo and have it approved by maintainers, following all coding standards used by the repo and making any style and other edits requested by them. In the event that your code is not accepted by maintainers but otherwise meets bounty requirements and solves the issue the bounty is for, the bounty will still be paid out. Our organization works directly with the BOINC developers and we have every reason to believe they will accept a well-written pull request.

Your code needs to do the following:

  • Create a new plan class in the BOINC server for docker containers. You can use the existing vbox plan class as a template
  • Create a template docker image which people can use to distribute their work. The docker should include a volume for transferring data in and out of the image. This volume will store the workunit inputs and outputs (or there can be two volumes, one for inputs, another for outputs). The output should include not only the output from the work itself, but any logs created by docker in the process which could be used to diagnose issues starting the container.
  • Make the BOINC client capable of starting, pausing, stopping, and resuming a docker-based workunit. These calls should execute a script in a standard location in the docker image so that it can be modified by researchers to start/stop/etc the tools running within the image.
  • The ability to run docker images in the BOINC client only needs to work on Linux hosts, but should be written in such a way that it can be extended to other operating systems later.
  • When the BOINC client completes the workunit, it should zip the output from the docker volume and send it back to the server, like it currently does with vbox workunits.

Contribute to this Bounty
You can contribute to this bounty by donating to SCI directly. You will get a nice tax deduction, and we will spend those donated funds on our bounty programs. The higher the bounty, the more likely a developer will come along to claim it!

Bounty amount: $200 USD

Payment will be made through PayPal or DAI directly from the SCI upon completion of the work. You will also get the satisfaction of knowing you are helping a software and ecosystem which supports the progress of science.

Claiming bounty

Comment below if you want to indicate you are working on the bounty (though this is not required) or if you have any questions. If the bounty amount exceeds $600 USD equivalent, you will also need to provide us with the requisite paperwork normally completed for contractors for US companies (1099-MISC).

About SCI
The SCI is a US 501(c)(3) non-profit organization dedicated to rebuilding the bridge of participation and trust between the public and the scientific process. We support tools and infrastructure that enable people to learn about and engage with science. Follow our work via our free newsletter on substack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant