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
- MPI
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
- Sandbox:
- Do we need this feature?
- Alternative library:
- Do we need this feature?