推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的并行编程技术在批量气象规范报表入库处理中的应用

更新时间:2019-12-25 09:34:34 大小:5M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

为满足中国生态系统研究网络(英文全称Chinese Ecosystem Research Network,简称CERN)对大批量气象规范报表(Excel格式)进行高效快速转换并载入数据库的需求,作者在对当前流行的并行编程方法和技术进行对比研究的基础上,提出了利用Python的多进程编程技术实现报表处理的方案,建立了CERN气象规范报表的抽象数据转换模型,并编写了多进程并行处理程序,实现了将大批量气象报表的快速转换载入Oracle数据库的功能。同时,作者对多进程编程的不同参数设置情景下的转换效率进行了测试、比较和分析。实验结果显示,利用Python并行编程技术可以充分利用计算机硬件的潜力和性能,从而大大提高处理效率,且方法简便、事半功倍。作者最后进一步建议通过利用Parallel Python软件包,可更充分利用计算机多核性能,更大程度提高处理效率。更加满足CERN日益增长的数据快速处理需求。同时本文为类似数据处理需求提供了可借鉴的参考方案。


部分文件列表

文件名 大小
基于Python的并行编程技术在批量气象规范报表入库处理中的应用.pdf 5M

部分页面预览

(完整内容请下载后查看)
2018 年  
2018, Vol. 39, No. 7  
39 卷 第 7 期  
COMPUTER ENGINEERING & SOFTWARE  
国际 IT 传媒品牌  
Python 的并行编程技术在批量气象  
规范报表入库处理中的应用  
郭学兵  
(中国科学院地理科学与资源研究所生态系统网络观测与模拟重点实验室,北京 100101)  
为满足中国生态系统研究网络(英文全称  
,简称  
)对大批  
CERN  
:  
Chinese Ecosystem Research Network  
量气象规范报表(  
格式)进行高效快速转换并载入数据库的需求,作者在对当前流行的并行编程方法和技术  
Excel  
进行对比研究的基础上,提出了利用  
的多进程编程技术实现报表处理的方案,建立了  
气象规范报表  
Python  
CERN  
Oracle  
能。同时,作者对多进程编程的不同参数设置情景下的转换效率进行了测试、比较和分析。实验结果显示,利用  
并行编程技术可以充分利用计算机硬件的潜力和性能,从而大大提高处理效率,且方法简便、事半功倍。作  
的抽象数据转换模型编写了多进程并行处理程序现了将大批量气象报表的快速转换载入  
数据库的功  
Python  
者最后进一步建议通过利用  
软件包,可更充分利用计算机多核性能,更大程度提高处理效率。更加  
Parallel Python  
满足  
日益增长的数据快速处理需求。同时本文为类似数据处理需求提供了可借鉴的参考方案。  
CERN  
中国生态系统研究网络;  
;并行编程;多进程;气象;报表;转换入库  
关键词:  
CERN python  
中图分类号: TP31  
文献标识码: A  
DOI 10.3969/j.issn.1003-6970.2018.07.005  
郭学兵 基于  
的并行编程技术在批量气象规范报表入库处理中的应用  
软件,  
2018  
本文著录格式:  
:  
.
Python  
[J].  
39  
7
2429  
An Application of Python-Based Parallel Programming in Batch Meteorological  
Excel Sheets’ Processing and Loading into Database  
GUO Xue-bing  
(Key Laboratory of Ecosystem Network Observation and Modeling, Institute of Geographic Sciences and  
Natural Resources Research, CAS, Beijing 100101)  
Abstract: In order to meet CERN’s (CERN is acronyms of Chinese Ecosystem Research Network) requirements  
of transforming batch meteorological Excel sheets quickly and loading into database in a high performance and effi-  
ciency, The author study and compare several different parallel programming technologies at present, and Py-  
thon-based parallel programming method is chosen as an approach to transform batch meteorological Excel sheets  
and load into Oracle database. Firstly the author build an abstract data model to describe data transform structure,  
then edit code using python-based multiprocessing parallel programming, at last the author analyze different trans-  
forming performance under condition of setting various parameters for multiprocessing parallel programming. The  
study result shows that python-based multiprocessing parallel programming method can fully utilize the computer ‘s  
hardware potential benchmark so as to promote the transform performance. Moreover, the method is quite simple  
and high efficient. The author suggest that Parallel Python package should be installed and imported, multi-core  
computers’ performance then could be utilized thoroughly to promote CERN’s data transforming performance much  
better in the future. This paper also provides a reference solution for other similar data transform requirement.  
Key words: Chinese ecosystem research network; CERN; Python; Parallel programming; Multiprocessing; Me-  
teorological sheet; Transform and load into database.  
中国科学院战略性先导科技专项(A)(XDA19020301)资助  
基金项目:  
作者简介:  
郭学兵(1967 ),女,副教授,主要研究方向:生态信息学。  
郭学兵:基于 Python 的并行编程技术在批量气象规范报表入库处理中的应用  
研发发生了基础性变化。基于多核的并行处理是充  
0 引言  
分发挥多核 CPU 强大运算能力的有效途径行计  
中国生态系统研究网络(英文全称 Chinese  
算模式正成为当前及未来程序开发的发展趋势,具  
有十分广阔的应用价值[4]。  
Ecosystem Research Network,简称 CERN)始建于  
1988 CERN 包含覆盖全国主要类型农  
田、森林、草原、荒漠、湿地、湖泊、海湾生态系  
统等)共计 44 个野外生态站,另有水分壤、大  
气等 5 个学科分中心和 1 个综合中心。CERN 与美  
国长期生态研究网络(US LTER Network)和英国  
环境变化网络(ECN)并列成为世界最为重要的国  
家级生态系统网络中国生态学领域的重要观测、  
研究、示范基地[1]。  
传统程序基本上是为顺序处理器书写的,大部  
分程序在多处理器上不能直接获得加速,不再适应  
新形势下的数据处理需求。解决这一问题的途径之  
一是使用多处理器并行处理技术把顺序程序转换为  
并行程序[5],才能充分利用目前多核计算机等提供  
的计算资源等。  
本文主要针对 CERN 生态站大批量的由自动气  
象观测站采集的固定格式 Excel 数据报表,进行快  
速转换并入库的并行处理技术方法进行分析究、  
实践验证。作者首先对当前流行的并行编程方法和  
技术进行了对比研究出了基于 Python 多进程编  
程技术实现报表转换入库的构。然后建立了 CERN  
气象规范报表的抽象数据转换模型Python2.7  
编写了多进程并行程序,实现了气象规范报表的快  
速转换及载入 Oracle 数据库功能,并对多进程编程  
的不同参数设置情景下的转换效率进行了比较和分  
果表明基于 Python 的并行处理技术极大提升  
了应用程序的运行效率分发挥了计算机硬件性能。  
CERN 以野外生态站为基础单元开展各类生态  
系统中水分、土壤、生物、大气环境要素的长期观  
测,产生的数据由相关各方(产生者—生态站,质  
量控制者—学科分中心,数据集成者—综合中心)  
按照统一规定的数据监测规范及信息规范,对数据  
进行相应处理并实现生态站-分中心-综合中心逐级  
质量控制和数据报送。综合中心是所有生态站、各  
类环境要素数据的最终集成单位,因此综合中心必  
须通过开发软件系统,实现这些数据的快速处理、  
入库及网上发布共享等整套业务的长期稳定运行,  
以便为我国生态与环境保护、资源合理利用和国家  
可持续发展及应对全球变化等提供长期、系统的科  
学数据和决策依据[1]。  
1 多线程并行程序设计方法概述  
根据对并行处理技术的综述性文献内容进行归  
纳总结,多线程并行程序设计方法目前主要包括以  
下几种[6]:  
CERN 传统气象数据报表转换入库处理程序采  
用 微 软 Windows 环 境 下 OFFICE COM 对 象  
Component Object Model)的面向对象编程方法,  
Microsoft Visual Foxpro6.0 程环境下实现对  
Excel 文件的读显式或隐式运行 Excel 应用操  
作工作薄作表对象现数据存取操作等实  
现从 Excel 数据到 VFP 数据库表(.dbf 文件)的数  
据移动[2]。然后再将.dbf 文件数据表升迁到 Oracle  
数据库。  
1)显示线程编程  
并行编程可以调用系统函数启动多线程如:  
PthreadsJava 线程类、微软 Widows 线程 API。  
2)利用并行编程模型的编译器指导的编程  
OpenMPOpenMP 是一种面向共享内存的  
多处理器多线程并行编程模型,为在共享  
存储的多处理机上编写并行程序而设计的  
应用编程接口,运行在单机多核并行计算  
环境下一个小型的编译器命令集组成,  
包括一套编译制导语句和一个用来支持它  
的函数库。OpenMP 的编程模型以线程为  
基础,通过编译指导语句来显示地指导共  
享内存的多线程并行化,为编程人员提供  
了并行化的完整控制过与标准 Fortran,  
C C ++结合进行编程[5]  
这种传统的数据处理方法需要不断地进行 I/O  
处理,因此造成处理时间过长[3],不能充分利用计  
算机性能,导致数据处理效率低下(CERN 单一指  
标的数据处理大约耗费半小时。  
随着 CERN 野外生态站个数、监测指标个数不  
断增加等情况出现,数据采集正朝着海量化方向发  
展,这对数据处理和质量控制的效率提出了更高挑  
战;同时,计算机硬件技术也日新月异地发展,处  
理器性能不断提高,且多核处理器已成为当前处理  
器技术的发展方向,这些硬件变化的同时引领软件  
Intel TBBIntel Thread Building Block 编  
译器  
《软件杂志欢迎推荐投稿:
25  

全部评论(0)

暂无评论