Changes between Version 11 and Version 12 of ResearchProjects


Ignore:
Timestamp:
Jan 17, 2011, 11:56:20 AM (13 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ResearchProjects

    v11 v12  
    44Possible research projects involving BOINC and volunteer computing,
    55appropriate for senior-level class projects or Masters theses.
    6 If you're interested, please contact
    7 [ProjectPeople David Anderson].
     6If you're interested, please contact [ProjectPeople David Anderson].
    87
    98An out-of-date list of conferences related to volunteer computing
     
    1413The following tools may be useful:
    1514
    16  * The [ClientSim BOINC client simulator]
     15 * The [ClientSim BOINC client emulator]
    1716   models a single client attached to one or more projects.
    1817   It's useful for studying client scheduling policies.
     
    2221 * The [http://boinc.berkeley.edu/trac/browser/trunk/boinc/sched/sched_driver.cpp scheduler driver]
    2322   can be used to measure the maximum throughput (jobs per second) of a BOINC back end.
     23
     24== Improved scheduling policies ==
     25
     26Dozens of changes to BOINC's client and server scheduling policies have been proposed
     27(see, for example, the archives of the boinc_alpha email list).
     28Use the BOINC client emulator and/or EmBOINC to study some of these.
     29
     30== Symbiotic job scheduling ==
     31
     32It has been observed (see UCSD work) that different combinations of applications
     33run more efficiently than others on multiprocessors,
     34because of their respective memory access patterns.
     35Instrument the BOINC client to measure this effect
     36(i.e., to maintain logs of the rate of progress of applications
     37running in different combinations).
     38Estimate the overall throughput increase that could be gained by
     39doing "symbiosis-aware" job scheduling.
     40If it's worth doing, implement it.
    2441
    2542== Data-intensive volunteer computing ==
     
    93110completing only short jobs in an effort to get credit unfairly.
    94111
    95 == Extend and refine the BOINC credit system ==
     112== Globalize resource share ==
     113
     114Currently resource share is enforced on a per-host basis;
     115each host's processing resources are allocated in a way that matches
     116resource share as closely as possible.
     117This can be improved in 2 ways:
     118
     119First, enforce resource share on a per-volunteer basis.
     120Suppose a volunteer is attached to projects A and B,
     121and has two hosts, H and J.
     122Suppose A runs efficiently on H (e.g. because H has a GPU supported by A)
     123and B runs efficiently on B.
     124Then we can increase overall throughput by
     125using H entirely for A, and J entirely for B.
     126
     127Second, enforce resource share on a global (cross-volunteer) basis.
     128Suppose volunteer V supports project A but has hosts that
     129run project B efficiently, and that V trusts B.
     130Suppose volunteer W is in the symmetric situation.
     131Then we can increase overall throughput by using
     132V's hosts for B, and W's hosts for A.
     133(This idea is due to Arnaud Legrand from INRIA; please contact him).
     134
     135In both cases, a study should be one before implementing anything.
     136
     137== Generalize the BOINC credit system ==
    96138
    97139The idea of "credit" - a numerical measure of work done -
     
    115157batch completion.
    116158Develop scheduling policies that optimize batch completion (i.e. makespan).
    117 
    118 == Latency-oriented volunteer computing ==
    119 
    120 The early volunteer computing projects (SETI@home, Climateprediction.net)
    121 are "throughput oriented": they want to maximize the number of jobs
     159This may require major changes to BOINC's scheduling mechanisms,
     160which were originally designed to maximize the number of jobs
    122161completed per day, not minimize the turnaround time of individual jobs.
    123 BOINC's scheduling mechanisms reflect this; for example, they try to
    124 assign multiple jobs at a time so that client/server interactions are minimized.
    125 
    126 More recent volunteer computing projects are "latency-oriented":
    127 they want to minimize the makespan of batches of jobs.
    128 The project is to redesign BOINC's scheduling mechanisms so that they
    129 can support latency-oriented computation,
    130 and to validate the new mechanisms via simulation.
     162
     163See PortalFeatures.
     164
     165== Intra-project resource allocation ==
     166
     167Currently BOINC has only crude mechanisms for allocation resources
     168within a project
     169(e.g., a project that serves multiple scientists).
     170Design a quota system.
     171See PortalFeatures.
    131172
    132173== Volunteer data archival ==
     
    160201Design a library that can be linked to an existing application,
    161202providing a lightweight BOINC client.
    162 When the application is run, the library contacts projects
    163 and gets "microjobs"
     203When the application is run, the library contacts projects and gets "microjobs"
    164204(small or variable-size jobs).
    165205It computes while the app is open.