# BOINCpe: Live-CD for BOINC

### BOINCpe has been deprecated since 2007 (feel free to use as is)

With BOINCpe you can run a dedicated BOINC machine in-RAM (using a RAM disk) starting from only 256 MB of total RAM. This is useful to operate your BOINC farm more energy-efficient (without HDDs) or to temporarily activate machines without hard disk drives (HDD) for BOINC.

You only need the following components for a fully capable BOINC crunching machine featuring low power consumption:

• Mainboard + CPU
• at least 256 MB of RAM
• Network interface card (optional: PXE compatible)
• CD-ROM drive (only if booting from CD)

BOINCpe is based on BartPE and, therefore, on a preinstalled Microsoft Windows® environment. It is as light-weight as any Windows can be. There is no 24 hour limit for operation like in WinPE. Of course, you need a proper license for the Windows version you are running (XP Home is sufficient). BOINCpe itself is free!

In combination with a BAM (BOINC Account Manager) Account, it is extremely easy and comfortable to integrate new machines. Basically, it is copying a couple of files (~4 of them), burning the CD and booting up…

## Further information

BOINCpe is released with permission by Bart Lagerweij who is the inventor of BartPE. Furthermore, BOINCpe utilizes a special version of QSoft Ramdisk provided by Christiaan Ghijselinck as well as the cron service by Gerhard Kalab.

Thanks for your cooperation and those great tools.

Therefore, BOINCpe underlies the common copyright of the authors of its parts. It can, unfortunately, not be redistributed or modified without the written permission of these authors.

## Like BOINCpe?

﻿

### 44 thoughts on “BOINCpe: Live-CD for BOINC”

1. Alessandro Freda

I’ve only a boot CD drive + 128Mb RAM and USB port + an old 128Mb flash pendrive. Is it possible to create the ramdisk on the pendrive ?

2. Torben Post author

Hi Alessandro,

there is a way you could do this. But I didn’t try it, yet.

Actually, BOINCpe only needs a volume with at least 128 MB of (free) disk space. It doesn’t matter if this is a RAM-Disk or a pendrive.

You could try the following:
1. Set RAM-Disk size to something like 2 megabytes (see FAQ for instructions)
2. Disable BOINC Persistency Service Plugin in PEBuilder
3. Connect your pendrive before booting up (BartPE does not support PnP device detection after it was already started!)
4. Close BOINC after it started immediately after bootup.
5. Check what drive letter your USB pendrive has assigned (e.g. “C:\“)
6. Copy the BOINC data files from the CD (directory: X:\BOINC\Data) to your pendrive: e.g. C:\BOINC
7. Open the Run Dialog (Go/Run) and type:

start /low %BOINCclient%\boinc.exe -dir C:\BOINC

(if C:\BOINC is the correct path to your data on the pendrive)

I hope this works. Good luck.

Regards,
Torben

P.S.: Please note that flash drives have a limited amount of write cycles. This means, that the pendrive might be worn out pretty soon…

3. Simon Zadra (KWSN - Chicken of Angnor)

Hi Torben,

I thought of a workaround for the persistency service. Basically, all you need is to start file sharing and to share all drive roots before BOINC runs; then you can add your own host like \\boincpe\c and it will work fine.

All you need is to edit penetcfg.ini and add to the [Filesharing] section –

; Automatically start file sharing service – required for UltraVNC! (Yes|No)
StartFileSharingService = Yes
; Automatically share all drive roots (Yes|No)
ShareDriveRoots = Yes

Don’t know whether you already thought of a way to do it, but this would be pretty simple – it works for me.

4. Torben Post author

Hi Simon,

that’s one hell of a good idea! I hope to include this with the next upcoming release.

Thanks,
Torben

5. Thomas Walton

(not sure prior comment worked)

I love it!

Can you replace the RAM disk with a shared network folder? I’ve got a hacked version of your work which does just that and I thinks it’s a better alternative to using the Persistency Service.

Email me for details or search for BoincPE at my web site.

Thanks for the good work!

6. Torben Post author

Hi Tom,

thanks for posting your hack. Actually, using a network share was one of my very first thoughts as well. However, there are some reasons why I don’t think this is the best solution. For starters, this makes the BOINCpe host highly, highly dependent on the host serving the data. Some of my early tests showed that the BOINC client (or some of the science apps) completely crashed/stopped working once the network connection was reset. Now imagine 7 hosts needing maintenance everytime something goes wrong with the single serving host or the network in between.
Then, the RAM disk is incredibly fast compared to HDD or a HDD via network. Science apps with short-interval checkpointing will possibly speed up using the RAM disk. And last but not least I don’t want to bloat it with options. Currently, BOINCpe is cool because it’s easy to set up…

Anyway, BOINCpe clearly follows a long-term strategy (also see the FAQ). Possibly, you are worried about power failures and the loss of data. That’s usually the first issue when talking about RAM disks. Now please ask yourself, when did you have your last power failure? BOINCpe is intended to run your farm – without further maintenance. The majority of my BOINCpe hosts currently has an uptime of about 12 weeks without interference. Even if I had a power failure – I wouldn’t bother. You loose some WUs for this single day. Who cares?
The host will run for another 364 days without power failure. You will not even notice the drop in your RAC… 😉
It’s BOINC – not your life support system. And as far as I can tell so far, this strategy went well for about 8 months now. 🙂

So don’t bother using a RAM disk. It’s a good thing – not a bad one… 😉
You will get a more configurable Persistency service in the next versions, as discussed in the comments. Then you can set the backup interval to something like a couple of minutes. I think this is the better solution if you want to go for sure.

Sorry for the long text. But I know it’s something quite some people think about the same way…

Regards,
Torben

EDIT: I did some refinements to the explanation of the persistency service and added a diagram at: BOINCpe Advanced configuration. I hope this makes things a lot easier to understand how it actually works…

7. Thomas Walton

A sound argument for using a ramdisk for performance and data integrity (I’ll stop using my hack).

Is it possible to automatically adjust the size of the ram disk during installation based on the current availiable memory to avoid making different installations for 256/384/512/1024+mb memory configurations?

The only other machine specific change I make is the host name–anyway to automate this by using the mac address or something else which is unique at load time?

8. Torben Post author

Hi,

regarding dynamic RAM disks:
automatic adjustment is not supported at the moment. There is a BartPE plugin called “AutoRamDiskResizer” by Sherpya available here.

Some time ago, I didn’t get it to work immediately. And then I didn’t have enough time to look further into it. You might want to try it and tell us your findings. 😉

As I said in the FAQ: half of the installed RAM is a reasonable size for the RAM disk.

regarding dynamic hostnames:
Currently, I don’t have a good idea how to solve this in an easy and elegant way. Sorry… 🙁
Ideas are welcome.

Regards,
Torben

9. Thomas Walton

Hi,

Dynamic Host Names:

A good way is to ask the creator of PENetCfg to add a dynamic host name option which would get its clues from the motherboard info.

As an alternative, but more complex method is to use the SIW plugin and extract from the log file ‘CPU Code Name’ and motherboard ‘Model’. Then create the PENetCfg configuration files on the ramdisk and then start networking.

Do either of these ideas make sense?

Thanks,
Tom

10. Torben Post author

No need for that. I might have an idea now:
I guess it’s all about dynamic selection of PENETCFG profiles. One could include different profiles for all hosts intended to be run using BOINCpe. Each profile can then contain not only different hostnames but also different network settings.

Should be feasible. I’ll check on this as soon as I got time…

EDIT: I tried it today. Doesn’t work because we need to know the MAC address before the driver for then NIC is installed. The problem is that the driver installation and the network configuration is performed by the same tool (penetcfg) directly after each other. No way for me to interfere… 🙁

I wrote an email to Pierre, the developer of penetcfg. Time will tell…

11. Thomas Walton

In global_prefs_override.xml you set ‘disk_max_used_gb’5.0’/disk_max_used_gb’, try 0.120. It looks like you didn’t leave enough space for log growth (normal operations/unexpected debug reports) and possible infrequent checking by client applications of free disk space. With such limited storage, you should ‘warn’ them (0.120), then when they crash you can tell them it’s a bug 🙂

Good luck connecting to your machine again. My machines haven’t been running that long, I keep changing their BoincPE disks as I’ve been experimenting with different configuration settings.

12. Torben Post author

This host doesn’t have the global_prefs_override.xml, yet. So, this can’t be the reason. 😉

Anyway, the “disk_max_used_gb” setting is ignored as long as the disk is smaller than the specified value (5 GB). It’s better to simply configure the “disk_min_free_gb” since this one is independent of the disk size.
Anyway, the logfiles should be considered inside the disk space calculations since the setting represents the amount of space not touched by BOINC.

It explains everything related to the configuration parameters. This is essential to understand when working with small RAM disks.

Regards,
Torben

13. Joshua W.

This is a amazing and cool piece of software. I can’t wait to try it out. I wonder if it can be used to search and categorize waves measured with the pceeg.

14. Bruce

Is there a way to adjust the timing for the “persistancy service”. I looked around, and could not find anything. I’d like to change the interval to hourly if possible.

15. Torben Post author

Hi Bruce,

in the next version, BOINCpe will support for easy configuration of the persistency service parameters.

Currently, I hardly have the time to release it. Hopefully, I’ll manage by next week or so.

Sorry,
Torben

16. John37309

Hi, another boinc user told me about this website and i am very impressed. I might try to do this myself, but i deffinatly have another friend that is going to love this website. Even though everything is explained quite well, i will still have to read it very carefully to see if i have the tech ability to be able to set up this BOINCpe thing.
Thanks, John.

17. Alex

Hello
I tested boincpe, and my Asus p5b, which has a realtek network card, it wont get detected.
Thank you

18. Torben Post author

Hi Alex,

please have a look at the first point in the BOINCpe FAQ. There you will find information on how to integrate the necessary drivers.

Cheers,
Torben

19. CreuX

Torben,

First of all love the app. I got it working good via a CD.

But my orignal intent was to use it via PXE. I had to use the ramdisk.sys and ramdisk.inf off the server2k3 sp1 disk to get it to work.

Problem is it has a direct conflict with the built in Qsoft ramdrive and b:\ is missing after boot up. Is there a way to alter the plugin to run off the ramdrive created during the pxe boot instead? Where would I start.

Thanks

20. Torben Post author

v5.10.18 is an unstable. I actually plan to provide an update once the final version of the v5.10.x branch is available.

Sorry, but I’m rather occupied with my thesis and some traveling at the moment.
Worst thing is that I don’t have a testing infrastructure here (my cluster is back in Germany). So I can only run some superficial tests in a virtual machine from here which might not show some problems concerning the new cron engine for the persistency service… 🙁

21. eaglescouter

I am trying Boinc.Pe for my first time. It easily booted up a test machine and launched boinc.

Questions:
1. How can I make the CD automatically attach to the SETI project, with my user ID and password?

2. How can I integrate the optimized seti client into this CD?

Thank you.

22. Torben Post author

Hi eaglescouter,

regarding 1.
Please check the Advanced configuration section for instructions how to use BAM!. This will enable automatic configuration based on your user.

regarding 2.
optimized client applications are usally copied into the installation directory of the BOINC client, right? You should be able to copy the files to the following directory before building the image:
.\plugin\BOINC_client\client\Standard\

Cheers,
Torben

23. ThePhantom86

I’ve tried this but BoincPE won’t load. I insert the CD and it says Inspecting Computers Hardware then does nothing.

24. Torben Post author

Hi Phantom,

did you enable the multi-processor (SMP) plugin for the image used on a non-SMP machine?

A known problem is, that the SMP capability of a host needs to be known a priori… 😐

Please reconfirm if this was the issue. Thanks,
Torben

25. Torben Post author

It should work with a Pentium D. Does it, on the other hand, work with the multi-processor plugin disabled (limited to one core)?

26. ThePhantom86

I don’t think I was holding my mouth right, I got it working last night. I still have some tinkering to do though.

Torben,
First, Thank you for your hard work on this project. I am seeing something that I cannot figure out. When I boot the cd with the account manager and the persistency built in, the Boinc manager comes up and starts an “Attach to Project (local override)” wizard. Nothing I do prevents it. Any suggestions? I was going to try to skip loading the Boinc manager and use the boinccmd.exe by making a little script but, I do not know what series of commands I should use.

Thanks Again, and best of luck on the thesis.

28. Brian

Hi Torben

After a few power outages, and loss of some workunits, I think I might be on to something. Some Boinc projects tasks only take about 3 hours to run. So even persisting the data to a network share every 24 hours will result in some loss of WU’s. Also, you can never be sure the state of the data when the persistency service runs is a ‘valid’ checkpoint. Also when having several machines run their backup at once, it saturates the 100MB network. So what I have decided to do is eliminate the persistency service altogether, and instead, when mapping the network share, I just set that directory (the folder with the machines unique MAC id) as the BOINC data directory. And voila! No more lost workunits (even when power is restored, the last checkpoint has almost always worked, and no more duplicate ID’s). Also network traffic is much slower, and nearly unnoticable hard drive activity. Even when 2 machines are downloading new workunits, even the slowest hard drive can more than keep up with the data flow off the internet (very few people in the world have more than 10-25MB sustainable download speeds). Here is the main modifications I made to a couple batch files:

First is inti_boinc:

@ECHO OFF

REM This File is launched from PeNetCfg.ini (section [PostNetAutoRun])

ECHO.
ECHO Setting BOINC paths…
ECHO ======================
ECHO.

SET BOINCbase=%SystemDrive%\BOINC
SET BOINCclient=%BOINCbase%\Client\Standard

CALL setSysVar BOINCbase %BOINCbase%
CALL setSysVar BOINCclient %BOINCclient%

ECHO.
ECHO Processing Network Share Data
ECHO.

CALL %BOINCbase%\Persistency\network_share_data.bat
SET ERRORLEV=0
SET PersistDrv=T:
SET PersistDrvBase=Q:
CALL setSysVar PersistDrv %PersistDrv%

for /f “tokens=1 delims=;” %%i in (‘%BOINCbase%\Persistency\GetMACAdapters.exe’) do Set MAC=%%i

ECHO.
CALL setSysVar MAC %MAC%
ECHO.
ECHO Mapping temporary share %PersistDrvBase%…
net use %PersistDrvBase% “%Share%” “%Password%” /user:”%User%”

if exist %PersistDrvBase%\%MAC%\ goto ShareExists
if exist %PersistDrvBase%\ goto CreateFolder

SET ERRORLEV=1
ECHO.
ECHO FAIL: Share %Share% does not exist…
ECHO.
goto end

:CreateFolder
ECHO.
ECHO Creating dir based on MAC address…
md %PersistDrvBase%\%MAC%

:ShareExists
ECHO.
ECHO Removing temporary share %PersistDrvBase%…
net use %PersistDrvBase% /delete
ECHO Mapping share %Share%\%MAC% to %PersistDrv%
net use %PersistDrv% “%Share%\%MAC%” “%Password%” /user:”%User%”

SET BOINCdata=%PersistDrv%\Data
CALL setSysVar BOINCdata %BOINCdata%

if exist %PersistDrv%\Data goto launch
xcopy %BOINCbase%\InitData\*.* %BOINCdata%\ /e /s /v /y /h /r /d

:launch
ECHO.
ECHO Launching BOINC
ECHO ===============
ECHO.
REM Start BOINC launcher

CALL %BOINCbase%\Client\launch_boinc.bat

:end
EXIT

29. Brian

Then launch_boinc was modified slightly (the new client 10.45 doesn’t like the switch “return_results_immediately”:

@ECHO OFF

start /D%BOINCclient% /low %BOINCclient%\boinc.exe -dir %BOINCdata%

start /D%BOINCdata% %BOINCclient%\boincmgr.exe

:end
EXIT

30. Brian

Next I moved the 2 batch files, load_boinc_data, and persist_boinc_data out of the “Files” subdirectory so those 2 options would be correctly greyed out in the NU2 Menu.

Also the restart and shutdown commands modified to remove the calls to the persistency service:

NT Shutdown command script:
@ECHO OFF

ECHO Shutting down BOINCpe now…..
ECHO ==============================
ECHO.

@%systemroot%\system32\nu2shell.exe -s

EXIT

and NT reboot command script:
@ECHO OFF

ECHO Rebooting BOINCpe now…..
ECHO ==========================
ECHO.

@%systemroot%\system32\nu2shell.exe -r

EXIT

31. Brian

So far (about 1 week) everything is working good, and I this will be much easier and cheaper in setting up a headless and diskless ‘farm’. First the main advantage is more consistent uniform network traffic, more reliable restarts in the event of a power failure. Also, the size of the Ramdisk can be greatly reduced, allowing the machines to be built with probably as little as 512KB of ram (256+256 Ram drive). The RAM drive is still needed to allow for the creation of some folders that WindowsPE needs, like the My Documents folder etc. What I did to reduce hard drive activity is set global preferences in either a Account Manager or the project itself is to set the “Write to Disk at most every XXX seconds” paramenter to about 600 (10 min) on all “slave machines”. This is like persising every 10 min, but only changing files that are needed, rather than re-writing and backing up of the entire Network Share, which is time consuming, and can easily saturate a 100MB LAN.

Cheers!

32. Brian

This is for Markcbq

There really is no such thing as a “XP” or “Vista” computer. Any system that will run Vista will work just fine with the ‘mini-XP’ that BartPE uses. Just be sure to use a Windows XP CD when building the image, dont use a “Vista” CD. You might need to put a driver for the network card into the proper folder in BoincPE before building it.

33. Pieter

Do I understand correctly that it will only work on PC’s with a CD-ROM and Windows installed, or is that just for the server side?

34. iGnUs

Hi, Torben
i’m fan of boincpe,started my farm with BOINCpe help everything work very well, but now i want to expand farm to CUDA support BOINCpe.I tried to add cuda driver on Bartpe myself with no luck.
i’ve search all forum (related to bartpe)and still no luck, so please guide me how to install cuda driver into BOINCpe

Thank you,

35. bernhard

hi,
ist es auch möglich diese auf einen pc auszuführen der offline ist ?
gruß

36. odicin

Naja, du müsstest genug WU’s deines Projektes cachen, für welches du rechnen willst. Über die BOINC-Prefs kann man das ja einstellen. Musst dann aber mit der Deadline bei einigen Projekten aufpassen.

Vor allem muss der Rechner am Anfang erstmal online sein, damit er sich die WU’s von deinem Projekt holen kann. Komplett offline geht also nicht.

Gruß Odi

37. Daniel DellServers