Versions Compared

Key

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

Table of Contents

Use cases:

Wrapper modes:

  • interactive - user code is run directly from wrapper
  • batch - user executable is sent to a queue

...

User code can be:

  • Sequential
  • Parallel:
    • MPI
      • MPICH
      • OpenMPI
    • , and/or OpenMP

Debugging modes:

  • standalone - debugger launches executable containing user code in a separate process
  • attach - debugger attaches to running process executing user code

...

Sandbox

Wrapper API - current status


Code Block
def actor_name(

...

integer0,

...

 integer1,

...

 core_profiles0, exec_type='ctypes',

...

 **kwargs):


User code arguments (IN/OUT)

...

  • IDS
  • primitive type
  • array of primitive types
  • string

Execution type

  • Named argument (exec_type='').
  • Current values of exec_type :
    • ctypes - interactive execution (yes - this name is REALLY CONFUSING)
    • mpi_local - run as MPI job
    • dbg - to keep compatibility with obsolete 'debug' argument of wrapper

BP: IMHO it should be removed and defined in other way, as execution modes requires additional set of info

Current values of exec_type :

  • ctypes - interactive execution (yes - this name is REALLY MISLEADING)
  • mpi_local
    • kwargs: mpi_processes
  • dbg 
    • kwargs: dbgmode

...

Additional arguments 

Auxiliary keyword arguments:

dbgmode = kwargs.get('dbgmode', False)
mpi_processes = kwargs.get('mpi_processes', 1);

if kwargs.get('lib_opt',False):

if kwargs.get('get_output_idss', True):


results.append(arg['cval'].value)
if kwargs.get('strip_output', True) and isinstance(results[-1], string_types):

Wrapper API - new design

only kwargs !!!!

def actor_name(**kwargs):

...

  • user code arguments - autogenerated
  • diagnostic info
  • execution modes
  • debug


Open points

  1. Sandbox:
    1. Do we need this feature?
  2. Alternative library:
    1. Do we need this feature?