1.一种基于层次存储的神经回路体数据处理方法,其特征在于实施步骤包括:
1)根据计算节点配置将输入图像数据进行分块,根据计算节点数量对神经元进行聚类并对计算节点进行神经元聚类结果的任务分配;
2)各计算节点进行变量和存储空间分配及初始化,将各计算节点的首个任务对应的数据块从磁盘阵列分别加载到各计算节点内存;
3)各计算节点启动多进程并通过各进程独立执行神经回路追踪任务,且在计算过程中按数据预取规则从存储设备中将数据块读入内存、按数据替换规则将数据块从内存写入存储设备直至分配的任务全部处理完毕。
2.根据权利要求1所述基于层次存储的神经回路体数据处理方法,其特征在于,步骤1)中根据计算节点配置将输入图像数据进行分块的详细步骤包括:获取计算节点的内存容量szmem,根据计算节点的内存容量szmem以及下式计算出图像数据的分块尺寸szblk;获取图像数据在x方向的像素数xdim、y方向的像素数ydim、z方向的图层数zdim,将输入的图像数据映射为最大尺寸szblk*szblk*szblk的分块立方体集合,每个数据块具有唯一的坐标(bx,by,bz),其中bx、by、bz为正整数;如果满足xdim<szblk,则x方向分块尺寸xscale的值为xdim,否则x方向分块尺寸xscale的值为szblk,x方向分块数量xnum的值为
3.根据权利要求1所述基于层次存储的神经回路体数据处理方法,其特征在于,步骤1)中根据计算节点数量对神经元进行聚类并对计算节点进行神经元聚类结果的任务分配的详细步骤包括:获取计算节点个数nnode,计算节点编号为1…nnode,使用指定的聚类算法将输入的神经元集合按照空间坐标分为nnode个簇,每个簇内的神经元的空间位置相对集中,每个簇对应的计算任务分配到一个计算节点,使得每个计算节点负责一个簇内所有的神经元的回路追踪计算。
4.根据权利要求1所述基于层次存储的神经回路体数据处理方法,其特征在于,步骤2)的详细步骤包括:
2.1)各个计算节点声明规模为3*3*3的指针变量三维数组blkptr,对于该数组内每个指针变量blkptr[i][j][k]分配内存空间容量为szblk3,其中i、j、k为正整数且1≤i,j,k≤3,szblk表示将输入图像数据进行分块得到的图像数据的分块尺寸。
2.2)各个计算节点计算本节点所对应的神经元集合中首个神经元的数据块位置,对于坐标为(x,y,z)的神经元,其所在的数据块坐标(bx,by,bz)中各个方向坐标值均为将对应神经元的相同方向的坐标值除以该方向的分块尺寸再进行上取整得到;各个计算节点将首个神经元对应的坐标为(bx,by,bz)的数据块和邻近的26个数据块按照指定的映射关系分别从磁盘阵列载入blkptr指针所指向的本地内存空间。
5.根据权利要求1所述基于层次存储的神经回路体数据处理方法,其特征在于,步骤3)中各计算节点启动多进程并通过各进程独立执行神经回路追踪任务的详细步骤包括:
3.1)使用指定算法以当前神经元为起点,开始进行神经回路追踪计算;
3.2)在计算过程中,当处理像素的坐标(x',y',z')超出坐标(bx,by,bz)的数据块的边界时,跳转执行下一步以进行数据块置换;
3.3)计算当前处理像素所属数据块坐标(bx',by',bz'),计算数据块坐标位移(dx,dy,dz),其中dx=bx'-bx,dy=by'-by,dz=bz'-bz,由于像素处理的连续性,当前处理像素必然位于坐标(bx,by,bz)的数据块的邻接数据块,因此dx、dy和dz取值为0或1或-1,且坐标(bx',by',bz')的数据块已经载入内存,可以直接开始像素计算;
3.4)以坐标(bx',by',bz')的数据块作为中心,即将内存数据块中心块坐标更新为(bx+dx,by+dy,bz+dz);
3.5)进行数据块写出操作:遍历blkptr指针索引数组,对于blkptr[i][j][k],如果指针不为空并且满足条件1时,按照指定的映射关系,将符合条件1的指针对应的数据块从内存写出存储设备;条件1的表达式如下:
i-dx>3ori-dx<1orj-dy>3orj-dy<1ork-dz>3ork-dz<1
上式中,(dx,dy,dz)为数据块坐标位移,i、j、k为三维数组blkptr的指针变量blkptr[i][j][k]中的循环变量,其中i、j、k为正整数且取值均为1~3之间;
3.6)进行数据块指针更新操作:遍历blkptr指针索引数组,对于blkptr[i][j][k],满足条件2时,目标数据块已经在内存中,直接进行数据块指针更新:blkptr[i][j][k]=blkptr[i+dxj+dyk+dz;不满足条件2时,按照指定的映射关系获取应载入的数据块坐标(bx,by,bz)并将对应的数据块加载到内存;其中,条件2的表达式如下:
1≤i+dx≤3and1≤j+dy≤3and1≤k+dz≤3
上式中,(dx,dy,dz)为数据块坐标位移,i、j、k为三维数组blkptr的指针变量blkptr[i][j][k]中的循环变量,其中i、j、k为正整数且取值均为1~3之间。
6.根据权利要求5所述基于层次存储的神经回路体数据处理方法,其特征在于,步骤3)之前还包括计算固态盘最大可存储的数据块个数nssd的步骤,详细步骤包括:获取计算节点固态盘容量szssd,设置固态盘当前数据块计数器变量cssd为0,计算固态盘最大可存储的数据块个数nssd,声明固态盘数据块位置队列qssd并初始化为空,队列内存储的元素类型为四元组(bx,by,bz,bpos),其中(bx,by,bz)为数据块坐标,bpos为数据块在固态盘上的存储位置;步骤3.5)中将符合条件1的指针对应的数据块从内存写出存储设备的详细步骤包括:如果固态盘当前数据块计数器变量cssd小于固态盘最大可存储的数据块个数nssd成立则表示固态盘有空余存储空间,将数据块写入固态盘,并更新固态盘当前数据块计数器变量cssd的值使其在原值的基础上加1,将数据块坐标(bx,by,bz)和文件位置bpos加入固态盘数据块位置队列qssd尾部;如果固态盘当前数据块计数器变量cssd等于固态盘最大可存储的数据块个数nssd成立则表示固态盘存储空间已满,将固态盘中存入时间最早的数据块迁移到磁盘,所述固态盘中存入时间最早的数据块为固态盘数据块位置队列qssd头部的数据块,并将该数据块信息从固态盘数据块位置队列qssd删除,然后再将当前数据块写入固态盘,并将数据块坐标(bx,by,bz)和数据块在固态盘上的存储位置bpos加入固态盘数据块位置队列qssd尾部;步骤3.6)中将对应的数据块加载到内存具体是指如果数据块坐标存在于固态盘数据块位置队列qssd,则根据对应的数据块在固态盘上的存储位置bpos,从固态盘将对应的数据块加载到内存,否则从磁盘将指针对应的数据块加载到内存。
7.根据权利要求5所述基于层次存储的神经回路体数据处理方法,其特征在于,步骤3.2)中处理像素的坐标(x',y',z')超出坐标(bx,by,bz)的数据块的边界具体是指满足下述函数表达式中的任意一项:
上式中,(x',y',z')为处理像素的坐标,(bx,by,bz)为所在的数据块坐标,xscale为z方向分块尺寸,yscale为z方向分块尺寸,zscale为z方向分块尺寸。
8.一种基于层次存储的神经回路体数据处理系统,其特征在于包括:
调度管理节点,用于根据计算节点配置将输入图像数据进行分块,根据计算节点数量对神经元进行聚类并对计算节点进行神经元聚类结果的任务分配;
计算节点,用于进行变量和存储空间分配及初始化,将各计算节点的首个任务对应的数据块从磁盘阵列分别加载到各计算节点内存;启动多进程并通过各进程独立执行神经回路追踪任务,且在计算过程中按数据预取规则从存储设备中将数据块读入内存、按数据替换规则将数据块从内存写入存储设备直至分配的任务全部处理完毕。
9.一种基于层次存储的神经回路体数据处理系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~7中任意一项所述基于层次存储的神经回路体数据处理方法的步骤,或者该计算机设备的存储介质上存储有被编程或配置以执行权利要求1~7中任意一项所述基于层次存储的神经回路体数据处理方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~7中任意一项所述基于层次存储的神经回路体数据处理方法的计算机程序。