府及时预警暴雨天气下的道路积水信息并进行应急指挥
园区通过人脸识别进行权限管理、智能运维、资产管理
百姓通过地图随时查找附近停车空位、搜索周边景点……
我们的城市正在变得更聪明
企业运营越来越高效
百姓生活越来越便利
这就是新型智慧城市的目标:“优政、兴业、惠民”
作为城市信息化创新发展的高级阶段,新型智慧城市综合利用物联网、云计算、5G移动服务、信息融合等技术,实时感知检测与智能控制掌握城市运行状态信息,通过信息融合实现政府、企业、个人、基础设施等之间的高度协调运行,为社会发展、城市管理和人民生活创造和谐高效环境。
地理信息系统(geographic information system,GIS)是新型智慧城市的“大脑”,通过城市信息的实时获取、高效处理和快速响应,从而快速的发现问题、分析问题和解决问题,实现城市的智慧化运营。目前,越来越多的城市依托GIS进行城市的规划管理,从而让城市更加宜居,生活更加便利,决策更加精准。
中地数码集团是专业从事地理信息系统(GIS)研究、开发、应用和服务的云GIS软件平台和解决方案提供商。历经三十多年发展,其GIS核心技术已跻身国际一流行列。MapGIS智慧城市时空大数据平台作为其重要解决方案在国土、市政、公安、气象等领域有着广泛的应用。随着新型智慧城市的深入建设,以及大数据、云计算、智能化等新技术的演进,承载时空大数据平台的基础设施也迎来更多挑战:
1.大体量:数据规模基于城市区域规模呈指数级增长,例如城市三维建模涉及的动态数据量,一千平方公里可达到TB级,省级/国家级数据量可达PB级,随着三维建模业务需求越来越多,数据量爆发式增长,对大容量的数据存储和处理要求高;
2.高并发:海量数据面临高性能并发计算的挑战,地图数据服务的并发量平均可达数十万/秒;
3.低时延:智慧城市IoT应用场景对数据实时处理要求很高,需要秒级完成数据的采集、分析、出结果。
4.低功耗:大规模的计算量带来了能耗提升,为响应国家环保号召,需要低功耗硬件实现节能减排。
因此,中地数码急需融合性能高效、自主程度更高的基础设施来承载MapGIS时空大数据平台,以满足城市级别的数据融合和管理,为用户提供更加灵活的一体化的方案。
鲲鹏由于其天然的多核多并发的扩展运行能力,以及高性能、高算力优势,能够很好的满足数据量大、并行计算、低时延等要求;同时提供完善的DevKit开发套件以及专业服务,能够快速实现迁移和调优。基于此,2020年12月,中地数码联合长江鲲鹏生态创新中心成立了MapGIS地理信息系统联合实验室,双方经过多轮技术测试及方案集成验证,推出长江鲲鹏&中地数码智慧城市时空大数据底座联合方案,基于鲲鹏平台部署智慧城市时空大数据底座联合方案,从而提升应用系统的运行效率,打造智慧城市应用基座。
【基于鲲鹏的智慧城市时空大数据底座联合方案—总体架构】
在项目实施过程中,由于指令集差异问题,需要把MapGIS时空大数据平台迁移到鲲鹏平台上重新编译运行。然而该应用的代码量和代码组织都很复杂,给迁移工作带来不少挑战:
· 依赖库、第三方软件多:包含100+so动态库,500+JAR包,全部需要通过手工查找、迁移,非常耗时;
· 代码量大:三个待迁移产品涉及10个服务,共计122万行代码;
经过分析,如果通过人工迁移,整个项目的迁移需要近100人月才能完成,工作量巨大。
为了解决上述迁移问题,中地数码在对接过程中使用了鲲鹏DevKit开发套件进行快速迁移和调优,将GIS运维管理中心、存储引擎MapGIS DataStore、分析引擎MapGIS IGServer-X三个重要应用迁移到鲲鹏平台。
在DevKit的帮助下,单应用仅需1.5人天即可完成迁移,三个应用总计6人天完成了迁移,并且迁移之后应用的性能更佳。
· 快速迁移:通过代码迁移工具完成应用的扫描、分析、代码移植,平均迁移效率1.5人天每应用
通过DevKit鲲鹏开发套件中的代码迁移工具Porting Advisor进行工程文件的自动扫描分析,快速定位所要移植的代码并评估工作量,从而帮助迁移人员更好的规划迁移工作。同时,该工具还能自动标识需要修改的代码并给出修改建议,并且可直接从分析报告中获取鲲鹏兼容的JAR包下载地址,避免了人工查找时间长、门槛高、效率低的问题。
在上述工作中,迁移人员通过Porting Advisor共识别出依赖文件108个,已兼容JAR包41个,去重待验证JAR包9个,去重待验证so文件58个,其中兼容JAR包可直接下载替换,整个迁移加调优平均单应用耗时1.5人天,大大提高了迁移效率。
使用代码迁移工具分析结果对比图【分析前】
使用代码迁移工具分析结果对比图【分析后】
· 编译调试:使用毕昇JDK实现13~15%的程序运行效率提升
在编译的过程中通过编译器毕昇JDK提升编译后的程序运行效率,由于毕昇JDK在鲲鹏平台上进行了优化和稳定性增强,尤其针对存储引擎和分析引擎等对并发要求高的应用场景能够提供更好的编译性能。基于MapGIS程序进行测试评估:相比于Oracle JDK,使用毕昇JDK后可以实现10~15%的运行效率提升。
使用Oracle JDK1.8的Spark性能分析结果
使用毕昇 JDK1.8的Spark性能分析结果
使用毕昇 JDK11的Spark性能分析结果
· 性能调优:基于Java性能分析工具深度优化GIS平台,整体性能提升18-20%;
在性能调优过程中还应用到鲲鹏性能分析工具,监控和优化操作系统、JVM的运行状态,提升MapGIS程序(存储引擎&分析引擎)运行的效率:
1) 通过Java优化工具有效分析应用场景下系统资源的使用情况及利用率等,避免系统过载;
2) 通过Java性能优化工具有效分析应用JVM运行情况,给出最优配置,避免JVM过载、GC及时释放资源,提升运行效率;
3)进行业务系统的并发参数调优,提升大数据处理下的并发任务数。
迁移人员基于矢量大数据分析和影像大数据分析两个场景进行了调优前后的对比测试:
在矢量大数据分析场景中对某省千万级土地利用图斑数据进行分析,整体分析速度平均提升20%;
在影像大数据分析场景中,对1.5T影像数据进行发布,整体速度提升18%;
【大数据分析场景性能对比图】
经过DevKit的一系列迁移和调优,智慧城市时空大数据底座联合方案快速完成了业务部署。目前该方案已经在数字政府、智慧城市、自然资源等众多领域落地。同时,该方案还在2021年7月鲲鹏应用创新大赛2021湖北赛区中斩获了金奖。
作为鲲鹏计算产业生态重要伙伴,中地数码已与长江鲲鹏生态创新中心建立长期合作关系,未来,鲲鹏还会为伙伴和开发者提供完备、易用和高效的工具链,使能伙伴联合创新,打造更具竞争力的行业解决方案,促进千行百业数字化转型,也为数字经济发展提供源源不断的动能。