CN101436204A - 一种基于并行元胞自动机的城市演变模拟实现方法 - Google Patents
一种基于并行元胞自动机的城市演变模拟实现方法 Download PDFInfo
- Publication number
- CN101436204A CN101436204A CNA2008102198806A CN200810219880A CN101436204A CN 101436204 A CN101436204 A CN 101436204A CN A2008102198806 A CNA2008102198806 A CN A2008102198806A CN 200810219880 A CN200810219880 A CN 200810219880A CN 101436204 A CN101436204 A CN 101436204A
- Authority
- CN
- China
- Prior art keywords
- city
- subdomain
- method based
- paralleling
- automatic machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于并行元胞自动机的城市地理演变模拟实现方法,采用元胞自动机对城市的地理现象进行模拟,将元胞空间分解成多个子域,再将每个子域分发到每个分布式的处理器上进行处理,最后将所有处理器的运算结果合并成最终的模拟结果。本发明克服了现有技术的不足,提出了并行式运算的城市CA,通过网络互联的计算机联合运算,解决城市CA速度瓶颈的问题,达到高效能空间计算的目标。
Description
技术领域
本发明属于利用元胞自动机进行大区域城市群土地利用演变的模拟技术领域。
技术背景
元胞自动机(Cellular Automata,简称CA)模型是由Ulam和Von Neumann于20世纪40年代提出的时间、空间、状态都离散,(空间的)相互作用及(时间上)因果关系皆局部的网格动力学模型。不同于一般的动力学模型,CA模型没有明确的方程形式,而是包含了一系列模型构造的规则。许多地理现象都属于复杂系统,无法利用数学公式对它们进行表达和模拟。研究结果表明,CA模型是对城市复杂系统进行微观模拟的有效手段。近年来,CA已经被较多地应用于地理现象的模拟中,特别用于城市土地利用变化模拟中,即城市CA。
城市CA是一种“自下而上”的微观模拟系统,模型中有大量的微观个体(元胞),微观元胞之间的交互作用,是一系列的嵌套循环过程,导致其计算量非常庞大。并且,城市CA的计算量与研究区域的范围及空间数据的分辨率有很大的关系,随着研究区域范围的扩大和空间分辨率的提高,其计算量呈指数级增长。此外,地理空间系统是一个由多要素共同作用的,自然、社会和经济复合的、整体开放的复杂巨系统,城市CA作为其模拟的工具,涉及到大量的运算,这些模型和计算需要相互协作才能共同完成任务。地理现象的时空动态模拟涉及到大量数据的输入,譬如,土地利用数据、地形数据、政府规划数据、交通数据、社会经济数据、人口数据等。目前城市CA模拟基本上采用的都是在单个计算机上进行处理的办法,而上述原因导致城市CA模拟往往耗时过长,且无法胜任大范围的城市群模拟的任务,大大限制了城市CA在实际工作中的应用,而该方面的研究在国际上至今未有有效的解决方案,在国内仍为一片空白。
发明内容
本发明的目的在于克服现有技术的不足,提出了并行式运算的城市CA,通过网络互联的计算机联合运算,解决城市CA速度瓶颈的问题,达到高效能空间计算的目标。
为了实现上述发明目的,采用的技术方案如下:
一种基于并行元胞自动机的城市演变模拟实现方法,采用元胞自动机对城市的地理现象进行模拟,其发明点在于将元胞空间分解成多个子域,再将每个子域分发到每个分布式的处理器上进行处理,最后将所有处理器的运算结果合并成最终的模拟结果。
上述技术方案中,所述元胞空间建立在二维矩阵的空间上,元胞空间按行分解或按列分解成多个子域。
每一个子域包括一个或者多个相邻子域的边界层,子域设有边界缓器用来接受和发送数据给近邻子域。
所述子域分发到处理器上通过网络传输实现。
所述网络传输采用网络文件系统实现数据的共享和分发。
本发明采用消息模型为子域之间进行通讯。
进一步的,通过消息传递接口实现子域之间的通讯。
每个处理器在对子域进行计算的每次迭代后仅传输变化的数据以减少网络的开销。
本发明将并行处理技术应用于城市CA中,实验结果表明,该技术能够显著提高城市CA的模拟速度,达到预期的高效能空间计算目标。与普通的CA模拟实现相比,具有如下的优势:
1、并行城市CA通过局域网互联的集群系统进行并行计算,显著提高了模拟速度,使得以往耗时极长的模拟实验能够在较短的时间内完成,为研究者节约大量时间,也提供了更大的灵活性,使他们能够集中精力在模型建立、规则定义和参数校正上;
2、比串行城市CA更能胜任大范围区域的高精度模拟,它能够突破单机的内存限制,使系统更加稳定;
3、不需要运行在超级计算机上,能够运行在笔记本、普通PC、工作站和服务器上,这样一是充分利用各种闲置的资源,二是大大节约了硬件设备成本,促使并行CA投入实际使用。
附图说明
图1是影元胞技术实现示意图;
图2是元胞空间的域分解方式示意图,其中(a)为按行分解,(b)为按列分解;
图3为并行城市CA模型框架;
图4为结果示意图,其中(a)为并行城市CA的运算时长,(b)为加速比,(c)为效率。
具体实施方式
本发明的核心技术为影元胞技术(ghost-cell technique),指通过在每块子域存储相邻子域的边界层,且在每次迭代计算之前对这些边界层进行更新的技术。具体而言,并行城市CA的策略是在每一个分布式系统上,处理器只处理元胞空间中的一个子域,而每一个子域必须包括一个或者多个相邻子域的边界层,又称为影元胞(ghost cells),因为影元胞包含邻域处理器上一次迭代运算得到的边界元胞值,所以,它必须在每一次迭代时间步(time step)之前被更新。如图1所示,其中灰色部分为实际的子域,白色部分为子域之间的边界层。
元胞自动机CA在计算时仅对各元胞作局部求解,而不需要顾及元胞之间的共同行为,可以灵活地实施部分并行和完全并行,具有十分强大的并行能力。本发明的基本原理是按照一定的域分解(domain decomposition)方式将元胞空间分解成子域,利用消息传递接口MPI(Message Passing Interface)包所提供的MPI_Send函数分发到各个分布式的处理器上进行处理,最后将所有处理器的运算结果利用MPI包所提供的MPI_Recv函数合并成最终的模拟结果。由城市CA的原理可知,元胞空间的每个单元格变化与其邻域相关,分发到各个处理器上的子域并不是完全独立的,它们之间存在一定的数据交换过程。由此可见,数据并行的方式并不完全适合于并行城市CA的模型框架,而消息模型可以为子域之间的通讯提供基础。因此,本发明提出基于并行元胞自动机的大区域城市群演变模拟,该方法通过消息传递接口(MPI)实现基于影元胞技术的并行城市CA模型,并将该模型成功应用于珠江三角洲城市群的模拟中。本发明的主要内容如下:
1、数据的存储格式
本发明采用ASCII Raster格式来存取分类后的遥感影像数据,因为该格式十分简单明了,可以很方便地编写程序来对其进行读写;而且许多的GIS、RS软件均支持ASCII Raster格式的导入和导出操作,使用该格式可以与其他软件实现数据交换。
一般来说,ASCII Raster由头信息(包含一系列关键字)和按行排列的单元格数据两部分组成。文件的格式如下:
<NCOLS xxx>
<NROWS xxx>
<XLLCENTER xxx|XLLCORNER xxx>
<YLLCENTER xxx|YLLCORNER xxx>
<CELLSIZE xxx>
{NODATA_VALUE xxx}
row 1
row 2
...
row n
其中,xxx是一个数字,关键字nodata_value是可选的,缺省值为-9999。数据row 1是网格的最顶层,row 2是接下来的一行,row n依此类推。
LLCENTER通过指定左下角单元格的中心位置来定义图像的位置。LLCORNER通过定义左下角单元格的左下角位置来定义图像的位置。单元格数值之间通过空格隔开。每一行不需要通过硬回车结束,列的树目通过头信息的NCOLS来确定。ASCII Raster的数据类型可以是float或者integer。
2、数据的域分解
城市CA是建立在一个二维矩阵的空间上,对二维矩阵的域分解方式有很多种,而不同的分解方式会产生不同的并行算法。一般来说,有两种较为直接的分解矩阵的方法:按行分解或按列分解,如附图2所示。假设待分解矩阵A的大小为m*n,需要分解给p个进程进行处理的子域,按行分解,p进程的每一个都会负责矩阵中相邻的[m/p]或[m/p]行元素。按列分解与按行分解相似,只不过是矩阵按照列序号进行分解。p个进程的每一个都会负责矩阵中相邻的[n/p]或[n/p]列元素。对于并行城市CA的域分解来说,在处理影元胞时候,需要考虑边界层,一个子域在每次迭代过程t之前需要与2个相邻子域(上下或者左右)进行通讯。具体采用哪种分解方式取决于上述m与n的大小,如果m等于n,采用按行分解或按列分解,结果是一样的;如果m大于n,则可采用按列分解,这样交换的边界相对较小,反之如果m小于n,则可采用按行分解。
3、空间数据的传输
并行城市CA中需要通过局域网快速传输模拟所需要的空间数据,主要有两种方法:一是预先分布好数据,二是通过网络传输数据。预先分布好数据之后,每次运算都不需要进行数据分发,对速度提高有一定好处,但是对数据的集中管理,例如更新数据或者临时更换模拟区域,十分不便;而通过网络传输数据虽然在每次运算之前都必须进行数据分发(实际上,可以通过更合理的管理方式,例如数据缓存,判断是否需要传送数据),但是这种方式能够很好的对数据进行集中管理,从使用者的角度来看,是比较透明和便捷的,而且集中式的控制是本身就符合并行计算的M/S(Master/Slave)运作模式。
本发明采用网络文件系统(Network file system,NFS)来进行数据的共享和分发。NFS是Linux和其他UNIX类操作系统之间的标准文件共享协议,它支持UNIX风格的所有者和权限。这个协议在UNIX世界里得到了普遍的支持,因此在UNIX类操作系统之间共享文件通常不会有什么问题。网络文件系统是基于M/S模型的,客户是要访问文件的计算机,而服务器是允许分布共享的计算机。其主要特点如下:
访问远程主机共享文件的过程与访问本机文件是相同的,所有内部细节对用户透明。
及时文件的物理位置发生变化,也不应该对用户造成任何影响。
用户可以在网络中任何一点访问共享文件。
在UNIX操作系统中,可以通过mount命令将各种设备,包括NFS挂载到本地目录中。
4、影元胞技术实现
本实施例按照列分解的方式介绍通过MPI来更新影元胞的过程。MPI提供MPI_Send和MPI_Recv来执行点对点之间的数据交换,这两个函数的定义如下:
int MPI_Send(void*buf, //存放发送数据的缓存
int count, //数据的长度
MPI_Datatype type,//数据的类型
int dest, //目标进程号
int tag, //数据的标识符
MPI_Comm com) //通讯域
int MPI_Recv(void*buf, //存放接受数据的缓存
int count, //数据的长度
MPI_Datatype datatype,//数据的类型
int source, //源进程号
int tag, //数据的标识符
MPI_Comm comm,//通讯域
MPI_Status*status)//MPI的状态变量
在子域的左右两列再加上两列缓存列(Caching Column),用来接受和发送数据给近邻的进程。通过MPI_Comm_rank可以得到自身的进程号,程序定义left_rank和right_rank来存取左右相邻的进程号,每个进程需要设置以下变量:
int rank=MPI_Comm_rank(),自身的进程号;
int left_rank=(rank-1)%size,相邻左子域的进程号;
int right_rank=(rank-1+size)%size,相邻右子域的进程号;
具体的程序实现如下所示:
int left_rank=(rank-1+size)%size;
int right_rank=(rank+1)%size;
//如果有左邻子域
if(left_rank<rank){
//接受左邻子域的右边界
MPI_Recv(grid[0],nrows+2,MPI_INT,left_rank,i,MPI_COMM_WORLD,&status);
//发送左边界到左邻子域
MPI_Send(grid[1],nrows+2,MPI_INT,left_rank,i,MPI_COMM_WORLD);
}
//如果有右邻子域
if(right_rank>rank){
//发送右边界到右邻子域
MPI_Send(grid[ncols],nrows+2,MPI_INT,right_rank,i,MPI_COMM_WORLD);
//接受右邻子域的左边界
MPI_Recv(grid[ncols+1],nrows+2,MPI_INT,right_rank,i,MPI_COMM_WORLD,status);
}
5、模拟结果的动态显示
在城市CA的迭代运算过程中,实时的、动态的结果反馈是十分重要的组成部分,它能够直观明了的向研究者展示整个模拟过程,方便对模型参数进行调整。而在并行城市CA中,由于整个空间被拆分成子块分散在多个处理器上,即时的结果反馈是比较困难的。因为如果在每次迭代后将所有数据回传,势必造成很大的网络开销,随着数据量的增大,并行计算的优势将削弱,甚至出现加速比小于等于1的情况。对于该问题,可以通过减少显示次数和仅传输变化的数据两项措施来解决。通常来讲,城市CA中变化的单元仅占整个子域空间的小部分,仅仅传输变化的数据,能够显著减少网络的开销。
另外,在结果显示上,考虑到在并行城市CA的模型研究中,不需要实现其他的地图操作,本发明采用Xlib来实现二维矩阵数组的图像显示。Xlib是C语言调用X窗体系统的协议接口,详细地描述了库中每一个函数,以及相关的背景信息。其他的高级X窗体程序都是建立在Xlib库上的。因此,通过Xlib可以与X窗体的最底层直接通讯,其图像显示速度是最快的。
6、总结
附图3是整个并行城市CA的基本框架图。它与经典的MPI程序设计相似,通过多进程运行多份程序拷贝,并在迭代过程中通过MPI进行数据交换、同步达到协同工作。另外,它采用M/S模式,启动并行城市CA的计算机为主控制器,并配置有NFS服务用于分发数据,同时具备参数设置和图像显示等功能。
作为一个实施例,本发明选取珠江三角洲,以及位于珠江三角洲东北部的东莞市作为试验区。采用的遥感影像资料主要是珠江三角洲1988年、1990年和东莞市1993年、1995年的Landsat TM数据;其它辅助资料包括遥感土地利用调查数据、DEM数据、行政区划图及社会经济统计数据。利用TM遥感图像可以快速有效地获得土地利用及变化的信息。珠江三角洲的分辨率为50m,而东莞市的分辨率为28.5m,具体数据如下表1所示。
表1 珠江三角洲和东莞市遥感数据
对遥感影像进行分类后,通过逻辑回归结合MCE进行全局概率的计算,建立逻辑回归模型后,就可以将回归模型的系数导入城市CA模型中,进行模拟运算。
实验过程通过单机的urban_ca程序和purban_ca并行程序来完成,两者均对珠江三角洲和东莞市进行300次的迭代模拟,获取对比数据。urban_ca用于计算单个CPU进行城市模拟所耗的时间;purban_ca通过逐级增加CPU来测试并行城市CA的运行效果。结果由下表2显示,其中CPU1的情况是urban_ca程序模拟的结果,CPU>1的数据是purban_ca的模拟结果。
从表2可以看出,并行城市CA随着处理器个数的增加,速度成倍数提高。为了进一步进行分析,这里选取运算时长、加速比和效率三个指标来度量并行城市CA的性能。运算时长为表3中各个处理器运行所耗时间的最大值,加速比和效率以运算时长为基准进行计算,最终结果如下表3所示。
表3 并行城市CA的运算时长、加速比和效率比较
附图4显示了并行城市CA相对与串行城市CA的运算时长、加速比和效率等情况。由该图可以看出,并行城市CA随着处理器的增加,效率成倍增长。由加速比的图可以看出,并行计算的提速是十分明显的,特别是对东莞市进行模拟时候,其加速比曲线比较接近理想曲线,在10个处理器共同处理下,加速比达到8倍以上,速度提高的效果比较理想。珠江三角洲的加速情况也是不错的,串行情况下进行300次的迭代运算需要消耗大约16分钟的时间,而在10个处理器的并行计算下,只需要大约2分钟,缩短了约14分钟左右的时间。由此可见,影元胞交换的技术同样适用于大范围、高分辨率的空间数据的城市模拟。
Claims (8)
1、一种基于并行元胞自动机的城市演变模拟实现方法,采用元胞自动机对城市的地理现象进行模拟,其特征在于将元胞空间分解成多个子域,再将每个子域分发到每个分布式的处理器上进行处理,最后将所有处理器的运算结果合并成最终的模拟结果。
2、根据权利要求1所述的基于并行元胞自动机的城市演变模拟实现方法,其特征在于所述元胞空间建立在二维矩阵的空间上,元胞空间按行分解或按列分解成多个子域。
3、根据权利要求1或2所述的基于并行元胞自动机的城市演变模拟实现方法,其特征在于每一个子域包括一个或者多个相邻子域的边界层,子域设有边界缓器用来接受和发送数据给近邻子域。
4、根据权利要求3所述的基于并行元胞自动机的城市演变模拟实现方法,其特征在于所述子域分发到处理器上通过网络传输实现。
5、根据权利要求4所述的基于并行元胞自动机的城市演变模拟实现方法,其特征在于所述网络传输采用网络文件系统实现数据的共享和分发。
6、根据权利要求1所述的基于并行元胞自动机的城市演变模拟实现方法,其特征在于采用消息模型为子域之间进行通讯。
7、根据权利要求6所述的基于并行元胞自动机的城市演变模拟实现方法,其特征在于通过消息传递接口实现子域之间的通讯。
8、根据权利要求1所述的基于并行元胞自动机的城市演变模拟实现方法,其特征在每个处理器在对子域进行计算的每次迭代后仅传输变化的数据以减少网络的开销。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102198806A CN101436204A (zh) | 2008-12-12 | 2008-12-12 | 一种基于并行元胞自动机的城市演变模拟实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102198806A CN101436204A (zh) | 2008-12-12 | 2008-12-12 | 一种基于并行元胞自动机的城市演变模拟实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101436204A true CN101436204A (zh) | 2009-05-20 |
Family
ID=40710642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102198806A Pending CN101436204A (zh) | 2008-12-12 | 2008-12-12 | 一种基于并行元胞自动机的城市演变模拟实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101436204A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254106A (zh) * | 2011-08-10 | 2011-11-23 | 武汉大学 | 一种基于元胞自动机的城市扩展模拟方法 |
CN102289581A (zh) * | 2011-08-10 | 2011-12-21 | 武汉大学 | 一种基于空间作用划分的模拟城市扩展的方法 |
CN105447235A (zh) * | 2015-11-12 | 2016-03-30 | 中山大学 | 一种土地未来利用情景动态模拟方法 |
CN105630882A (zh) * | 2015-12-18 | 2016-06-01 | 哈尔滨工业大学深圳研究生院 | 基于遥感数据深度学习的近海污染物识别与跟踪方法 |
CN113554221A (zh) * | 2021-07-08 | 2021-10-26 | 同济大学 | 一种“流空间”视角下的城镇开发边界模拟预测方法 |
-
2008
- 2008-12-12 CN CNA2008102198806A patent/CN101436204A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254106A (zh) * | 2011-08-10 | 2011-11-23 | 武汉大学 | 一种基于元胞自动机的城市扩展模拟方法 |
CN102289581A (zh) * | 2011-08-10 | 2011-12-21 | 武汉大学 | 一种基于空间作用划分的模拟城市扩展的方法 |
CN105447235A (zh) * | 2015-11-12 | 2016-03-30 | 中山大学 | 一种土地未来利用情景动态模拟方法 |
CN105447235B (zh) * | 2015-11-12 | 2018-09-04 | 中山大学 | 一种土地未来利用情景动态模拟方法 |
CN105630882A (zh) * | 2015-12-18 | 2016-06-01 | 哈尔滨工业大学深圳研究生院 | 基于遥感数据深度学习的近海污染物识别与跟踪方法 |
CN105630882B (zh) * | 2015-12-18 | 2019-09-20 | 哈尔滨工业大学深圳研究生院 | 基于遥感数据深度学习的近海污染物识别与跟踪方法 |
CN113554221A (zh) * | 2021-07-08 | 2021-10-26 | 同济大学 | 一种“流空间”视角下的城镇开发边界模拟预测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101350098B (zh) | 一种图像处理的方法、系统及设备 | |
CN104657436A (zh) | 基于MapReduce的静态瓦片金字塔并行构建方法 | |
CN101370025A (zh) | 地理信息数据的存储方法、调度方法及管理系统 | |
CN102567077B (zh) | 一种基于博弈论的虚拟化资源分配方法 | |
Huang et al. | Optimizing grid computing configuration and scheduling for geospatial analysis: An example with interpolating DEM | |
CN102693306A (zh) | 一种多尺度地理数据的在线联动更新服务方法 | |
CN101436204A (zh) | 一种基于并行元胞自动机的城市演变模拟实现方法 | |
CN112948123B (zh) | 一种基于Spark的网格水文模型分布式计算方法 | |
CN109274645B (zh) | 一种智慧城市时空云平台的分层分级访问实现方法 | |
CN102750732A (zh) | 基于gis系统的土地资源利用变化动态预测模型及其使用方法 | |
CN103714184B (zh) | 一种遥感影像快速并行处理方法及装置 | |
CN101256677B (zh) | 一种自动监测仿真及其并行化处理的方法 | |
Guan et al. | pRPL 2.0: Improving the parallel raster processing library | |
Zhu et al. | A collaborative virtual geographic environment for emergency dam-break simulation and risk analysis | |
CN107301094A (zh) | 面向大规模动态事务查询的动态自适应数据模型 | |
Yoshida et al. | CONeP: A cost-effective online nesting procedure for regional atmospheric models | |
CN1680943A (zh) | 分布型cad装置 | |
Immanuel et al. | A parallel implementation of ALFISH: simulating hydrological compartmentalization effects on fish dynamics in the Florida Everglades | |
Chen et al. | An optimized grid-based, OGC standards-compliant collaborative software system for serving NASA geospatial data | |
CN103020197B (zh) | 网格仿真平台及网格仿真方法 | |
Han et al. | Evaluation and analysis of forest carbon sequestration and oxygen release value under cloud computing framework | |
Huang et al. | Research on cluster-based parallel GIS with the example of parallelization on GRASS GIS | |
YU | Design of multi-agent based decision system for building spatial planning | |
Zhao et al. | A new parallel simulation method for massive crowd | |
Guan et al. | GeoComputation in the grid computing age |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090520 |