BOINCpe: Live-CD for BOINC

BOINCpe-Logo

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…

Download

Screenshots

BOINCpeBOINC Manager (BOINCpe)boinc.exe (BOINCpe)BOINCpe Plugins (PE Builder)

Further information

 

Credits & License

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 Gedanken zu “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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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.

    Please read the following Wiki article: http://boinc-wiki.ath.cx/index.....references
    It explains everything related to the configuration parameters. This is essential to understand when working with small RAM disks.

    See also: http://boinc-wiki.ath.cx/index....._Structure

    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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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 Artikel Autor

    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.

  27. Brad

    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%

    ECHO This system’s MAC addresses:
    %BOINCbase%\Persistency\GetMACAdapters.exe
    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. Pingback: Idee 64-Bit-BoincPE auf Basis von Vista_x64 - Meisterkuehler.de - Wasserkhlung fr PC

  35. 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,

  36. Pingback: Ubuntu Live CD entfernen? - SETI.Germany Forum

  37. Pingback: Fancy a BOINC? Part 3 – software « Nothing is more effective!

  38. bernhard

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

  39. 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

  40. Daniel DellServers

    Hi! I’m working for IT company which is building blade servers (just hardware so don’t have operating system on them). It would be nice stress test them on something more useful then just prime numbers 🙂 I understand that will have to run them separately on each blade now. I assume if I would take out the pen drive to boot up another blade it will not correctly. Would be nice to have something dedicated to run on fly on blade centre. Maximum 16 blades in chassis with dual Xeon six cores in each blade. I can leave it over night for running. We do rackmounts Quad 12 cores from time to time as well so a lot of power is wasting. Another problem – I don’t have internet connection to chassis but in worst case I can organise something but that will be not easy and not always I be able to do so. Another question – does it support blade chassis NIC controller (default onboard one + default in CMC controller). That’s why it will be much better if it will store data on pendrive and upload when internet connection is possible. But BONIC have to create different session for each blade – not calculating the same on each of them. So basically problem is – how to use one pendrive on many machines or use whole blade server as one quickly (Dell M1000e) via usb boot. I look forward to hearing from you soon.

Leave a Reply

Your email address will not be published. Required fields are marked *