Version 42 (modified by 13 years ago) (diff) | ,
---|
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:
- Research analogous existing systems
- Test-drive BOINX's remote job submission system: http://isaac.ssl.berkeley.edu/test/submit_example.php (log in as guest@…, password "guest").
- Read the documentation: RemoteJobs and PortalFeatures
- Review the source code:
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:
- Read the design doc: http://boinc.berkeley.edu/trac/wiki/PortalFeatures
Coordinator: David Anderson? 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:
- David Coss
- 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-comsumer) 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:
PHP hack session / website improvement
Goals:
- Find a new design/usage concept for the general webpages
- develop 1 or 2 alternative web site "themes" using CSS stylesheets and header/footer functions
- Discuss tools to document/visualize php source code (present/discuss/find tools everyone can use)
- Collect ideas to design an API to plug other websites into the BOINC framework (or vice versa)
- general bug hunting and code hardening
Coordinator: Christian Beer
Participants:
- Erwan Keribin
Volunteer storage
Goals:
- Review and discuss BOINC's new distributed storage architecture
- develop a simple storage application
Coordinator: David Anderson
Participants
- Neil Massey
- Andy Bowery
Back to the main page for this event (with capital S)