Changes between Version 3 and Version 4 of ClientApp

Show
Ignore:
Author:
davea (IP: 128.32.18.181)
Timestamp:
11/14/07 15:01:33 (2 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ClientApp

    v3 v4  
    99''Explain work-related use of shmem'' 
    1010 
    11 Application are executed in separate 'catbox' directories, allowing them to create and use temporary files without name conflicts. Input and output files are kept outside the catbox. The mappings from virtual to physical filenames use 'symbolic link' files in the catbox directory. The name of such a file is the virtual name, and the file contains an XML tag with the physical name. (This scheme is used because of the lack of filesystem links in Windows.) 
     11Application are executed in separate 'slot' directories, allowing them to create and use temporary files without name conflicts. Input and output files are kept outside the slot directory. The mappings from virtual to physical filenames use 'symbolic link' files in the slot directory. The name of such a file is the virtual name, and the file contains an XML tag with the physical name. (This scheme is used because of the lack of filesystem links in Windows.) 
    1212 
    13 Communication between the core client and applications is done through XML files in the catbox directory. Several files are used. 
     13Communication between the core client and applications is done through XML files in the slot directory. Several files are used. 
    1414 
    1515'''Files created by the core client, read by the app:''' (Once, at start of app) 
    2020'''Files created by the API implementation, read by the core client:''' 
    2121 
    22 The API implementation uses a timer (60Hz); the real-time clock is not available to applications. This timer is used for several purposes: 
     22The API implementation uses a timer (60Hz). This timer is used for several purposes: 
    2323 
    2424 * To tell the app when to checkpoint; 
    25  * To regenerate the fraction done file 
    26  * To refresh graphics 
    2725 
    2826'''Exit status''' The core client does a wait() to get the status. boinc_finish() ends with an exit(status); 
    3028'''Accounting of CPU time''': (note: in Unix, a parent can't get the CPU time of a child until the child exits.  So we're forced to measure it in the child.) The core passes the WU CPU time in init_data.xml. boinc_checkpoint_completed() and boinc_finish() compute the new WU CPU time, and write it to checkpoint_cpu.xml. The core deletes this after reading. If on exit there is no checkpoint_cpu.xml, it means the app called exit(0) rather than boinc_finish(). In this case the core measures the child CPU itself. 
    3129 
    32 The core client maintains 
    3330 
    3431'''Timing of checkpoints''' 
    3633The app library maintains time_until_checkpoint, decremented from the timer handler. boinc_time_to_checkpoint() returns nonzero if  time_until_checkpoint is zero or less. boinc_checkpoint_completed() resets it. 
    3734 
    38 '''Maintaining fraction done and current CPU''' 
    39  
    40 These two quantities are transferred from the app library to the core client in the file fraction_done.xml. The parameter time_until_fraction_done_update, passed in the initialization file, determines how often this file is written. It is written from the timer handler. 
    41  
    42 For multi-program applications, only the active application must write the file. The functions boinc_child_start() and boinc_child_done() tell the app library to stop and start writing the file. 
    43  
    44 TO DO: ~~this creates disk traffic. Either figure out a way of increasing the period for users who don't want disk access, or don't use disk files~~.[[BR]]'''Doesn't work that way anymore. This page is very outdated.''' 

If this page is incomplete or incorrect, please edit it or add it to the wiki to-do list. To do this, you must be logged in; click Login or Register above.