一种计算植物冠层光分布的并行仿真系统

2018-03-13 22:26谢文昊
现代电子技术 2018年6期
关键词:客户机

谢文昊

摘 要: 光照对植物冠层生长、繁殖的影响是巨大的,但在仿真植物冠层光照分布的过程中由于需要处理的数据量很大,如果利用单处理器计算机计算,会导致计算耗时过长,甚至无法得到高精度的仿真结果。为了提高计算速度,将用于计算植物冠层光分布的深度缓存排序算法进行并行化处理,移植到大型多处理器计算机上进行计算,并通过在普通计算机上开发客户端对仿真计算进行控制。设计实现一套基于客户机?服务器模式的仿真系统。应用该系统对不同生长时期的水稻进行光照仿真,得到了效果图。从而得出结论该系统在分析植物生长趋势模拟全天冠层光照变化方面有着很大的应用前景。

关键词: 植物冠层; 光照分布; 并行仿真; 客户机?服务器模式; MPI并行模式; 深度缓存排序算法

中图分类号: TN212?34; TP181 文献标识码: A 文章编号: 1004?373X(2018)06?0150?04

Abstract: Illumination has a great influence on the growth and propagation of plant canopy. As a large amount of data needs to be processed during the simulation process of plant canopy illumination distribution, the time consumption of calculation can be very long, and the high?precision simulation results cannot even be obtained if the single processor computer is used for calculation. To improve the calculation speed, the parallel processing is performed for the Z?buffer sorting algorithm which is used for calculation of plant canopy illumination distribution and then transplanted to the large multiprocessor computer for calculation. The simulation calculation is controlled by developing the client on the ordinary computer. A simulation system based on client?server mode was designed and implemented. The system was applied to illumination simulation for paddies in different grown periods and the effect diagram was obtained. It can be concluded that the system has a great application prospect in plant growth tendency analysis and full?day canopy illumination variation simulation.

Keywords: plant canopy; illumination distribution; parallel simulation; client?server mode; MPI parallel mode; Z?buffer sorting algorithm

0 引 言

植物生长过程离不开光照的影响,因此计算光照在植物冠层内的分布情况就很有必要[1]。随着计算机图形学的发展和应用,目前常用的模拟方法有:辐射度方法[2]、光线跟踪方法、深度缓存排序算法等[3]。其中深度缓存排序算法主要是先分别计算植物冠层在各方向光线直射下由于相互遮挡而产生的叶片对光辐射的截获情况再进行多方向叠加从而得到仿真结果。该方法虽然忽略了光的反射透射作用,但对于主要表现为光线直射部分的光合有效辐射分布的模拟有着很高的精度,因此被广泛使用。另外,各方向上的光分布计算相互独立,也很适合算法并行化处理。

近年来,计算机硬件技术不断创新发展,高性能的多处理器计算机已经成为科学计算的主要工具之一[4]。MPI并行模式也已作为一种普遍流行的并行编程规范被人们广泛接受。并行计算是相对于串行计算而言的,并行计算是指在同一时间间隔内增加操作系统进程数量,利用多台计算机共同实现同一个任务。MPI(Message Passing Interface)可以将一个大型任务分解成多个进程,再把这些进程分配给多台计算机进行并行处理,通过计算结果的综合来得到最终结果[5]。本文将传统串行实现的用于计算植物冠层光分布的深度缓存排序算法并行化处理,并移植到高性能多处理器计算机上运行,建立服务器程序。因为普通用户很难直接操作高性能计算机,所以相应地设计开发了安装在普通电脑上用于控制服务器的客户端。从而建立了一套客户端?服务器模式的植物冠层光分布的并行仿真计算系統。

1 并行算法

1.1 深度缓存排序算法原理

深度缓存(Z?buffer)[6]最早由Catmull提出,是一种典型的、最简单的图像空间面消隐算法,但所需的存储容量较大。该算法的原理是,先将待处理的景物表面上的采样点变换到图像空间(屏幕坐标系),计算其深度值,并根据采样点在屏幕上的投影位置,将其深度值与已存储在Z缓存器中相应像素处的原可见点的深度值进行比较。如果新的采样点的深度(即Z轴坐标值)大于原可见点的深度,表明新的采样点遮住了原可见点,则用该采样点处的颜色值更新帧缓存器中相应像素的颜色值,同时用其深度值更新Z缓存器中的深度值;否则,不做更改。深度缓存算法是在为物件进行着色时,执行“隐藏面消除”工作的一项技术,所以隐藏物件背后的部分就不会被显示出来。 在3D环境中每个像素中会利用一组数据资料来定义像素在显示时的纵深度。Z?buffer所用的位数越高,则代表该显示卡所提供的物件纵深感也越精确。endprint

当忽略光的反射、透射作用,只考虑光的直射影响时,植株结构相互遮挡是植物冠层内的光分布差异情况产生的主要原因,所以是可以应用深度缓存算法进行计算的。文献[7]中给出了在计算植物冠层光分布时的原模型,如图1所示。先确定一块矩形的植物冠层区域为实际观测区域,假设该实测区域周围存在着与实测区域冠层结构完全相同的植物冠层,这样假设是为了避免其周围区域(称其为复制域)的冠层结构因为遮挡而对区域内的光分布产生影响,见图1。

此外,为了方便投影,该方法还要在三维空间坐标系中对叶面进行划分,将其分割成很小的空间三角形面元,在如图1所示的光线照射下来进行投影[7]。

该算法在投影过程中先在冠层正上方建立光照平面,将它作为全部入射光线的来源,并将光照平面进行二维网格化[8],在光照平面二维网格化的基础上假定每个网格上有一条入射光线。接下来,由光线方向将叶片面元投影到上述的光照平面上。对于类似于图1中的A这样的投影不在投影平面的小面元,可以用复制域中和A位置相同的面元B的投影来代替它。最后使用Z?buffer深度排序法计算投影后落在同一个小网格的小面元序列的深度缓存值,以便找到距离光照平面最短的小面元。这样可以通过此面元光照的分布情况,进而统计出光照在植物冠层中的三维分布[9]。

上述投影过程中,面元的投影算法可以通过下式得到。设实测区域内任意一点[(x,y,z)]投影后的坐标就可以表示为:

[px=x+(ytop-y)?cos(SunAzimuth)tan(SunH)pz=z+(ytop-y)?sin(SunAzimuth)tan(SunH)]

式中:采用右手坐标系,x轴向正南,y轴向正上,z轴向正西;[px],[pz]为[x,z]方向上投影后的坐标值;[ytop]为实测区域高度;SunAzimuth为太阳方位角,以正南为0°,向西为正,向东为负;SunH为太阳高度角,即太阳与地平面的夹角。

1.2 算法的并行化

仿真野外条件下植物冠层光照的分布情况,就要在各方向上先分别对植物冠层进行深度缓存排序来计算单一方向光入射时植物冠层光分布结果,再对各方向计算结果进行累加。单处理器计算机只能依次串行的计算每个方向上的光照情况再将结果相加,工作量大、耗时长。另外又受到实际内存限制常常得不到令人满意的高精度仿真结果。而多处理器高性能计算机则可以同时并发地执行多项任务,所以并行化算法将每个方向上的光照分布计算工作平均分布到高性能计算机不同的处理器中并发执行,并将结果汇总到共用的数据容器中,下面把像这样的负责某一方向上深度缓存排序计算的处理器称为计算节点。如图2所示,每一个计算节点上运行着一个计算光分布的进程,彼此相互独立平行。利于读写锁维护共用数据容器的正确使用。当最后一个计算节点上光分布运算进程结束时,共用数据容器中的光分布结果便是自然条件下多方向光同时入射植物冠层时产生的光辐射分布情况[10]。

2 系统的设计与实现

植物冠层并行仿真系统采用客户机?服务器系统结构模式,并基于面向对象的思想进行设计,使用C++语言进行实现,并结合OpenGL做三维可视化显示。整个系统采用模块化的设计思想,将系统不同功能封装在不同的逻辑模块中。其中主要的模块有:并行运算模块、服务器监听模块、客户机人机交互模块和三维显示模块。

2.1 并行计算模块的设计和实现

该模块运行在联想深腾1800高性能多处理器计算机上,操作系统为Redhat5。算法采用MPI+C并行编程技术,完成计算植物冠层光分布的深度缓存排序算法的并行化工作。其中主要类为:

1) Light类:系统光源类。主要建模实现了单方向上的平行光线。

2) Sky类:天空类。将天空半球的漫反射光线划分为多方向上的平行入射光线,并为每一方向上的光线提供初始辐射强度。

3) Triangle类:叶片面元类,记录叶片面元坐标信息,用于计算深度缓存排序。

4) Calculatefork类:节点计算控制类。用于控制计算节点中光分布模拟的算法流程。

5) Communicate类:节点通信控制类。负责不同计算节点之间的通信控制,管理读写锁等工作。

各类的具体关系见图3。

2.2 服务器监听模块的设计和实现

该模块同样运行于高性能计算机上,主要负责监听客户端发来的计算请求,根据请求建立并行运算服务,检测用户上传数据是否合理,并在运算过程中将实时信息传给远程客户端。模块采用Socket套接字编程技术进行网络进程间的通信。使用TCP/IP协议三步握手式建立连接方法,确保数据在本地服务器和远程客户机之间的无误传输。采用多进程技术保证服务器可以同時响应多个计算请求。主进程一直等待监听,如有客户端传来的计算请求则开启新的子进程完成计算。总的来说,该部分提供了并行计算模块和远程客户端之间的通信控制服务。其主要算法流图如图4所示。

2.3 客户机人机交互模块的设计和实现

该模块运行于普通个人电脑的Windows操作系统下,在VC++环境下采用MFC实现。它主要为用户提供一个人机交互的GUI平台,接收用户设计的运算参数和数据文件并进行上传。向用户显示运算过程信息,并在运算结束后将服务器指定位置下的运算结果下载到本地,供科学分析和三维显示模块生成仿真效果图使用。从而达到用客户端GUI控制服务器并行运算的目的。

2.4 三维显示模块的设计和实现endprint

该模块负责根据下载到客户端的光分布运算结果数据建立仿真效果图并用OpenGL方法来实现三维渲染,完成系统所需的可视化处理和输出。为分析人员提供直观感性的仿真结果。植物冠层光分布的并行仿真计算系统有客户端、服务器两大部分,并由服务器监听模块、人机交互模块、并行计算模块以及三维显示模块四个主要模块组成。它们的相互关系如图5所示。

以上四部分相互协作完成了系统的主要数据输入,并行仿真计算和结果输出等功能。

3 实 验

植物冠层光分布的并行仿真计算系统服务器程序的两部分在Linux系统下分别使用Inter编译器和GUN编译器编译成功,客户端程序在Windows上用Visual Studio 2005开发调试成功,图6给出了仿真计算不同时期水稻光照分布后客户端显示的效果截图。

通过图6可以清楚地看到水稻不同时期光照的效果图,并且能够了解服务器端运行信息,使用户感觉计算就像在本地运行一样。同时由于每个计算节点任务量相对固定,均为单一方向光分布计算。所以该系统仿真计算耗时不随天空光照方向数增多而增加。服务器返回结果显示,每次计算耗时仅为十多秒,这极大地提高了计算效率,是普通串行算法无法达到的。

另外系统客户端不但能生成冠层的三维结构,还能应用图像控制标签栏对仿真效果图进行缩放、3D旋转、颜色渲染等操作,这方便了对三维冠层的观察操作,提供了一种良好的交互方式。同时系统还能通过任务标签栏管理计算结果文件。使科研人员可以进一步查阅数据分析仿真结果。

4 结 论

综上,植物冠层光分布的并行仿真计算系统将传统的深度缓存排序算法进行了并行化处理,并基于面向对象的设计思想进行实现,系统主要部分实现模块化管理,使它拥有良好的扩展性和维护性。目前系统基本功能已经实现,接下来还可以在客户端根据用户多种分析需要进一步添加更多的计算结果数据显示分析方法,使其不断完善。而在服务器端,目前系统实现了深度缓存排序算法的并行化,在其并行化的基础上还可以将其他光照分布算法做同样处理并移植到大型机去进行仿真计算,随着系统的不断成熟和发展,系统客户端可以广泛提供给没有条件购买大型机的科研教学用户使用,使更多人可以方便快速地进行仿真计算。相信在不远的将来,该系统一定会成为科研和教学中十分有用的冠层光辐射分布计算的仿真模拟平台。

参考文献

[1] VERHOEF W. Light scattering by leaf layers with application to canopy reflectance modeling: the SAIL model [J]. Remote sensing of environment, 1984, 16(2): 125?141.

[2] GORAL C M, TORRANCE K E, GREENBERG D P. Modeling the interaction of light between diffuse surfaces [J]. ACM SIGGRAPH computer graphics, 2008, 18(3): 213?222.

[3] CHELLE M, ANDRIEU B. The nested radiosity model for the distribution of light within plant canopies [J]. Ecological modelling, 1998, 111(1): 75?91.

[4] 谷传才,关楠,于金铭,等.多处理器混合关键性系统中的划分调度策略[J].软件学报,2014,25(2):284?297.

GU Chuancai, GUAN Nan, YU Jinming, et al. The division scheduling strategy of multiprocessor hybrid critical system [J]. Journal of software, 2014, 25(2): 284?297.

[5] 卢云娥,黄宗宇,李超阳,等.基于微机集群系统的MPI并行计算[J].电子设计工程,2011,19(5):78?81.

LU Yune, HUANG Zongyu, LI Chaoyang, et al. Parallel computation of MPI based on microcomputer cluster system [J]. Electronic design engineering, 2011, 19(5): 78?81.

[6] 郭惠,符红光,罗东辉.三维动态几何中直线消隐的实现[J].计算机应用,2007,27(3):663?665.

GUO Hui, FU Hongguang, LUO Donghui. The realization of linear cancellation in three?dimensional dynamic geometry [J]. Computer application, 2007, 27(3): 663?665.

[7] 肖强,劳彩莲,王春霞.植物冠层光辐射分布的快速深度缓存算法[J].计算机工程,2010,36(15):288?290.

XIAO Qiang, LAO Cailian, WANG Chunxia. The rapid depth cache algorithm of the photoemission distribution of plant canopy [J]. Computer engineering, 2010, 36(15): 288?290.

[8] 李静,王文成,吴恩华.基于空盒自适应生成的动态场景光线跟踪计算[J].计算机学报,2009,32(6):1172?1182.

LI Jing, WANG Wencheng, WU Enhua. The dynamic scene light tracking calculation based on the adaptive generation of the empty box [J]. Chinese journal of computers, 2009, 32(6): 1172?1182.

[9] 黄帆,劳彩莲,肖翠霞.基于光线跟踪的冠層光分布模型参数研究[J].中国农业大学学报,2013,18(6):96?101.

HUANG Fan, LAO Cailian, XIAO Cuixia. Parameters in the model of canopy light distribution with ray tracing approach [J]. Journal of China Agricultural University, 2013, 18(6): 96?101.

[10] 王昊鹏,赵凯,宋凤斌,等.植物冠层光照的建模与虚拟现实仿真研究[J].农业系统科学与综合研究,2010,26(1):68?74.

WANG Haopeng, ZHAO Kai, SONG Fengbin, et al. Study on the modeling of canopy illumination and virtual reality simulation [J]. System sciences and comprehensive studies in agriculture, 2010, 26(1): 68?74.endprint

猜你喜欢
客户机
虚拟技术在计算机实验教学示范中心的应用研究
隔山亦能打牛,本本巧变远控利器
基于无线传感网的MA计算模式性能分析
基于双TLB的二进制翻译访存性能优化
用移动设备完成环境监测
瘦客户机:安全与便捷的选择
惠普核心代理:瘦客户机正在从边缘走向主流
升腾瘦客户机借神码翱翔“云端”
嵌入式网络监控系统设计方案