Difference: SwGoldenRules (1 vs. 6)

Revision 62019-07-19 - DanProtopopescu

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Writing portable software - The Golden Rules

Line: 10 to 10
  Portable software means that:
Changed:
<
<
  1. it must run on any SL6 (or whatever is the flavour of the moment) machine, not only where it was compiled
>
>
  1. it must run on any SL6, CC7 (or whatever is the flavour of the moment) machine, not only where it was compiled
 
  1. it must run from any directory, not only from the install_dir
  2. inputs must be easily configurable at run time

Your software is not ready for running on the grid if any of the following apply:

Added:
>
>
  1. is dependent on specific hardware
 
  1. it makes use of libraries found only on your machine
  2. uses several versions of the same shared library
  3. dynamically linked libraries are hardcoded with your local path(s)
  4. requires inputs that are hardcoded with your local path(s)
  5. is dependent on the order of libraries found in the LD_LIBRARY_PATH
Added:
>
>
  1. requires AFS access
 

Checks

Line: 29 to 31
 
  1. it compiles on a standard Linux box (not only on your devel desktop and not only on lxplus)
  2. the executable and all the necessary dynamically linked libraries, config, dat files and scripts can be packed in a tarball not bigger than a few GB
  3. it runs on a standard Linux box after you unpack the tarball and set the linux environment (to use only components from the tarball)
Changed:
<
<
  1. you provide easy to use config scripts to compile the code and to set things up
>
>
  1. you provide easy to use config scripts to compile the code and run a MC+Reco sequence

When using CVMFS, you must test the installation in situ, and make sure all relevant conditions from the list(s) above are met.

 

Revisions and releases

Revision 52016-03-08 - DanProtopopescu

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Writing portable software - The Golden Rules

Line: 42 to 42
 
  • a software debugging platform
  • a testbed for the latest software fix
  • a no cost resource
Deleted:
<
<
Dan Protopopescu - 2015-10-27

Revision 42015-11-05 - DanProtopopescu

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Writing portable software - The Golden Rules

Line: 17 to 17
 Your software is not ready for running on the grid if any of the following apply:

  1. it makes use of libraries found only on your machine
Added:
>
>
  1. uses several versions of the same shared library
 
  1. dynamically linked libraries are hardcoded with your local path(s)
  2. requires inputs that are hardcoded with your local path(s)
  3. is dependent on the order of libraries found in the LD_LIBRARY_PATH
Line: 34 to 35
  It is inefficient to install software on the Grid (CVMFS) only to have to reinstall an updated version the next week after. For running a production, one needs what is called a "production release", which would merge previous revisions/branches in a stable and bug-free version that will be "frozen" for the duration of the production round.
Added:
>
>

The Grid

 
Added:
>
>
Lastly, please remember that the Grid infrastructure is for large scale simulations, data reconstruction and/or analysis and it is not:
 
Added:
>
>
  • a software debugging platform
  • a testbed for the latest software fix
  • a no cost resource
  Dan Protopopescu - 2015-10-27

Revision 32015-11-03 - DanProtopopescu

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Writing portable software - The Golden Rules

Line: 10 to 10
  Portable software means that:
Changed:
<
<
  1. it must run on any machine, not only where it was compiled
>
>
  1. it must run on any SL6 (or whatever is the flavour of the moment) machine, not only where it was compiled
 
  1. it must run from any directory, not only from the install_dir
  2. inputs must be easily configurable at run time

Revision 22015-10-30 - DanProtopopescu

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Writing portable software - The Golden Rules

Line: 17 to 17
 Your software is not ready for running on the grid if any of the following apply:

  1. it makes use of libraries found only on your machine
Changed:
<
<
  1. dynamically linked libraries are hardcoded with your path(s)
  2. requires inputs that are hardcoded with your path(s)
>
>
  1. dynamically linked libraries are hardcoded with your local path(s)
  2. requires inputs that are hardcoded with your local path(s)
 
  1. is dependent on the order of libraries found in the LD_LIBRARY_PATH

Checks

Line: 27 to 27
 
  1. it compiles on a standard Linux box (not only on your devel desktop and not only on lxplus)
  2. the executable and all the necessary dynamically linked libraries, config, dat files and scripts can be packed in a tarball not bigger than a few GB
Changed:
<
<
  1. it runs on a standard Linux box after you unpack the tarball and set the linux environment (using only what's in the tarball)
>
>
  1. it runs on a standard Linux box after you unpack the tarball and set the linux environment (to use only components from the tarball)
 
  1. you provide easy to use config scripts to compile the code and to set things up

Added:
>
>

Revisions and releases

It is inefficient to install software on the Grid (CVMFS) only to have to reinstall an updated version the next week after. For running a production, one needs what is called a "production release", which would merge previous revisions/branches in a stable and bug-free version that will be "frozen" for the duration of the production round.

  Dan Protopopescu - 2015-10-27

Revision 12015-10-27 - DanProtopopescu

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="WebHome"

Writing portable software - The Golden Rules

Software meant to run on the Grid must be self-contained and compatible with the most standard Linux configuration.

Golden rules

Portable software means that:

  1. it must run on any machine, not only where it was compiled
  2. it must run from any directory, not only from the install_dir
  3. inputs must be easily configurable at run time

Your software is not ready for running on the grid if any of the following apply:

  1. it makes use of libraries found only on your machine
  2. dynamically linked libraries are hardcoded with your path(s)
  3. requires inputs that are hardcoded with your path(s)
  4. is dependent on the order of libraries found in the LD_LIBRARY_PATH

Checks

You must make sure that your software is portable by doing the following:

  1. it compiles on a standard Linux box (not only on your devel desktop and not only on lxplus)
  2. the executable and all the necessary dynamically linked libraries, config, dat files and scripts can be packed in a tarball not bigger than a few GB
  3. it runs on a standard Linux box after you unpack the tarball and set the linux environment (using only what's in the tarball)
  4. you provide easy to use config scripts to compile the code and to set things up

Dan Protopopescu - 2015-10-27

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback