Differences with BOINC


BOINC is a very powerful system designed to solve problems of large magnitudes and can sustain consistently heavy loads for decades. However, we were faced with problems that take weeks and differ each time. Clearly using BOINC meant setting up a complex system, writing sophisticated modules through their API, compiling binaries for almost each platform that we may encounter on our campus, etc. This would have to be done for each problem, each time. And we were not using even 5% of the complex flexibility offered by BOINC.

So we set out to develop our own architecture that would be simple to setup, simple to add problems to (simply upload files from a web-based interface), simple to port (we use Java), and not too flexible (the whole dazzle of blocks from BOINC are simplified to two blocks with approximately 5000 lines of code only). Our system is very simple when it comes to heavy loads and was not designed to sustain too much pressure for more than a few months. After every few months, we expect the problem to be solved and a new problem to be queued up in the meantime. Our security measures and encryption measures are also quite elementary.

Here are the main features of our system:

1. Java based architecture allows a single problem solving plugin to work across multiple platforms.

2. Problems can be queued into the system through a web-based interface.

3 Problems can be coded using a VERY simple and small API and are packaged as jar files that are dynamically linked into the system during runtime.

4. Web-based interface allows querying monitoring of very high granularity statistics of the system.