2 WorkShop11_HackFest
Vitalii Koshura edited this page 2023-04-12 06:01:38 +02:00

Hackfest

The 2nd day of the BOINC workshop will be a "hackfest", in which we divide into groups and get something useful done. Possible activities include:

  • design something
  • write code
  • get existing software to work
  • write or improve documentation.

Each group will have a coordinator, who will define the goals and prepare resources.

Workshop attendees: please register for one or more hackfest groups by editing this page. If you don't see a group that interests you, create one.

If you don't participate in a group, you'll have nothing to do on the 2nd day of the workshop.*******

Possible Hackfest groups

Here are some possible groups. I have filled in names of possible coordinators; this is completely flexible.

Multi-user projects: Interface

Goals:

  • Use BOINC's new features for remote job submission and multi-user projects.
  • Discuss the design of these features; compare with analogous system, both BOINC- and Grid-based. Improve and extend the design.
  • Implement and document some of the improved design.

Coordinator: David Anderson

Participants:

  • David Coss
  • Evgeny Ivashko
  • Natalia Nikitina
  • Alejandro Rivero
  • Francisco Sanz
  • Dario Ferrer
  • Fubica
  • Oscar Díaz
  • Pablo Fonseca
  • Christian Benjamin Ries

Advance preparation:

Notes on the proceedings.

Multi-user projects: Scheduling

Goals:

  • Review and discuss BOINC's new proposed features for user quotas and batch scheduling
  • Compare these features with those of analogous Grid-based systems
  • Design an implementation of these features
  • Implement some part of this

Advance preparation:

Coordinator: Kevin Reed

Participants:

  • Arnaud Legrand
  • Derrick Kondo

BOINC on Ubuntu

Goal: bring the BOINC client for Ubuntu up to the same standard as the Windows and Mac versions. In particular:

  • One-click installation
  • Client start at boot time
  • Screensaver
  • User activity detection

Coordinator: Steffen Moeller

Participants:

VM apps

Goal: Create a "cookbook" for deploying virtual machine apps.

Coordinator: Rom Walton?

Participants:

  • Steffen Moeller
  • Jesse Kaukonen

OpenCL apps

Goal: Create a "cookbook" for deploying OpenCL apps.

Coordinator: Oliver Bock

Participants:

  • Heinz-Bernd Eggenstein
  • Christian Benjamin Ries

Results:

  • Working code samples for NVIDIA and AMD can be found in the BOINC source tree under /src
    • The samples should probably be unified/consolidated (kernels might differ for NVIDIA and AMD of course)
    • We tested both samples on AMD and NVIDIA GPUs respectively - success
  • There's a wiki page describing how to build the samples on Windows, Linux and Mac OS
  • Missing in the current client
    • Enumerate all OpenCL platforms/devices, keep them in a list (array)
    • Pass the list IDs of the platform/device to be used by the science app (as an integer)
    • Provide two API calls: taking the list ID, returning the cl_platform_id and the cl_device_id (opaque complex types, required by science app to create OpenCL context)
    • Make sure OpenCL and CUDA as well as OpenCL and CAL apps don't collide (use the same resource/GPU)
    • Make sure multi-vendor GPU setups (single host system) are supported (does apply to Mac OS, probably to also to Windows 7. Linux doesn't support drivers from different vendors, correct?)
  • There are a number of lessons learned available at Einstein@Home with respect to AMD and NVIDIA driver issues related to OpenCL:
    • AMD's APP SDK < v2.4 for Linux provides libOpenCL.so but not libOpenCL.so.1 which not really standard-compliant. This is bad when an app was built with NVIDIA's OpenCL SDK but run on an AMD OpenCL system. Fixed in APP SDK 2.4.
    • AMD's Catalyst driver < 11.3 provides no OpenCL runtime components. This means users have to install the APP SDK (no-go for volunteer computing). Fixed for Windows in Catalyst 11.3, fix for Linux still pending.
    • AMD's OpenCL implementation requires a running X server on Linux, NVIDIA doesn't. This is clearly a major disadvantage for cluster/grid system that often don't have an X server installed/running. Still not fixed, might be fixed for FireStream (non-consumer) devices only!
    • AMD's Catalyst driver 11.4 is buggy as it returns 0 when clGetDeviceInfo() is called for CL_DEVICE_MAX_CLOCK_FREQUENCY. Current status unknown.
    • AMD's Catalyst driver installer on Linux is buggy and requires a workaround to prevent it from crashing: export MALLOC_CHECK_=0
    • Apple's OpenCL 1.1 support is available as of Mac OS X Lion (10.7). Up to Snow Leopard (10.6) only OpenCL 1.0 is supported.
    • Apple's OpenCL 1.0 (<= 10.6) support is/seems buggy on AMD GPUs. Their own FFT sample code doesn't work properly (does on 10.7). Bug report sent, no reply.
    • NVIDIA provides proper OpenCL 1.1 support as of driver version 280.13 only. Previous driver provided only limited and somewhat buggy OpenCL 1.1 support.

BOINC on Android

Goals:

  • Learn how to set up a development environment for Android
  • Complete the design of the BOINC client for Android; implement some part of it
  • Create a cookbook for developing an app version for ARM/Android.

Coordinator:

  • Keith Uplinger

Participants:

  • Peter Hanappe
  • Michael Tarantino

Results:

  • We were able to set up a development environment for Android on Windows. Installing Eclipse with the SDK and the NDK.
  • Proved that some of the main basic functions of BOINC can be done.
  • Compiled and ran a binary file that was downloaded from the internet on the Android emulator.
  • The writeup of the steps taken are here: Android example writeup

[Hi, Carl Christensen here - this is an area I am currently working on i.e. porting BOINC to Android via the NDK, and writing a BOINC Android (Java) GUI to communicate with the libraries via JNI. Unfortunately could not make it to the BOINC Workshop. If anyone is interested or has anything to report or share or suggestions please email me at carlgt1 at yahoo.com ]

Attic

(Attic is a peer-to-peer file distribution system designed for volunteer computing systems).

Goals:

  • Complete the design of BOINC support for Attic.
  • Creating a working demo of a project that uses Attic
  • Document this in cookbook form

Coordinator: Ian Kelley

Participants:

Website UI Improvements

Goals:

  • Improve organization of the BOINC project server UI. Session focused on the interior pages.

Participants:

  • Christian Beer
  • Matt Blumberg
  • Erwan Keribin
  • Torbjoern Klatt
  • Steffan Moller

Results:

  • The main work product of the session was a revised outline of the site, which can be found here. update: 2011-09-05
    • (Click on any node in the site map for additional details)
    • (Any further comments in welcome: In the "details" pages, reply to existing comments and/or highlight any text and click insert > comment
  • Additional notes / questions are posted here. update: 2011-09-05

Volunteer storage

Goals:

Coordinator: ?

Participants

  • Neil Massey
  • Andy Bowery

Back to the main page for this event (with capital S)