登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 理工学类 > 应用物理 > 正文

等离子体模拟程序的并行读写模块开发毕业论文

 2021-12-02 13:05:00  

论文总字数:43771字

摘 要

PIC/MC(Particle-In-Cell/Monte Carlo, PIC/MC)作为一种计算机数值模拟方法,广泛应用于等离子体物理等领域。在PIC/MC模拟中,通常粒子的数量可以达到108-1010量级,并且数值模拟产生的数据还包括每个粒子的位置、大小、重量、速度以及电磁场强度等多维信息。因此,数值模拟产生的数据量是极为巨大的。

对于如此庞大的数据量,采用何种方式进行数据存储是一个值得研究的课题。我们原始的iPM程序是采用文本文件来对数据进行存储的,采用这种方式的缺点是读取数据的所需的时间长,并且生成的文本文件占用空间大。为解决这一问题,本文将介绍如何扩展iPM程序从而实现对HDF5文件的调用,并且进一步实现对HDF5文件的并行读写。

通过改用HDF5文件进行数据存储,大大加快了程序对文件的读写速度以及减小了文件的占用空间。对比文本文件,采用HDF5文件进行数据存储时,写入速度快了36倍,读取速度快了19倍,文件占用空间小了5倍。

关键词:PIC/MC模拟;数据存储;HDF5

Abstract

PIC / MC (Particle-In-Cell / Monte Carlo, PIC / MC) as a computer numerical simulation method is widely used in plasma physics and other fields. In the PIC / MC simulation, the number of particles can usually reach the order of 108-1010, and the data generated by numerical simulation also includes multi-dimensional information such as the position, size, weight, speed, and electromagnetic field strength of each particle. Therefore, the amount of data generated by numerical simulation is extremely huge.

For such a huge amount of data, which method to use for data storage is a subject worth studying. Our original iPM program uses text files to store data. The disadvantage of this method is that it takes a long time to read the data and the generated text files take up a lot of space. In order to solve this problem, this article will introduce how to extend the iPM program to realize the transfer of HDF5 files, and further realize the parallel read and write of HDF5 files.

By switching to HDF5 files for data storage, the program reads and writes files faster and reduces the file footprint. Compared with text files, when using HDF5 files for data storage, the writing speed is 36 times faster, the reading speed is 19 times faster, and the file occupation space is 5 times smaller.

Key words: PIC / MC simulation;Data storage;HDF5

目录

第一章 绪论 4

1.1 数据存储 4

1.2 科学计算中的数据存储 4

1.2.1 Fortran的数据文件 4

1.2.2 NetCDF 5

1.2.3 HDF 5

1.3 PIC/MC中数据存储的发展现状 7

第二章 PIC/MC和IPM程序的数据读写实现 9

2.1 PIC/MC的基本数据 9

2.2 串行的数据读写实现 9

2.3 并行的数据读写实现 13

第三章 HDF5 16

3.1 HDF5的基本信息 16

3.1.1 Group 和 Dataset(组和数据集) 16

3.1.2 Metadata 17

3.2 HDF5的安装 17

第四章 HDF5 在 iPM 程序中的实现 19

4.1 HDF5 的 Fortran2008 调用接口实现 19

4.2 iPM 调用 HDF5 20

4.2.1 HDF5文件的串行读取实现 23

4.4.2 HDF5文件的并行读取实现 28

第五章 总结与展望 31

5.1 课题总结 31

5.2 未来展望 31

致谢 32

参考文献 33

第一章 绪论

1.1 数据存储

数据存储指的是信息在存储介质中进行存储这一过程。常见的存储介质有DNA,RNA,唱片,磁带等等。而对于计算机来说,其存储介质有磁带存储器、半导体存储器、磁芯存储器等一些存储器。存储器又分为内存储器和外存储器,其中内存储器存取速度快,但是容量有限,CPU可以直接访问,外存储器存储容量大,存取速度比内存慢,外存储器中存放的数据必须调入内存储器后才能被计算器执行和处理[1]

文件格式是指电脑为了存储信息而使用的对信息的特殊编码方式,是用于识别内部储存的资料[2]。比如有的文件中存放着音乐,有的文件中存放着图片,还有的文件中存放着文字。对于一种信息,不仅仅只对应着一种文件格式,即对于一种信息电脑可以使用多种编码方式。例如常见的图片文件格式有PSD格式、GIF格式、PEG格式等;常见的视频文件格式有AVI格式、MOV格式、FLV格式、MP4格式等;常见的文本文件格式有TXT格式、DOC格式、PPT格式等。

1.2 科学计算中的数据存储

科学计算是为解决科学和工程中的数学问题利用计算机进行的数值计算[3]。通常情况下,科学计算需要的数据量是十分庞大的,为了便于存储和使用这些数据,在科学计算中会使用一些特定文件格式对数据进行存储,下面介绍科学计算中数据存储对应的一些常用文件格式。

1.2.1 Fortran的数据文件

Fortran中的数据存储文件可以分为两类,第一类是字符形式(ASCLL),通常情况下也叫做文本文件;第二类是二进制数代码形式,也称其为二进制文件。文本文件是采用ASCLL码编码的,所以文本文件编码是根据字符来确定长度的,同时译码也是比较容易的,除此之外,文本文件还有一大优点是可读性十分好,对文件进行后处理是很方便的。而二进制文件是采用二进制编码的,因此二进制文件的编码是十分长的,译码十分困难,但是二进制文件有两大优点:一是占用存储空间小,二是存储不存在转换时间 [4]

1.2.2 NetCDF

NetCDF(网络通用数据格式)是用于科学数据访问的接口,同时也是一组自由分发的软件库,该软件库提供该接口的实现。NetCDF库还定义了一种与机器无关的格式来表示科学数据。它的界面,库和格式都支持科学数据的创建,访问和共享。利用NetCDF可以对网格数据进行高效地存储、管理、获取和分发等操作[5]

NetCDF数据具有Self-describing、Network-transparent、Direct-access、Extendible、Platform independence等特点,广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域[6]

1)Self-describing:NetCDF文件是自描述的,网络透明的,可直接访问且可扩展的。

2)Network-transparent:表示NetCDF文件以一种格式表示,计算机可以使用不同的方式来存储整数,字符和浮点数。

3)Direct-access:意味着可以高效访问大型数据集的一小部分,而无需先读取所有先前的数据。

4)Extendible:意味着可以将数据附加到NetCDF数据集,而无需复制或重新定义其结构。

5)Platform independence:NetCDF可用于支持在异构网络环境中访问各种科学数据,以及用于编写不依赖于特定于应用程序格式的应用程序软件。

1.2.3 HDF

HDF是美国国家高级计算应用中心为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式[7]。从最底层看,HDF是一种用于存储科学数据的物理文件格式,在最高级别,HDF是用于操纵,查看和分析HDF文件中数据的实用程序和应用程序的集合,在这些级别之间,HDF是一个软件库,提供高级API和低级数据接口。

HDF4存在很多的缺陷,它缺乏清晰的对象模型,这导致难以持续支持和改进,支持多种不同的接口风格(图像、表格、数组)导致了复杂的API。最重要的是,使用32-bit位有符号整数寻址限制了HDF4文件大小极大为2GB,这在很多现代科学应用中是不可接受的。

HDF5格式被设计为解决HDF4库的某些限制,并致力于满足现代系统和应用的当前要求[8]。HDF5是用于存储和管理数据的数据模型,库和文件格式。它支持无限多种数据类型,专为灵活高效的I / O以及大容量和复杂数据而设计。HDF5是便携式的并且可扩展,从而允许应用程序在使用HDF5时不断发展。HDF5技术套件包括用于管理,操纵,查看和分析HDF5格式数据的工具和应用程序。HDF5特点如下:

1)异构数据:HDF5中的n维数据集和数据集中的每个元素本身可以是一个复杂的对象。

2)轻松分享:HDF5是便携式的,没有供应商锁定,并且是自描述文件格式,这意味着所有的一切数据和元数据可以沿着一个文件传递。

3)跨平台: HDF5是一个软件库,可以在一系列的计算平台上运行,并实现了与C,C ,Fortran 90的一个高层次的API,以及Java接口。除此之外,HDF5还具有700多个Github项目的大型生态系统。

4)快速I / O: HDF5具备高性能I / O,并且提供了一套丰富的集成性能特性,允许访问时间和存储空间优化。

5)大数据: 集合中数据对象的数量和大小没有限制,为大数据提供了极大的灵活性。

6)保留元数据和数据: HDF5可以保留元数据与数据,简化数据生命周期和管道。

1.3 PIC/MC中数据存储的发展现状

国内目前用于做PIC/MC模拟的主流程序有Fortran、IPIC3D、Warp、Vsim等。其中Fortran对应数据存储格式为dat,IPIC3D对应数据存储格式为hdf5cut、Warp对应的数据存储格式为hdf5,Vsim对应的数据存储格式为hdf5。

下面主要介绍一下Warp程序:Warp是广泛开发的开源单元格内粒子代码,旨在模拟具有高空间电荷强度的带电粒子束。其代码可以有效地模拟与具有偶极弯曲的环和束传输线相关联的弯曲加速器晶格中的空间电荷效应[9]

请支付后下载全文,论文总字数:43771字

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图