[Debian Wiki] Update of "BOINC/ServerGuide/WrapperApp" by SteffenMoeller

Debian Wiki debian-www at lists.debian.org
Wed Jul 27 10:05:30 UTC 2011


Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Debian Wiki" for change notification.

The "BOINC/ServerGuide/WrapperApp" page has been changed by SteffenMoeller:
http://wiki.debian.org/BOINC/ServerGuide/WrapperApp?action=diff&rev1=15&rev2=16

Comment:
critical walk through

  
  <<TableOfContents(2)>>
  
- ''' This page is about deploying a wrapper application with BOINC on Debian or Ubuntu. It extends the page [[BOINC/AppDeployment]] page.'''
+ '''This page is about deploying a wrapper application with BOINC on Debian or Ubuntu. It extends the page [[BOINC/ServerGuide/AppDeployment]] page.'''
  
  = Wrapper Application =
  
@@ -30, +30 @@

  
  === Obtain the binaries ===
  
- Use the fetch_example_applications script provided with the boinc-server-maker package to obtain the binaries for the wrapper applications, copy them to the app folder of the project root. Since this is a multifile project, the directory hierarchies are important. The binaries should be arranged as following structure.
+ Use the fetch_example_applications script provided with the boinc-server-maker package to obtain the binaries for the wrapper applications, copy them to the app folder of the project root. Since this is a multifile project, the directory hierarchies are important. The binaries should be arranged as shown in the following structure.
  
- In multifile applications, The files are put in a sub-directory of name ''appname''_''version''_''fullplatformname''.
+ In multifile applications, the files are put in a sub-directory of name ''appname''_''version''_''fullplatformname''.
  
  You are invited to use the script provided by the boinc-server-maker package {{{
  /usr/share/doc/boinc-server-maker/examples/fetch_example_applications.sh
@@ -54, +54 @@

          `-- wrapper_6.12_x86_64-pc-linux-gnu.sig
  }}}
  
- 
  === Configuring the wrapper ===
- The wrapper binary upon invocation checks for a job description file named ''job.xml'', which is used to inform the wrapper about the actual binary to execute and its command line arguments to pass. This file has to be present in the same directory where wrapper binary is. ie, for single file projects in the ''$installroot/$fileprojectname/apps/appname/'' or for multi-arch ones at ''$installroot/$fileprojectname/apps/appname/appname_ver_platform/''
+ The wrapper binary upon invocation checks for a job description file named ''job.xml'', which is used to inform the wrapper about the actual binary to execute and its command line arguments to pass. This file has to be present in the same directory where wrapper binary is, i.e. for single file projects in the ''$installroot/$fileprojectname/apps/appname/'' or for multi-arch ones at ''$installroot/$fileprojectname/apps/appname/appname_ver_platform/''
  
- Sample job.xml {{{
+ Here the basic skeleton of a job.xml file. We'll amend it throughout these instructions to suit our varying demands. {{{
  <job_desc>
      <task>
          <application>binary_name_to_call</application>
@@ -70, +69 @@

  </job_desc>
  }}}
  
- == Simple script with no input ==
+ == Walk through: simple script with no input ==
  The example script used in this section counts from 0 to a number specified as command line argument, and outputs as ''out'': {{{
  cat <<EOSCRIPT > count 
  #!/bin/bash
@@ -84, +83 @@

  
  === Create directory structures ===
  The job description file for this script will look like this: {{{
+ cat <<EOJOB > job.xml
  <job_desc>
      <task>
          <application>count</application>
          <command_line>1000</command_line>
      </task>
  </job_desc>
+ EOJOB
+ }}}
+ 
+ {{{
+ FIXME: Missing: where does job.xml.sig come from?!?!? Have not tried it, but this can be omitted, not? SM
  }}}
  
  As mentioned above, the payload binary/script has to be copied to the sub-directory for each platform. Since the script can be the same for every platform (it is just text), we do plain copies: {{{
@@ -135, +140 @@

  }}}
  
  Use ''bin/xadd'' and ''bin/update_versions'' to put the app to database: 
-  * Add the application entries,
+  * Add the application entries, {{{
- {{{
- 
- $ cat <<APPCONFIG >>$projectroot/$fileprojectname/project.xml
+ $ cat <<APPCONFIG >>$installroot/$fileprojectname/project.xml
  <app>
     <name>wrapper</name>
     <user_friendly_name>Wrapper Test</user_friendly_name>
@@ -146, +149 @@

  APPCONFIG
  }}}
   
-  * Put to the database and update versions,
+  * Put to the database and update versions, {{{
- {{{
  $ bin xadd && bin/update_versions
  }}}
  
@@ -156, +158 @@

  ==== Template files ====
  
  The application does not have an input, and dos a trivial small computation. A sample workunit template for the script, say ''wrapper_wu'' should look like {{{
- $ cat <<WUCONF > $projectroot/$fileprojectname/templates/wrapper_wu
+ $ cat <<WUCONF > $installroot/$fileprojectname/templates/wrapper_wu
  <workunit>
      <rsc_fpops_bound>1e12</rsc_fpops_bound>
      <rsc_fpops_est>1e14</rsc_fpops_est>
@@ -164, +166 @@

  WUCONF
  }}}
  
- The ''rsc_fpop'' directives are used to define computational size parameters, expressed as number of FLOPS needed by the program. Our ''count'' produces a file named ''out'' as output, which should be transported back, the result template will be (call it wrapper_result){{{
+ The ''rsc_fpop'' directives are used to define computational size parameters, expressed as number of FLOPS needed by the program. Our ''count'' produces a file named ''out'' as output, which should be transported back, the result template will be (call it wrapper_result) {{{
- $ cat <<WRECONF > $projectroot/$fileprojectname/templates/wrapper_result
+ $ cat <<WRECONF > $installroot/$fileprojectname/templates/wrapper_result
  <file_info>
      <name><OUTFILE_0/></name>
      <generated_locally/>
@@ -197, +199 @@

  }}}
  
  This effort has now added a single job to the system. For adding multiple jobs with different input files, do as follows.
- 
- TBA
- 
+ {{{
+ FIXME: Missing, TBA
+ }}}
  === Some complex Extensions ===
  
  ==== Multiple Tasks ====
@@ -226, +228 @@

  
  
  == Handling of result files ==
- 
- TBA
- 
+ {{{
+ FIXME: Missing, TBA ... this might well deserve a separate page on the wiki
+ }}}
  == See Also ==
   * [[http://boinc.berkeley.edu/trac/wiki/WrapperApp|upstream documentation]]
   * [[http://code.google.com/p/boincvm/wiki/VMWrapper|Python based Wrapper exploiting BOINC legacy apps wrapper method.]]
   * [[http://www.boinc-wiki.info/Work_Unit_Template_File| More about workunit templates]]
  
+ Back to [[BOINC/ServerGuide/AppDeployment]], [[BOINC/ServerGuide/]]
+ 



More information about the pkg-boinc-commits mailing list