Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 Generic information common for all (or at least majority of) programming languages.

  • programming_language 
    • meaning:  language of physics code
    • value: one of predefined values: 'Fortran', 'CPP'
    • example: 'Fortran'
  • code_name 
    • meaning:
      • name of user method / subroutine to be called,
      • must be exactly the same as name of called method / subroutine
      • it is used also as an actor name
    • value: string
    • example: 'my_subroutine' 
  • data_type 
    • meaning: data type handled by the physics code
    • value: 'legacy' (currently only 'Legacy IDS' type has been implemented)
    • example: 'legacy'
  • arguments  - list of arguments
    • argument definition: 
      • name:
        • meaning: user defined argument name
        • value: string
        • example: equilibrium00   
      • type:
        • meaning: a type of an IDS argument
        • value: 
          • predefined name of one of the IDSes
        • example: 'equilibrium' 
      • intent
        • meaning: determines if given argument is input or output one
        • value: predefined - string "IN", "OUT"
  • code_path: 
    • meaning: path to system library (C, CPP) , script (Python), etc containing the physics code, including method/subroutine to be run
    • value: string, valid path to file
    • example: 'any text'  
  • code_parameters  - a structure containing parameters and schema entry:
    • parameters:
      • meaning: path to XML file containing user defined parameters of the physics code
      • value: string, valid path to file
      • example: './code_parameters/parameters.xml'
    • schema:
      • meaning: path to XSD file contains schema of XML parameters, to be able to validate them
      • value: string, valid path to file
      • example: './code_parameters/parameters.xsd'
  • documentation :
    • meaning: human readable description of native code
    • value: string
    • example: 'any text'

Language specific part - Fortran/C++

  • compiler :
    • meaning: the name/vendor of the compiler (and not compiler command!) used to compile native codes
    • value: string, one of vendors of compilers, currently: 'Intel' or 'GCC'
    • example: 'Intel'
  • mpi_flavour: 
    • meaning: MPI compiler flavour to be used
    • values: string, one of:  MPICH, MPICH2, MVAPICH2, OpenMPI, etc.
    • example 'MPICH2'
  • open_mp :
    • meaning: if user code should be compiled with OpenMP flag
    • values: boolean
    • example 'true'
  • system_libraries :
    • meaning: a list of system libraries, managed using pkg-config mechanism,  that has to be used while native code linking
    • value: a list of system libraries names, as they are published by pkg-config 
    • example: 

      - fftw3f
      - glib
      - mkl


  • custom_libraries :
    • meaning: additional libraries, not managed by pkg-config mechanism, necessary to link of the physics code :
    • value:  a list of paths to libraries 
    • example: 

      - ./lib/custom/libcustom1.a
      - ./lib/custom/libcustom2.a


...

Actor description syntax


  • actor_name :
    • meaning: the arbitrary, user defined name of the actor. It determines: the name of class to be generated and directory where actor will be put
    • value: string
    • example: 'core2dist'
  • actor_type:
    • meaning:  
    • values: 'python' (currently only python type has been implemented)
    • example 
  • data_type:
    • meaning: data type handled at the workflow level 
    • value: 'legacy' (currently only 'Legacy IDS' type has been implemented)
    • example: 'legacy'
  • install_dir:
    • optional parameter
    • meaning:  user chosen folder, where an actor will be installed
    • values: string, 
    • example : /my/working/dir/IWRAP_ACTORS
    • if not defined, a default installation directory will be used

...

Usage of actor within workflow



Importing actor to workflow script

To make an actor class visible inside a workflow script it has to be imported:

from <actor_package>.actor import <actor_class> 


In a current version both: <actor_package> and <actor_class>  are set to the same value provided by user as an 'actor name'.

...