Skip to content

A Docker multi-container application that runs a BOINC server

License

Notifications You must be signed in to change notification settings

ispras/boinc_docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boinc_docker

boinc_docker is the easiest way to run your own BOINC server. You can run the server on a Linux machine, in which case the requirements are,

Documentation

boinc_docker is project, that gives an opportunity to run BOINC (Volunteer system) jobs directly in a Docker. The solution is based on boinc-server-docker. It allows to automatically set up a BOINC server in Docker with a special module boinc2docker. Boinc2docker is a plugin written in Python, which allows sending Docker workunits to BOINC clients. The execution of Docker containers takes place inside virtual machine of Virtualbox hypervisor.

New version of boinc2docker is a python module that automates the process of creating BOINC application and sending BOINC workunit. Bash script is considered as executable code for UNIX OS, while bat-file is for Windows. In both cases, the script is run under BOINC wrapper. The content of bash/bat file includes commands to run user-written bash script, which in turn initiates Docker container work. The user's bash script is passed along with the other input files of the BOINC workunit. Downloading a Docker image to a volunteer node can be done in one of two ways: * With the help of docker pull command in a user bash script; * Docker image is downloaded to the BOINC server and sliced into layers. Each layer is packed into an archive and then passed to the BOINC client along with other user input files;

boinc_docker

Start

  1. To start boinc_docker:
git clone https://github.com/ispras/boinc_docker.git
cd boinc_docker
  1. Change IP address from 127.0.0.1 to host's IP address in URL_BASE variable;
  2. In order to get suitable version of BOINC server:
git submodule init
git submodule update
  1. Start building the application:
make up

You can now visit the server webpage and connect clients to the server at http://ip_address/boincserver.

Run BOINC job with Docker

  1. Get in Docker container with BOINC server configured:
docker exec -it boincdocker_apache_1 /bin/bash
  1. Create bash script with Docker/Docker compose commands:

docker_gpu_script

  1. Run bin/boinc2docker_create_work with necessary parameters:

boinc_docker_gpu_workunit

List of the module parameters that are available for user to change are presented below:

  • appname - BOINC application name;
  • new_app - flag for creating new BOINC application. If user wants to send new BOINC workunit of already created BOINC application, the parameter must not be used;
  • image - list of user Docker images. The flag is used, if user wants to send a Docker image as several archives;
  • docker_registry - list of docker login options for using users' docker registry: user, password, docker registry name. The parameter must be used with image;
  • input_files - list of user input files names, except bash script and archive of the Docker images;
  • output_files_names - list of files with computational results;
  • bash_script_path - path to users' bash script;
  • plan_class_name - plan class name;
  • plan_class_new - flag for creating new plan class;
  • use_docker_compose - parameter for plan class, that requires docker-compose (old version) to be installed and available for execution on BOINC client;
  • use_compose - parameter for plan class, that requires docker compose (new version) to be installed and available for execution on BOINC client;
  • gpu_type - BOINC plan class parameter (gpu type);
  • ngpus - BOINC plan class parameter (amount of gpus);
  • min_gpu_ram_mb, gpu_ram_used, driver_versions, cuda_versions, use_ati_libs, use_amd_libs, min_ncpus, max_threads, mem_usage_base_mb, mem_usage_per_cpu_mb - BOINC plan class parameters;
  1. Check the results in upload directory on BOINC server:

boinc_docker_gpu_result

About

A Docker multi-container application that runs a BOINC server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 73.5%
  • CSS 12.8%
  • JavaScript 4.9%
  • Python 4.2%
  • HTML 2.0%
  • Shell 1.4%
  • Other 1.2%