= Help libcaca research projects with CPUShare = Image processing research sometimes requires expensive computations, for instance analysing the quality of an algorithm on thousands of different images. You can help the project by selling or donating your idle CPU cycles. We use [http://www.cpushare.com/ CPUShare] for this purpose: it provides all the infrastructure for reliable, secure and anonymous distributed computing. == What computations are currently running? == No computation is running at the moment. Our first massive computation was a study of an interesting property of the Floyd-Steinberg error diffusion algorithm on a pool of 10,000 images. We will present the results at the [http://www.stlo.unicaen.fr/icisp2008/commitees.php International Conference on Image and Signal Processing 2008]. == Getting started == First of all, you need to make sure your kernel was built with '''`CONFIG_SECCOMP=y`'''. This option is activated by default on the upstream kernel. Unfortunately, it is deactivated on official Debian kernels (you can voice your opinion on [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474648 bug report #474648] if you want to use CPUShare). Without this option, it is not possible to run untrusted bytecode securely and CPUShare will refuse to start. If you are using Debian unstable, install CPUShare directly: {{{ % aptitude install cpushare }}} If you are using Ubuntu or another version of Debian, just download one of the following packages: * [/files/CPUShare/cpushare_0.47-3_i386.deb cpushare_0.47-3_i386.deb] (32-bit platforms) * [/files/CPUShare/cpushare_0.47-3_amd64.deb cpushare_0.47-3_amd64.deb] (64-bit platforms) * [/files/CPUShare/cpushare_0.47-3.dsc cpushare_0.47-3.dsc] (source package) Then download our [/files/CPUShare/libcaca-sell.cpu sell order] and put it in `/etc/cpushare/`. If your machine has several CPUs, you can place several copies of the same file in `/etc/cpushare/`, just make sure their names end in `.cpu`. Finally, start the CPUShare daemons: {{{ % cd /etc/cpushare % curl http://libcaca.zoy.org/files/CPUShare/libcaca-sell.cpu -o libcaca-cpu0.cpu % cp libcaca-cpu0 libcaca-cpu1.cpu # optional, if you have two CPUs or two cores % /etc/init.d/cpushare start }}} If you are not using Debian or Ubuntu, you can either try to install and run CPUShare from source (good luck!) or run this Live CD, either by burning and booting it, or by running it in an emulator (see more information [https://www.cpushare.com/wiki/cpushare/CPUShareLiveCD on the CPUShare wiki]): * [/files/CPUShare/libcaca-cpushare-livecd.iso libcaca-cpushare-livecd.iso] Live CD image (5.8 MB) The qemu emulator gives near native performance if you use the kqemu kernel module. Just run: {{{ % qemu -cdrom libcaca-cpushare-livecd.iso }}} == How does it work? == Your machine's idle CPU cycles will be available to CPUShare users. There is no way to know whether your CPU will only be used for libcaca projects, but if you use our `.cpu` file, the CPUCoins earned by running other software will be credited to the libcaca project's account. We will in turn use these CPUCoins to buy CPU cycles on other machines; maybe yours, maybe not. The CPUShare daemons run at a very low priority (`nice -19` by default) but you can stop them at any time if the impact on your system is too important. If you do not like giving CPUCoins directly to the libcaca project, you can create your own `.cpu` file by creating an account on [http://www.cpushare.com/ cpushare.com] and [https://www.cpushare.com/orders/ creating a new sell order]. '''Note: we ''cannot'' use your data, only your CPU. CPUShare is secure and prevents malicious code from using any other resource.'''