wiki:BoincLite

Version 2 (modified by Pepo, 14 years ago) (diff)

Typo

BoincLite: A thin BOINC client library

Peter Hanappe, Sony Computer Science Laboratory

BoincLite de fines the minimum API to realise a simple BOINC client. Its main functionality is to download work units, to upload the results, and to make sure there is always one work unit ready to be executed. It has a fair number of restrictions compared to the existing BOINC manager:

  • It handles only one BOINC project.
  • It doesn't manage the resource usage (CPU, memory, disk) nor the

scheduling between projects and work units. If resource management is needed, the calling application will have to implement it.

  • It doesn't provide any glue for constructing a user interface. Again,

this has to be managed by the calling application.

  • Only one workunit is computed at once and at most one workunit is

waiting to be executed.

  • The downloads and uploads are performed sequentialy.
  • The library doesn't use multi-threading. However, it is straighforward

to spin of separate threads for the scheduler for and the computation of the work unit so that they run parallel to the main thread.

The library consists of four components: BoincScheduler, BoincProxy, BoincCon guration, and BoincHttp (see Fig. ).

BoincHttp is a thin abstraction layer for handling HTTP requests. It is used as a portable layer that can be easily implemented on top of existing HTTP libraries, such as libcurl on Linux or libhttp on CellOS.

The BoincCon guration is another shallow abstraction layer. It man- ages all the confi guration data needed by BOINC, such as the user ID, the authenticator string, but also the disk usage or the FLOPS of the host machine.

BoincLite source code and documentation are here:

svn co http://boinc.berkeley.edu/svn/trunk/BoincLite