NeuroManager:基于工作流分析的计算神经科学仿真管理引擎

NeuroManager是一款面向计算神经科学的仿真管理软件,它通过工作流分析自动执行模拟任务提交。该工具基于面向对象设计,支持多种神经科学模拟器和异构计算资源,简化了从桌面到超级计算机集群的使用。NeuroManager通过九个抽象阶段的扩展工作流程,提供进度通知、自动组织、标签管理和结果分析等功能,帮助用户管理和追踪多用户研究项目中的模拟演变。此外,它具有监控、调度和资源分配能力,可以适应不同的计算需求和环境,提高了工作效率和数据可追溯性。
摘要由CSDN通过智能技术生成

NeuroManager:基于工作流分析的计算神经科学仿真管理引擎

我们开发了面向计算神经科学的面向对象仿真管理软件引擎NeuroManager。当使用异构计算资源,模拟器和模拟任务时,NeuroManager自动执行模拟作业提交的工作流程。面向对象的方法(1)提供了适应各种神经科学模拟器的灵活性,(2)简化了从台式计算机到超级计算机集群的异构计算资源的使用,以及(3)改善了仿真器/仿真演进的跟踪。我们在MATLAB中使用了NeuroManager,它是一种广泛使用的工程和科学语言,其信号和图像处理工具,电生理分析中的流行性以及在大学生物教育中越来越多的使用。为了设计和开发NeuroManager,我们分析了各种模拟器,操作系统和计算资源的仿真提交工作流程,包括处理输入参数,数据,模型,结果和分析。这导致了22个阶段的模拟提交工作流程。该软件包含进度通知,自动组织,标签,数据和结果的时间标记以及对MATLAB分析和可视化工具的集成访问。 NeuroManager为用户提供了自动执行日常任务的工具,并协助主要调查人员跟踪和重新创建由多人执行的研究项目的演变。总的来说,NeuroManager提供了改善工作流程所需的基础架构,管理多个同时模拟,并保持研究项目过程中可能产生的大量数据的来源。

Introduction

获得高性能计算(HPC)资源可以探索复杂神经生物模型的参数空间。 随着参数数量的增加,有必要跟踪模拟器配置,参考模型和实现的来源,模拟产生的数据,执行的分析及其结果; 软件本身的记录,测试和跟踪也很重要(Gewaltig和Cannon,2014)。 当使用异构计算基础设施并行执行多个模拟时,这样的活动变得更加麻烦(Casanova等人,2004)。 通过分析这些流程的工作流程,可以将这些流程自动化并提高吞吐量,同时最大限度地减少延迟,错误和数据丢失。 因此,开发工作流自动化工具以设置模拟,标记数据文件和跟踪分析以提高计算神经科学研究的生产力和可重复性非常重要。

我们开发了一个叫做NeuroManager的软件工具来组织使用不同模拟器和计算基础设施的建模工作。 NeuroManager基于对几个神经科学模拟器的模拟提交工作流程的分析。 NeuroManager是面向对象的MATLAB(Natick,MA)编写的,广泛使用的数值分析和可视化软件套件广泛使用
(Drongelen,2007; Cui等,2008; Gabbiani和Cox,2010; Van Drongelen,2010; Cohen,2014; Wallisch,2014),并且越来越成为生物学教育的一部分(Gross,2004; Stefan et al。 。,2015)。 NeuroManager虚拟化硬件,用户和模拟器。 NeuroManager中的对象可用于生成由异构计算资源组成的机器集合,从桌面到HPC中心。模拟器也成为与特定模拟文件相结合的对象,从而可以跟踪项目过程中仿真模拟器的演变。最后,用户与不同系统进行交互所需的步骤,例如在本地服务器或集群中提交仿真运行所需的不同步骤也都被虚拟化了。面向对象的方法允许生成对象树,这可以帮助保持模拟器,数据及其分析的出处。该软件提供进度通知,自动组织,数据和结果标签,以及对MATLAB分析和可视化工具的集成访问。该程序生成编译好的MATLAB代码,以跨平台分发,最大限度地减少所需的许可证数量。由于我们的重点是神经科学,我们开发了我们的代码来支持各种标准的神经科学模拟器。 NeuroManager提供了一个统一的平台,降低了开发和分析计算项目的复杂性。

我们软件的预期用户是实验室,他们需要保持计算模拟会话及其演变的组织,有效地使用异构计算资源,并保留多用户模拟及其分析的起源。 不过,我们的软件也可以
用于教学。 虽然本白皮书介绍了工作流程和软件的动机,理论和设计,但补充材料提供了每个工作流程步骤的详细说明。 另外,我们在下面提到的GitHub站点上提供代码和广泛的用户指南。

计算神经科学中模拟提交的工作流程

工作流程是运行模拟所需的一组任务的抽象(Garijo et al。,2014)。通常,模拟分析任务要求将流程分解为工作流程阶段(Deelman等,2009)。我们通过使用计算神经科学任务和工具分析模拟作业的提交,开发了抽象工作流程阶段的列表。一般而言,我们假设用户操作主机以在安装了软件模拟器的远程计算机或群集上运行模拟。对于我们的分析,我们使用了两种主机的组合:Windows和UNIX;三个模拟器:仅MATLAB编码,NEURON(Hines和Carnevale,2001)和MCell(Stiles和Bartol,2000);以及三种远程机器类型:Linux多核服务器,Sun Grid Engine(SGE)群集,也称为Univa Grid Engine(Univa,2015)和简单Linux资源管理实用程序(SLURM)群集(SLURM,2015)。我们确定了九个抽象阶段:
1.主机和远程资源的一般设置
2.在遥控器上构建模拟器
3.将模型文件上传到遥控器
4.取模拟输入参数向量
5.将输入数据文件上传到遥控器
6.在遥控器上处理模型文件
7.在遥控器上运行模拟和后处理结果
8.将输出文件下载到标有目录的主机
9.后仿真处理,并从4开始重复所有参数向量
阶段1包括开始日志,初步通知和机器通信测试。阶段2上传形成基于远程的模拟器的文件(包括可能调用标准模拟器(例如MCell)的MATLAB m文件或Python文件,或者可以自己形成模拟器),根据需要配置编译代码。阶段3将仿真模型文件(如果有)上传到远程机器。在阶段4中,用户绘制参数向量以用于来自要使用的向量集合的仿真。向量中的参数决定是否需要修改某些模型文件以及特定模拟可能需要哪些数据文件(阶段5和阶段6)。一旦所有建模文件都被处理完毕,模拟运行(第7阶段)。这可能涉及在主机中生成脚本或作业文件,将其移至远程计算机,然后调用作业提交排队系统(例如HPC群集中的那些作业提交排队系统)。在每次模拟之后,下载得到的输出数据(阶段8)。这在单一仿真过程中是微不足道的,但是因为使用多个异构计算资源提高了同时提交多个作业的可能性,所以软件需要确保输出数据与其输入向量相关联。最后,有必要更新报告,清理并准备好远程机器中的工作目录,以便进行下一次仿真(阶段9)。

我们将这九个工作流程阶段扩展到22阶段模拟提交工作流程,图1.我们使用面向对象的编程来处理机器,操作系统和模拟器需求之间的阶段差异。 此工作流程的每个阶段都对应于一个NeuroManager类方法。 关于为实施这一工作流程而开发的数据结构的完整描述见补充材料。
图一

图1 | NeuroManager工作流程。 九个抽象阶段(左侧)扩展到22个NeuroManager进程(右侧)。 右侧的指示显示过程的位置或性质。 一般准备(Gen Prep)主要由主机完成; 模拟器准备一般在远程机器上进行; 和Simulator Parallelism同时在所有远程机器上进行。 有关阶段的详细说明,请参阅补充材料。 括号中的数字表示22个过程。

NeuroManager Design

整体对象交互

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值