Changes between Version 1 and Version 2 of CompoundApps


Ignore:
Timestamp:
Apr 25, 2007, 8:55:35 AM (17 years ago)
Author:
Nicolas
Comment:

Required manual changes to automatic conversion.

Legend:

Unmodified
Added
Removed
Modified
  • CompoundApps

    v1 v2  
    33
    44== Compound applications ==
    5   A '''compound application''' consists of a '''main program''' and one or more '''worker programs'''. The main program executes the worker programs in sequence, and maintains a 'main state file' that records which worker programs have completed. The main program assigns to each worker program a subrange of the overall 'fraction done' range of 0..1. For example, if there are two worker programs with equal runtime, the first would have range 0 to 0.5 and the second would have range 0.5 to 1.   The BOINC API provides a number of functions, and in developing a compound application you must decide whether these functions are to be performed by the main or worker program. The functions are represented by flags in the BOINC_OPTIONS structure. Each flag must be set in either the main or worker programs, but not both.
     5A '''compound application''' consists of a '''main program''' and one or more '''worker programs'''. The main program executes the worker programs in sequence, and maintains a 'main state file' that records which worker programs have completed. The main program assigns to each worker program a subrange of the overall 'fraction done' range of 0..1. For example, if there are two worker programs with equal runtime, the first would have range 0 to 0.5 and the second would have range 0.5 to 1.   The BOINC API provides a number of functions, and in developing a compound application you must decide whether these functions are to be performed by the main or worker program. The functions are represented by flags in the BOINC_OPTIONS structure. Each flag must be set in either the main or worker programs, but not both.
    66
    77
     
    3838        If set, the CPU of all threads (not just the worker thread)     will be counted.     For apps that do computation in more than one thread.
    3939
    40 
    4140Typical main program logic is:
    42 
    4341
    4442{{{
     
    6462boinc_finish()
    6563}}}
    66  where x and y are the appropriate fraction done range limits.  Typical worker program logic is:
    6764
     65where x and y are the appropriate fraction done range limits.  Typical worker program logic is:
    6866
    6967{{{
     
    7977...
    8078boinc_finish();        // this writes final CPU time to app_init.xml file
     79}}}
    8180
    82 }}}
    83   If the graphics is handled in a program that runs concurrently with the worker programs, it must also call boinc_init_options(), typically with all options false, then boinc_init_graphics(), and eventually boinc_finish().
     81If the graphics is handled in a program that runs concurrently with the worker programs, it must also call boinc_init_options(), typically with all options false, then boinc_init_graphics(), and eventually boinc_finish().
    8482
    8583If the main program is responsible for reporting application status to the core client, it should periodically call
    86 
    8784
    8885{{{