ocean::Executor

Neurocean大约 5 分钟

ocean::Executor

模型执行器 More...

#include <Executor.hpp>

Public Functions

Name
Executor(PModelExecutor executor)
构建执行器
ExecutorStatusgetStatus()
获取执行状态
voidsetThreadNumber(int number)
设置执行线程数
intgetThreadNumber()
获取执行线程数
Statuscompile(CompileOption option)
编译模型
boolinitStatus()
初始化模型状态
voidaddMonitor(PModel model, const std::string & paramName, float windows =0)
添加变量监控
voidaddMonitors(PModel model, std::vector< std::string > monitors, float windows =0)
批量添加变量监控
voidremoveMonitor(PModel model, const std::string & paramName)
移除变量监控
voidremoveMonitors(PModel model, std::vector< std::string > monitors)
批量删除变量监控
CaptureBuffergetCapture(PModel model, const std::string & paramName)
获取变量监控结果
std::vector< CaptureBuffer >getCaptures(PModel model, std::vector< std::string > captures)
批量获取变量监控
boolrun(RunOption & option)
运行模型
boolrun(CompileOption option, RunOption & runOption)
先编译模型,再运行模型
boolpause()
暂停执行
boolcondition(float time)
在指定的时间暂停
boolresume()
继续执行
boolterminate()
终止执行

Protected Attributes

Name
PModelExecutorexecutor
内部模型执行器指针

Detailed Description

class ocean::Executor;

模型执行器

执行器负责模型的运行及状态管理

  1. 包括如下接口:
    • 获取状态, 设置或获取线程池线程数;
    • 编译模型;
    • 添加变量监控,移除变量监控,获取捕获的监控数据等;
    • 运行模型,编译后运行, 暂停运行, 继续运行,终止运行等;
  2. 编译及运行均需要指定选项
    • 编译选项通过CompileOption进行传递,指定了运行的执行后端设备配置信息;
    • 运行选项通过RunOption进行传递,报考是否进行性能分析,运行突触可塑性及运行时长等信息;
  3. 模型监控 Neurocean支持对模型中变量的变化监控,可以动态添加需要进行监控的节点变量,自动完成变量的监控, 也可以随时取消相关的变量监控。
    • Neurocean提供了参数注册机制,针对变量的监控对操作节点和建模本身是透明的,可以随时按需增加 或取消变量的监控;
    • 执行后端针对操作的参数进行捕获,捕获后保存到事先创建的缓存中,在运行中或运行结束后, 可以随时进行缓存变量的查询;
    • 在模型的变量监控时,针对神经元模型,在神经元发放时, 分别记录了发放脉冲时候的尖波点位, 同时记录了恢复后的重置电位,保留记录神经元电位变化过程中的所有电位位状态,为神经元的 状态变化分析提供完整的数据支持;

Public Functions Documentation

function Executor

explicit Executor(
    PModelExecutor executor
)

构建执行器

Parameters:

  • executor 内部执行器指针

Note: 该方法仅被内部模块使用

function getStatus

ExecutorStatus getStatus()

获取执行状态

Return: 执行状态

function setThreadNumber

void setThreadNumber(
    int number
)

设置执行线程数

Parameters:

  • number 线程数

function getThreadNumber

int getThreadNumber()

获取执行线程数

Return: 线程数

function compile

Status compile(
    CompileOption option
)

编译模型

Parameters:

  • option 编译选项

Return: 编译状态

function initStatus

bool initStatus()

初始化模型状态

Return: 初始化是否成成功

function addMonitor

void addMonitor(
    PModel model,
    const std::string & paramName,
    float windows =0
)

添加变量监控

Parameters:

  • model 模型实例
  • paramName 参数名称
  • windows 缓冲区窗口大小, 为0表示按需进行进行创建

function addMonitors

void addMonitors(
    PModel model,
    std::vector< std::string > monitors,
    float windows =0
)

批量添加变量监控

Parameters:

  • model 模型实例
  • monitors 变量列表
  • windows 缓冲区窗口大小, 为0表示按需进行进行创建

function removeMonitor

void removeMonitor(
    PModel model,
    const std::string & paramName
)

移除变量监控

Parameters:

  • model 模型实例
  • paramName 变量名称

function removeMonitors

void removeMonitors(
    PModel model,
    std::vector< std::string > monitors
)

批量删除变量监控

Parameters:

  • model 模型实例
  • monitors 变量列表

function getCapture

CaptureBuffer getCapture(
    PModel model,
    const std::string & paramName
)

获取变量监控结果

Parameters:

  • model 模型实例
  • paramName 变量名称

Return: 捕获结果

function getCaptures

std::vector< CaptureBuffer > getCaptures(
    PModel model,
    std::vector< std::string > captures
)

批量获取变量监控

Parameters:

  • model 模型
  • captures 变量列表

Return: 捕获结果列表

function run

bool run(
    RunOption & option
)

运行模型

Parameters:

  • option 运行选项

Return: 运行是否成功

function run

bool run(
    CompileOption option,
    RunOption & runOption
)

先编译模型,再运行模型

Parameters:

  • option 编译选项
  • runOption 运行选项

Return: 运行是否成功

function pause

bool pause()

暂停执行

Return: 是否暂停成功

模型内部完成当前执行后暂停, 用于异步暂定模型执行,调用run或pause不会是同一个线程

function condition

bool condition(
    float time
)

在指定的时间暂停

Parameters:

  • time 暂停时间节点

Return: 添加设置是否成功

function resume

bool resume()

继续执行

Return: 继续执行是否成功

function terminate

bool terminate()

终止执行

Return: 终止执行是否成功

Protected Attributes Documentation

variable executor

PModelExecutor executor;

内部模型执行器指针


Updated on 2022-08-19 at 17:14:26 +0800

上次编辑于:
贡献者: damone