welcome: please sign in

Input

book: Create a structured PDF document with headings, chapters, etc.
webpage: Specifies that the HTML sources are unstructured (plain web pages.) A page break is inserted between each file or URL in the output.
continuous: Specifies that the HTML sources are unstructured (plain web pages.) No page breaks are inserted between each file or URL in the output.
Title of the document for the front page.
Extract the first heading of the document and use it as title. If checked the title field has no effect.
The title image or HTML page. These file has to be an attachments!
Specify document version to be displayed on the title page.
Intellectual property owner of this document.
Copyright notice for this document.
Information about who and when modified the document are applied at the end.

Output

Specifies the output format.
Grayscale document  Title page
Compression :   JPEG big images 

Page

 
User defined page size 
Choose one of the predefined standard sizes or select user defined.
Specifies the page size using a standard name or in points (no suffix or ##x##pt), inches (##x##in), centimeters (##x##cm), or millimeters (##x##mm).
Set the target browser width in pixels (400-1200). This determines the page scaling of images.
   2-Sided   Landscape
   
   
   
Specifies the margin size using points (no suffix or ##x##pt), inches (##x##in), centimeters (##x##cm), or millimeters (##x##mm). Keep empty for default value.
Left
Middle
Right
Sets the page header to use on body pages.
Left
Middle
Right
Sets the page footer to use on body pages.

Contents

Sets the number of levels in the table-of-contents. Empty for unlimited levels.
   Numbered headings Check to number all of the headings in the document.
Sets the title for the table-of-contents. Empty for default title.
Left
Middle
Right
Sets the page header to use on table-of-contents pages.
Left
Middle
Right
Sets the page footer to use on table-of-contents pages.

Colors

Enter the HTML color for the body (background).
Enter the image file for the body (background). These file has to be an attachments!
Enter the HTML color for the text.
Sets the color of links.
Enables generation of links in PDF files.

Fonts

Set the default size of text.
Set the spacing between lines of text.
Choose the default typeface (font) of text.
Choose the default typeface (font) of headings.
Set the size of header and footer text.
Choose the font for header and footer text.
Change the encoding of the text in document.
Check to embed font in the output file.

PDF

Controls the initial viewing mode for the document.
Document: Displays only the docuemnt pages.
Outline: Display the table-of-contents outline as well as the document pages.
Full-screen: Displays pages on the whole screen; this mode is used primarily for presentations.
Controls the initial layout of document pages on the screen.
Single: Displays a single page at a time.
One column: Displays a single column of pages at a time.
Two column left/right: Display two columns of pages at a time; the first page is displayed in the left or right column as selected.
Choose the initial page that will be shown.

Security

Check to number all of the headings in the document.
 Print   Modify
 Copy   Annotate
Specifies the document permissions.
Specifies the user password to restrict viewing permissions on this PDF document. Empty for no encryption.
Specifies the owner password to control who can change document permissions etc. If this field is left blank, a random 32-character password is generated so that no one can change the document.

Expert

Specify language to use for date and time format.
Shrink code blocks on page.
Show line numbers for code blocks.
Make spaces visable by dots (·) instead of white spaces.
Make line breaks visable by a extra character (¶) at the end.
Enable this feature if you searching for problems or intent to report a bug report

About

Version 2.4.2 (MoinMoin 1.9.9)


MoinMoin - Generate PDF document using HTMLDOC

This action script generate PDF documents from a Wiki site using
the HTMLDOC (http://www.htmldoc.org) software packages which has
to be preinstalled first.

Copy this script in your's MoinMoin action script plugin directory.

Thanks goes to Pascal Bauermeister who initiated the implementaion.
Lot of things changes since then but the idear using HTMLDOC is the
main concept of this implementation.

Please visit the homepage for further informations:
http://moinmo.in/ActionMarket/PdfAction

@copyright: (C) 2006 Pascal Bauermeister
@copyright: (C) 2006-2010 Raphael Bossek <raphael.bossek@solutions4linux.de>
@license: GNU GPL, see COPYING for details

       

Revision 6 as of 2011-02-04 14:22:06

location: Middleware / MpiStart / UserDocumentation

User Documentation

Description

MPI-Start is an abstration layer that offers a unique interface to start MPI jobs with different MPI implementations.

Installation

Normally users do not need to install MPI-Start. However if they want to use it in a site without an existing installation, the recommendation is to create a tarball installation that can be transfered in the input sandbox of the job.

In order to create a tarball installation, get the source code and do the following:

$ make tarball

This will create a mpi-start-X.Y.Z.tar.gz (with X.Y.Z being the version of MPI-Start) that contains all that is needed for the execution of jobs. In your job script unpack the tarball and set the I2G_MPI_START environment variable to $PWD/bin/mpi-start.

Usage

All necessary information of the mpi-start program are provided via environment variables. A user has to set the below specified variables before executing mpi-start.

Environment Variables

EGEE Environment

mpi-start supports the EGEE environment variable schema for specifing the local MPI installations. For the latest specification of the EGEE environment specification refer to :

http://www.grid.ie/mpi/wiki

Debugging

For debugging purpose the I2G_MPI_START_DEBUG variable can be set to 1 to enable the debugging output. The I2G_MPI_START_VERBOSE variable can be set to 1 to turn on the additional output.

The variable I2G_MPI_START_TRACE can be set to 1 to trace every operation that is performed by mpi-start (goes to stderr).

Hooks

The Hooks framework opens the possibility of customizing the behavior of MPI-Start. Users can provide their own hooks to perform any pre (e.g. compilation of binaries, data fetching) or post (e.g. storage of application results, clean-up) actions needed for the execution of their application. The Hooks Framework page describes in detail the framework and how to create user hooks.

Other Environment Variables

This section list other environment variables that affect to the MPI-Start execution but are not so frequently used:

Examples

Simple Job

   1 #!/bin/sh
   2 # IMPORTANT : This example script execute a
   3 #             non-mpi program with Open MPI
   4 #
   5 export I2G_MPI_APPLICATION=/bin/hostname
   6 export I2G_MPI_TYPE=openmpi
   7 
   8 $I2G_MPI_START

Job with user specified hooks

   1 #!/bin/sh
   2 #
   3 # MPI_START_SHARED_FS can be used to figure out if the current working
   4 # is located on a shared file system or not. (1=yes, 0=no);
   5 #
   6 # The "mpi_start_foreach_host" function takes as parameter the name of
   7 # another function that will be called for each host in the machine as
   8 # first parameter.
   9 # - For each host the callback function will be called exactly once,
  10 #   independent how often the host appears in the machinefile.
  11 # - The callback function will also be called for the local host.
  12 
  13 # create the pre-run hook
  14 cat > pre_run_hook.sh << EOF
  15 pre_run_hook () {
  16     echo "pre run hook called "
  17     # - download data
  18     # - compile program
  19 
  20     if [ "x\$MPI_START_SHARED_FS" = "x0" ] ; then
  21         echo "If we need a shared file system we can return -1 to abort"
  22         # return -1
  23     fi
  24 
  25     return 0
  26 }
  27 EOF
  28 
  29 # create the post-run hook
  30 cat > post_run_hook.sh << EOF
  31 # the first paramter is the name of a host in the
  32 my_copy () {
  33     CMD="scp . \$1:\$PWD/mydata.1"
  34     echo \$CMD
  35     #\$CMD
  36     # upload data
  37 }
  38 
  39 post_run_hook () {
  40     echo "post_run_hook called"
  41     if [ "x\$MPI_START_SHARED_FS" = "x0" ] ; then
  42         echo "gather output from remote hosts"
  43         mpi_start_foreach_host my_copy
  44     fi
  45     return 0
  46 }
  47 EOF
  48 
  49 export I2G_MPI_APPLICATION=mpi_sleep
  50 export I2G_MPI_APPLICATION_ARGS=0
  51 export I2G_MPI_TYPE=openmpi
  52 export I2G_MPI_PRE_RUN_HOOK=./pre_run_hook.sh
  53 export I2G_MPI_POST_RUN_HOOK=./post_run_hook.sh
  54 
  55 $I2G_MPI_START

Using MPI-Start with grid middleware

gLite

gLite uses the WMS software for submitting jobs to the different available resources. The WMS gets a job description in the JDL language and performs the selection and actual submission of the job into the resources on behalf of the user. The following sections describe how to submit a job using the WMS.

Basic Job Submission

Jobs are described with the JDL language. Most relevant attributes for parallel job submission are:

The following example shows a job that will use 6 processes and it is executed with Open MPI. The requirements attribute makes the WMS to select sites that publish that they support MPI-Start and Open MPI.

JobType       = "Normal";
CPUNumber     = 6;
Executable    = "starter.sh";
Arguments     = "OPENMPI hello_bin hello arguments";
InputSandbox  = {"starter.sh", "hello_bin"};
OutputSandbox = {"std.out", "std.err"};
StdOutput     = "std.out";
StdError      = "std.err";
Requirements  = member("MPI-START", other.GlueHostApplicationSoftwareRunTimeEnvironment)
                && member("OPENMPI", other.GlueHostApplicationSoftwareRunTimeEnvironment);

The Executable attribute is a script that will invoke MPI-Start with the correct options for the execution of the user's application. We propose a generic wrapper that can be used for any application and MPI flavour that gets in the Arguments attribute:

This is the content of the wrapper:

   1 #!/bin/bash
   2 # Pull in the arguments.
   3 MPI_FLAVOR=$1
   4 
   5 MPI_FLAVOR_LOWER=`echo $MPI_FLAVOR | tr '[:upper:]' '[:lower:]'`
   6 export I2G_MPI_TYPE=$MPI_FLAVOR_LOWER
   7 
   8 shift
   9 export I2G_MPI_APPLICATION=$1
  10 
  11 shift
  12 export I2G_MPI_APPLICATION_ARGS=$*
  13 
  14 # Touch the executable, and make sure it's executable.
  15 touch $I2G_MPI_APPLICATION
  16 chmod +x $I2G_MPI_APPLICATION
  17 
  18 # Invoke mpi-start.
  19 $I2G_MPI_START

User needs to include this wrapper in the InputSandbox of the JDL (starter.sh) and set it as the Executable of the job. Submission is performed as any other gLite job:

$ glite-wms-job-submit -a hello-mpi.sh

Connecting to the service https://gridwms01.ifca.es:7443/glite_wms_wmproxy_server


====================== glite-wms-job-submit Success ======================

The job has been successfully submitted to the WMProxy
Your job identifier is:

https://gridwms01.ifca.es:9000/8jG3MUNRm-ol7BqhFP5Crg

==========================================================================

Once the job is finished, the output can be retrieved:

$ glite-wms-job-output https://gridwms01.ifca.es:9000/8jG3MUNRm-ol7BqhFP5Crg

Connecting to the service https://gridwms01.ifca.es:7443/glite_wms_wmproxy_server

================================================================================

                        JOB GET OUTPUT OUTCOME

Output sandbox files for the job:
https://gridwms01.ifca.es:9000/8jG3MUNRm-ol7BqhFP5Crg
have been successfully retrieved and stored in the directory:
/gpfs/csic_projects/grid/tmp/jobOutput/enol_8jG3MUNRm-ol7BqhFP5Crg

================================================================================


$ cat /gpfs/csic_projects/grid/tmp/jobOutput/enol_8jG3MUNRm-ol7BqhFP5Crg/std.*
Hello world from gcsic054wn. Process 3 of 6
Hello world from gcsic054wn. Process 1 of 6
Hello world from gcsic054wn. Process 2 of 6
Hello world from gcsic054wn. Process 0 of 6
Hello world from gcsic055wn. Process 4 of 6
Hello world from gcsic055wn. Process 5 of 6

Modifying MPI-Start behavior

MPI-Start behavior can be customized by setting different environment variables (see usage section for a complete list). If using the generic wrapper, one easy way of customizing MPI-Start execution is using the Environment attribute of the JDL. The following JDL adds debugging to the previous example by setting the I2G_MPI_START_VERBOSE and I2G_MPI_START_DEBUG variables to 1:

JobType       = "Normal";
CPUNumber     = 6;
Executable    = "starter.sh";
Arguments     = "OPENMPI hello_bin hello arguments";
InputSandbox  = {"starter.sh", "hello_bin"};
OutputSandbox = {"std.out", "std.err"};
StdOutput     = "std.out";
StdError      = "std.err";
Requirements  = member("MPI-START", other.GlueHostApplicationSoftwareRunTimeEnvironment)
                && member("OPENMPI", other.GlueHostApplicationSoftwareRunTimeEnvironment);
Environment   = {"I2G_MPI_START_VERBOSE=1", "I2G_MPI_START_DEBUG=1"};

Use of hooks (see Hooks Framework) is also possible using this mechanism. If the user has a file with the MPI-Start hooks called hooks.sh, the following JDL would add it to the execution (notice that the file is also added in the InputSandbox):

JobType       = "Normal";
CPUNumber     = 6;
Executable    = "starter.sh";
Arguments     = "OPENMPI hello_bin hello arguments";
InputSandbox  = {"starter.sh", "hello_bin", "hooks.sh"};
OutputSandbox = {"std.out", "std.err"};
StdOutput     = "std.out";
StdError      = "std.err";
Requirements  = member("MPI-START", other.GlueHostApplicationSoftwareRunTimeEnvironment)
                && member("OPENMPI", other.GlueHostApplicationSoftwareRunTimeEnvironment);
Environment   = {"I2G_MPI_PRE_RUN_HOOK=hooks.sh", "I2G_MPI_POST_RUN_HOOK=hooks.sh"};