资源描述
GPUCPUGPUCPU 协同并行计算协同并行计算非对称走时叠前时间偏移处理系统非对称走时叠前时间偏移处理系统The A Asymmetric T Travel-time P Pre-S Stack T Time M Migration System (ATPSTM)(ATPSTM)by GPUCPU C Co-P Processing P Parallel C Computing(CPPCCPPC)用用 户户 手手 册册USERS MANUAL(因软件升级,请选择相应版本使用)北京吉星吉达科技有限公司Beijing Geo-Star Science & Technical Ltd.20092009 年年 8 8 月月精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 2 - 页GPUCPUGPUCPU 协同并行计算(协同并行计算(CPPCCPPC)非对称走时叠前时间偏移处理系统非对称走时叠前时间偏移处理系统(ATPSTM)使用手册使用手册(试行版)(试行版)内容导航内容导航1.编者前言.- 3 -2.系统综述.- 5 -2.1 GPUCPU 协同并行计算机的构成 .- 5 -1) GPU 的发展历程.- 5 -2) GPU 与传统 CPU 的主要区别.- 5 -3) GPU 的优势.- 6 -2.2 协同并行计算(CPPC)的概念.- 7 -2.3 软件开发平台 .- 8 -2.4 CUDA 介绍.- 8 -3 安装与启动.- 10 -3.1 运行环境 .- 10 -3.2 系统安装 .- 12 -3.3 交互作业界面的启动 .- 12 -4 使用说明.- 12 -4.1 工区的建立 .- 12 -4.2 数据格式说明 .- 13 -4.3 处理操作过程 .- 17 -4.4 作业参数 .- 25 -4.5 作业实例说明 .- 27 -4.6 作业的运行方式 .- 29 -5 辅助工具介绍.- 29 -5.1 作业运行状态监视 .- 29 -5.2 作业运行状态命令 .- 30 -5.3 作业查询命令 .- 31 -5.4 将运行的作业全部杀掉 .- 31 -5.5 多种【GRISYS、PROMAX、OMEGA、CGG、PARADIGM】速度转换成 GEOSTAR速度.- 31 -5.6 网格转换工具 .- 32 -6 错误信息说明.- 33 -7 系统维护手册.- 35 -7.1 CPPC 系统硬件配置说明 .- 35 -7.2 CPPC 系统概要 .- 35 -7.3 CPPC 系统管理说明 .- 35 -7.4 XCAT 管理系统简要说明.- 39 -精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 3 - 页1.1.编者前言编者前言近年来,随着油气勘探发展,人们对地震资料处理重要性的认识也在逐步加深。叠前时间偏移作为常规处理技术以来,对扩容大规模多节点并行机的需求与日剧增;但是,大规模并行机占地大、费用高、功耗高等矛盾也日益突出。近期在高性能计算方面出现了一项全新的、具有革命性的技术:GPUCPUGPUCPU 协同协同并行计算并行计算(CPPC)(CPPC)。应用这项技术,超级计算机占地大、费用高、功耗高等矛盾可迎刃而解。协同并行计算协同并行计算(CPPC)就是将就是将 GPU 和和 CPU 两种不同架构的处理器结合在一起,组成硬两种不同架构的处理器结合在一起,组成硬件上的协同并行运行模式,及在应用程序编写上实现件上的协同并行运行模式,及在应用程序编写上实现 GPU 和和 CPU 协同配合的并行计算协同配合的并行计算(CPPC)。用 GPUCPUGPUCPU 协同并行计算协同并行计算(CPPC)(CPPC),可以把原来超级计算机要做的事浓缩到一个普通的台式工作站或机架服务器中去。电耗也大大降低。图 1 是一台装配了 Tesla1060 GPU 的 PC 服务器的样机。测试中使用该机运行 GPUCPU 协同并行计算非对称走时叠前时间偏移处理系统,大约相当于 80 台单核 PC 服务器的运行效率。图图 1 1 测试中使用的装配测试中使用的装配 Tesla1060Tesla1060 GPUGPU 的台式服务器及常用的多节点的台式服务器及常用的多节点 PCPC 服务器服务器在地震勘探资料处理中,有一些处理模块需要进行大量的数学运算。因此,在这个行业使用着最大规模、最先进的计算机。计算机的购买成本很高,其运行成本更是昂贵的惊人,比如要使用条件苛刻的机房、配备大功率的不间断电源和恒温恒湿空调、雇用大量的机器维护人员等等。 很幸运,经过艰辛努力,我们拥有了地震勘探资料处理大运算量协同并行计算(CPPC)技术。对叠前时间偏移而言,经过多方对比分析,该系统具有如下特点:二二者者运运算算能能力力相相等!等!精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 4 - 页1、运算速度快。叠前时间偏移运算速度提高 100-400 倍;2、处理效果好。GPUCPU 协同并行计算非对称走时叠前时间偏移处理系统中采用了高精度的算法,处理结果地质效果明显提高。经过大量试验对比,优于目前商用软件;3、无 I/O 瓶颈问题对系统影响小。使用普通千兆交换机在 12 节点机器上用 10 小时可完成 2500GB 数据向各节点的分发工作,并且具有使用的 GPU 数越多分发数据速度越快的特点;4、系统可扩展性强。运算速度与使用的 GPU 数呈正比关系;5、实现 GPU“热拔插” 。各个 GPU 完全独立运行,如个别节点出现故障,不影响其它节点运行;6、作业界面友好、简单易操作;7、成本低廉。不足常规并行机的 10%;8、节电 95%以上、占地空间省 90%以上。本手册的重点是介绍 GPUCPU 协同并行计算非对称走时叠前时间偏移处理系统的应用过程及作业的编制、修改及运行的方法。为了使用户对 GPUCPU 协同并行计算非对称走时叠前时间偏移有更全面的了解,手册的第一部分简要介绍了 GPUCPU 协同并行计算的相关知识。本手册由刘钦、刘国峰、佟小龙、李博、管忠、邹德志等人编写,希望用户在使用中,多提宝贵意见,以便使软件更加完善。精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 5 - 页2.2.系统综述系统综述2.12.1 GPUCPUGPUCPU 协同并行计算机的构成协同并行计算机的构成1)1) GPUGPU 的的发展历程发展历程GPU 是英文 Graphic Processing Unit 的缩写,即图形处理器。早期的 GPU是单纯作图形处理, 现在的 GPU 应该称为“大规模多线程并行处理器”或叫“GPU 计算机” ,GPU 可以看成是“General Processing Unit”通用处理器的缩写。某些专用于高性能计算的 GPU 已经不做显卡用了,外接屏幕的接口有的也没有了,可以说真正成为了高性能通用处理器。2)2) GPUGPU 与传统与传统 CPUCPU 的主要区别的主要区别GPUGPU 与与 CPUCPU 的设计初衷不一样的设计初衷不一样我们可做如下形象比喻(如图 2 所示):CPU 的设计思想是一件事只由一个人去做,尽快完成后再去做另外的事情串行做事;GPU 的设计思想是一件事情同时让尽可能多的人去做并行做事。图图 2 2 CPUCPU 与与 GPUGPU 设计思想示意图设计思想示意图GPU 和 CPU 各有优缺点,CPU 适合串行运算,而 GPU 适合并行运算。GPUGPU 与与 CPUCPU 的处理器微结构存在很大的差别的处理器微结构存在很大的差别CPU 中大量的晶体管用作高速缓存(cache)、逻辑控制单元(Control),只有少量的用作计算单元(Alu)。而 GPU 则把更多的晶体管用作了计算单元,只有少量晶体管用作了高速缓存(Cache)和逻辑控制单元,这使得 GPU 比 CPU更适合完成密集计算任务(图 3)。图图 3 3 GPUGPU 与与 CPUCPU 的微结构示意图的微结构示意图(GPU(GPU 将更多的晶体管用于数据处理将更多的晶体管用于数据处理) )3)3) GPUGPU 的优势的优势精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 6 - 页作为计算机的核心,CPU 在逻辑判断、非线性寻址等复杂的逻辑运作中,有着非常高的效率,但是由于传统兼容包袱的沉重(如:最快的 x86cpu 也必须兼容 26 年前的 8086cpu),竞争的不充分等多方面因素,发展速度相对缓慢。GPU 的优势在于天生的并行计算的体系机构。目前的 8800 GTX GPU 中,有 128 个 Stream Multi Processor(流处理器,就是上图的 ALU,可理解为运算单元,也就是通常说的核)。可同时并发上万个线程。而最新的 GTX 280 GPU 里面,SM 的数量达到了 240 个,在高性能计算领域有着无以伦比的优势。在过去的五年,GPU 有了突飞猛进的发展。目前,GPU 已经达到 240 核,14 亿晶体管,浮点运算能力可达到1TFLOPS(万亿次/每秒),而四核 CPU 的浮点运算能力仅为 0.07TFLOPS(700 亿次/每秒)。Telsa S1070 1U 机架服务器,共有 4 个 GPU 卡,共 960 个内核,性能达到4 万亿次每秒,功耗只有 700 瓦。而如果要达到相同计算性能,需要 CPU 服务器集群才能实现,而功耗可能达到几万瓦。2.22.2 协同并行计算(协同并行计算(CPPCCPPC)的概念)的概念简单的说,CPU 是串行计算的领先者,而 GPU 是并行计算的领先者。CPU 在操作系统、系统软件、应用程序、通用计算、系统控制等领域功能强大;而 GPU 在密集计算方面则独树一帜。协同并行计算协同并行计算(CPPC)就是将就是将 GPU 和和 CPU 两种不同架构的处理器结合在两种不同架构的处理器结合在一起,组成硬件上的协同并行运行模式,同时在应用程序编写上实现一起,组成硬件上的协同并行运行模式,同时在应用程序编写上实现 GPU 和和CPU 的协同配合的协同并行计算的协同配合的协同并行计算(CPPC)。具体说,协同并行计算(CPPC)机就是由 CPU 负责执行顺序型的代码,如操作系统、数据库等应用,而由 GPU 来负责密集的并行计算。因此,在高性能计算领域,可以把 CPU 服务器和 GPU 服务器结合起来(图 4) ,构成一个混合型的集群,各司其职,大大提高集群系统的总体计算效能。精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 7 - 页图图 4 4 协同并行计算协同并行计算(CPPC)(CPPC)示意图示意图- -不同结构处理器共同计算的模式不同结构处理器共同计算的模式2.32.3 软件开发平台软件开发平台协同并行计算(CPPC)作为高性能计算的一个发展方向,一直受到人们广泛关注。目前已有的开发平台包括 Stanford 大学的 brook GPU,PeakStream 公司推出的开发包,以及 Nvidia 公司的 CUDA。几个系统中,brook GPU 是 Stanford 大学的一个开源项目,也是世界上最早的利用 GPU 进行通用计算的开发包。PeakStream 目前已经被 google 收购,其产品目前只支持 Ati 公司的显卡。Nvidia 从进军高性能计算领域以来,除了 cuda 的开发包,硬件产品已经更新三代,从 G80 到 G90 直到今天的 GTX280 系列。晶体管数量达到 14 亿个,开发工具也从最早的 0.8 版本到今天 2.0,为多线程编程。并提供全套免费的开发工具,其中除了编译器(nvcc)、系统函数库(cudafft、cudablas)之外,有专门的剖析工具(cudavisual profiler)帮助进行分析函数性能,可在仿真模式下提供调试,支持 C/C+开发环境。CUDA 的优势是这是一个完全针对 GPU 计算所开发的 C 语言开发环境,它与 NVIDIA 公司的 GPU 高度协同,因此应用程序通过适当的优化可以获得极高的效率。同时,标准的 C 语言开发环境也可以使得开发者非常容易掌握,有经验的编程人员通过很短时间的熟悉就可以开发出高质量的 GPU 计算程序。2.42.4 CUDACUDA 介绍介绍CUDA(compute unified device architecture,统一计算设备架构)是NVIDIA 公司在 2007 年推出的针对通用计算 GPU 的一个全新构想,使专注于图像处理的 GPU 超高计算性能在数据处理和科学计算等通用计算领域发挥优势。CUDA 包括全新的硬件设计和全新的软件开发环境,抛开以前的图形 API 方式而直接将 GPU 作为计算单元来管理和进行并行计算。CUDA 编程语言是针对通用计算 GPU 的 C 语言环境,应用 CUDA 编程可方便地实现 GPU 通用计算。精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 8 - 页目前 CUDA 提供的功能包括:在 GPU 上提供标准 C 语言编程;为在支持 CUDA 的 NVIDIA GPU 的并行计算提供统一的软硬件解决方案;兼容从低功耗的笔记本用 GPU 到高性能多 GPU 系统;支持 CUDA 的 GPU 能进行并行数据缓存和线程执行管理;标准 FFT 和 BLAS 数值程序库;针对计算的专用 CUDA 驱动;经过优化的,从 GPU 到支持 CUDA 的 GPU 的直接上传,下载通道;CUDA 驱动与 OPENGL 和 DIRECTX 等图形驱动程序兼容;支持 LINUX 32 位/64 位、windows XP 32 位/64 位、windows vista 以及MAC OS 等操作系统;CUDA 提供对驱动程序的直接访问,以及汇编语言的方位。CUDA 通过标准的 C 语言将 GPU 的众多计算特性结合在一起,由线程来创建应用程序,这类似于 CPU 上的多线程程序。但与仅能有很少线程同时工作地多核 CPU 比较,GPU 可以同时执行成千上万个线程。从 CUDA 体系结构的组成来看,包含了三个部分:开发库、内存管理、设备访问和执行调度等函数。基于 CUDA 开发的程序代码在实际执行中分为两种,一种是运行在 CPU 上的主机代码,另一种是运行在 GPU 上的设备代码。不同类型的代码由于其运行的物理位置不同,能够访问到得资源也不同。驱动部分基本上可以理解为是支持 CUDA 的 GPU 设备抽象层,提供硬件设备的抽象访问接口。通过 CUDA 编程时,将 GPU 看做可以并行执行非常多个线程的计算设备。GPU 作为 CPU 的协处理器来运作:在主机上运行应用程序中数据并行的、计算密集的部分加载到此设备上。更准确的说,对不同数据执行相同操作的应用程序部分可以独立房在此设备上作为由许多不同线程执行的函数。而要达到这种效果,可以将这样一个函数在设备的指令集中编译,并将得到的程序加载到设备商。主机和设备都保留自己的 DRAM,分别称为主机内存和设备内存。用户可以通过优化的 API 调用将数据从一个 DRAM 复制到其他 DRAM 中,而优化的 API 调用使用了设备的高性能直接存储器存取引擎。精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 9 - 页3 3 安装与启动安装与启动3.13.1 运行环境运行环境CPU/GPUCPU/GPU 协同并行计算叠前时间偏移处理系统的最低配置要求:协同并行计算叠前时间偏移处理系统的最低配置要求:CPUCPU:1)CPU 环境要能够安装 Linux 操作系统;2)有足够的数据存储空间;3)有 C 语言的运行环境。GPUGPU:1) 配有 Nvidia 的通用处理器(GPU) ;2) GPU 能够被协同工作的 CPU 所支持;3) 能够支持 CUDA(统一计算设备架构平台) 。目前支持 CUDA 的 GPU (CUDA-enabled GPU)包含 GeForce、Quadro 和 Tesla 三个系列。下表列出了大部分支持 CUDA 的设备及其多处理器的数量和计算能力:表格表格 1: 支持支持 CUDA 的设备及其多处理器的数量和计算能力的设备及其多处理器的数量和计算能力1Nvida 通用处理器的型号1多处理器数量多处理器数量1计算能力计算能力2GeForce GTX 280 23021.33GeForce GTX 260 32431.34GeForce 9800 GX2 421641.15GeForce 9800 GTX 51651.16GeForce 8800 Ultra, 8800 GTX 61661.07GeForce 8800 GT 71471.18GeForce 9600 GSO, 8800 GS, 8800M GTX 81281.19GeForce 8800 GTS 91291.010 GeForce 9600 GT, 8800M GTS 10 810 1.111 GeForce 9500 GT, 8600 GTS, 8600 GT,12 8700M GT, 8600M GT, 8600M GS11 411 1.113 GeForce 8500 GT, 8400 GS, 8400M GT,14 8400M GS12 212 1.115 GeForce 8400M G 13 113 1.116 Tesla S107014 43014 1.317 Tesla C106015 3015 1.318 Tesla S87016 41616 1.0精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 10 - 页19 Tesla D87017 21617 1.020 Tesla C87018 1618 1.021 Quadro Plex 1000 Model S419 41619 1.022 Quadro Plex 1000 Model IV20 21620 1.023 Quadro FX 560021 1621 1.024 Quadro FX 370022 1422 1.125 Quadro FX 3600M23 1223 1.126 Quadro FX 460024 1224 1.027 Quadro FX 1700, FX 570, NVS 320M, FX 1600M,28 FX 570M25 425 1.129 Quadro FX 370, NVS 290, NVS 140M, NVS 135M,30 FX 360M26 226 1.131 Quadro NVS 130M27 127 1.1通用处理器计算能力通用处理器计算能力 1.01.0 的规范的规范每个块的最大线程数为 512;一个线程块的 x、y 和 z 维的最大规格分别为 512、512 和 64;线程块网格各维度的最大规格为 65535;Warp 块的大小是 32 个线程;每个多处理器的寄存器数量是 8192;每个多处理器可用的共享存储器数量是 16KB,组织为 16 个存储体固定存储器的总量是 64KB;固定存储器的缓存工作区是每个多处理器 8KB;纹理存储器的缓存工作区介于每个多处理器 6 到 8KB 之间;每个多处理器的最大活动块数是 8;每个多处理器的最大活动 warp 块数是 24;每个多处理器的最大活动线程数是 768;对于绑定到一维 CUDA 数组的纹理参考,最大宽度为 213;对于绑定到二维 CUDA 数组的纹理参考,最大宽度为 216,最大高度为 215;对于绑定到三维 CUDA 数组的纹理参考,最大宽度为 211,最大高度为 211,最大深度为 211;对于绑定到线性存储器的纹理参考,最大宽度为 227;内核大小限制为 200 万 PTX 指令;每个多处理器都由 8 个处理器组成,因此一个多处理器能够在 4 个时钟周期内处理一个 warp 块的 32 个线程。通用处理器计算能力通用处理器计算能力 1.11.1 的规范的规范支持在全局存储器的 32 位字上操作的原子函数(请参见第 4.4.4 节) 。精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 11 - 页通用处理器计算能力通用处理器计算能力 1.21.2 的规范的规范支持在共享存储器中操作的原子函数以及在全局存储器的 64 位字上操作的原子函数;支持 warp vote 函数(请参见第 4.4.5 节) ;每个多处理器的寄存器数量是 16384;每个多处理器的最大活动 warp 块数量是 32;每个多处理器的最大活动线程数是 1024。通用处理器计算能力通用处理器计算能力 1.31.3 的规范的规范支持双精度浮点运算。推荐配置:推荐配置: CPU:4 个内核;内存大于 16G GPU:Tesla T1060, Tesla S10703.23.2 系统安装系统安装系统由公司统一安装。3.33.3 交互作业界面的启动交互作业界面的启动程序配有交互界面,当安装相应程序后,在命令行输入% pstmv2,便可出现软件的交互界面。主界面下有三个软件运行的分界面,分别是数据分发界面,作业组织及运行界面,数据合并界面,三部分将分别在后边相关环节详细介绍。主界面如图 6。4 使用说明使用说明4.14.1 工区的建立工区的建立 软件在执行时原则上并不需要建立工区,作业参数(如输入数据等)都按绝对路径输入。但是,建议用户在使用时建立作业运行目录,将不同类型文件按类分别存入不同的目录,便于管理。该系统的磁盘分配及用途如下:该系统的磁盘分配及用途如下:1 1) 存储盘存储盘:是由 16 块 1TB 的盘组成的 rida5 盘,存储空间 14TB。也可以另行指定或链接其他存储设备;2 2) 工作盘工作盘:各节点单独安装使用,是由 2 块 1TB 盘组成的 rida0 盘,临时精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 12 - 页用于存储各节点分发的数据,此盘仅用于短时间的数据存储。通常目录名称为:/scr。也可以由用户选用与项目相关的容易记忆的目录名;3 3) 系统盘系统盘:各节点单独安装使用,用于各节点的系统软件、应用软件等重要文件的存储。由 1 块 500GB 盘构成。用户通常不使用此盘。建议在建议在存储盘存储盘上按以下内容建立工区的目录:上按以下内容建立工区的目录:第一级目录:项目名,如:daqing第二级目录:1)存放输入数据的目录,如:input2)存放作业文件的目录,如:job3)存放作业运行过程监测文件的目录,如:list4)存放偏移结果的目录,如:output5)存放网格文件、速度库文件、定义使用 GPU 文件的目录,如:geo示意图如下:示意图如下:4.24.2 数据格式说明数据格式说明有下列四类数据和文件涉及格式问题:A、输入的叠前地震数据B、输出的结果数据C、偏移速度文件D、观测系统网格文件。1)1) 输入叠前地震数据的格式:输入叠前地震数据的格式:叠前地震数据要求是经过前期处理的数据体。可以是炮集、CMP 道集等类型。目前支持如下格式:(1)grisys fmt4(IEEE 32-bit)格式。要有炮点,检波点坐标,CMP 号,线号,偏移距信息。(2)CGG fmt4(IEEE 32-bit)格式。要有炮点,检波点坐标,CMP 号,线号,偏移距信息。(3)SEGY 格式。要有炮点,检波点坐标,CMP 号,线号,偏移距信息。图图 6 6 软件主界面软件主界面图图 5 5:目录结构图:目录结构图精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 13 - 页(4)OMEGA183 格式。要有炮点,检波点坐标,CMP 号,线号,偏移距信息。2 2) 输出数据的格式:输出数据的格式:程序可输出叠加剖面和 CRP 道集。但是本软件在运行过程中采用分数据计算的策略,因此一般输出为与 GPU 卡数一样或为其整数倍的偏移距个数的道集。程序可以输出多种格式的数据,输出数据格式与输入数据格式有关,相关要求见后续说明:(1)grisys fmt4(IEEE 32-bit)格式。带有炮点,检波点坐标,CMP 号,线号,偏移距信息。(2)CGG fmt4(IEEE 32-bit)格式。带有炮点,检波点坐标,CMP 号,线号,偏移距信息。(3)SEGY 格式。带有炮点,检波点坐标,CMP 号,线号,偏移距信息。3 3) PSTM 偏移过程数据格式说明偏移过程数据格式说明图图 7 7 偏移过程中数据格式说明偏移过程中数据格式说明4 4) 偏移速度文件格式偏移速度文件格式: :目前本程序支持两种速度文件格式。由参数“vflag” 控制。(1 1) 当当 vflag=1vflag=1 时时:速度文件中只要求提供 CMP 面元编号(CMP 面元编号=(线号-1)网格定义的最大 CMP 号+CMP 号) ,格式如下(数字间有空格即可,不限空格多少):例 1:每条 CMP 测线的最大 CMP 号为 1000,输入第 2 条线的第 1 个 CMP 的速度(时间-速度对)如下:HANDVEL 1001 0 2481 300 2481 500 24811300 2481 1500 2481 2000 24813000 5280 5000 5880 6000 6100对输入数据建立索引文件输入数据可以选择以下四种数据格式:1、 CGG-fmt4-IEEE32bit2、 GRISYS-fmt4-IEEE32bit3、 SEGY4、 OMEGA183向各个节点分发数据,结果为系统内部格式。各个节点偏移,输出结果为系统内部格式。将各个节点输出结果合并后输出,输出数据格式由用户指定,可选择如下三种输出格式:1、 CGG-fmt4-IEEE32bit(当输入为 CGG 格式时)2、 GRISYS-fmt4-IEEE32bit(当输入为 GRISYS、SEGY、OMEGA 格式时)3、 SEGY(当输入为 GRISYS、SEGY、OMEGA 格式时)精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 14 - 页(2 2)当)当 vflag=2vflag=2 时时:速度文件中要提供 CMP 面元编号(CMP 面元编号=(线号-1)网格定义的最大 CMP 号+CMP 号) 、线号,CMP 号,格式如下:例 2:与例 1 相同的速度,输入方式如下:HANDVEL 1001 2 10 2481 300 2481 500 24811300 2481 1500 2481 2000 24813000 5280 5000 5880 6000 61005 5) 观测系统网格格式观测系统网格格式程序应用的网格文件就是定义观测系统时应用的网格文件。实际处理中,观测系统定义时各处理系统的网格文件格式存在差异,但实际内容是一致的。本程序要求的网格文件为 12 个参数。其中前 6 个为整型,后 6 个为浮点型,表 2 和图 8 为各参数的说明和示意图。网格数据在文本中存放格式如:1 1 1010 1 1 1 1 737737 1 1 0.00.0 0.00.0 0.00.0 12.512.5 12.512.5 表格表格 2: 网格文件说明表网格文件说明表在文件中的次序表示的内容说明 数据类型备注1网格中最小线号整型2网格中最大线号整型3网格线增量整型4网格中最小 CMP 号整型5网格中最大 CMP 号整型6网格中 CMP 号增量整型7原点(1,1)的 X 坐标浮点型8原点(1,1)的 Y 坐标浮点型9面元线间距离在 X 方向的投影浮点型正负10面元线间距离在 Y 方向的投影浮点型正负11面元 CMP 间距离在 X 方向的投影浮点型正负12面元 CMP 号间距离在 Y 方向的投影浮点型正负图图 8 8 网格示意图网格示意图如图 8 的网格图,假设面元大小为 25X25,原点坐标(X0,Y0)为(0,0),精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 15 - 页线号和 CMP 号增量都为 1,且二者增量方向均为向坐标增加方向,倾角为 30o,则本软件网格描叙为: 1 4 1 1 4 1 0 0 21.65 12.5 -12.5 21.65说明:不同处理系统间网格定义方式可经过本软件附带的程序转换到本格式,具体见网格转换说明。4.34.3 处理操作过程处理操作过程整个处理过程分为四个步骤:第一步:准备数据,建立输入数据体的索引文件第二步:分发数据并自动建立新的索引文件第三步:组织作业并发送作业第四步:自动将各节点完成的结果合并在一起。操作过程如下:【1】准备数据,建立输入数据的索引文件准备数据,建立输入数据的索引文件: 按照前章节介绍的数据格式要求,准备输入数据、网格文件、速度文件、作业文件的偏移参数。确认各环节无误。A数据是 grisys 格式、CGG 格式或者 OMEGA 格式时建立索引文件的过程如下:在存放输入数据的目录下,键入如下命令行:bld_idx ntin=1000 data= dj-all.cst type=4其中:Ntin=:为每次输入的道数,通常固定选用 1000,试验用参数;Data=:要进行偏移的输入数据的文件名;type=:说明输入数据的格式。type=2,输入数据为 omega 的 183 格式(IEEE 32-BIT) ,type=3,输入数据为 grisys 的 4 格式(IEEE 32-BIT) ,type=4,输入数据为 cgg 的 4 格式(IEEE 32-BIT) 。运行此命令后,建立的结果文件为 dj-all.cst.idx。即在输入数据文件名后自精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 16 - 页动加上.idx。后续编写作业时要用到该文件。B数据是 SEGY 格式时建立索引文件的过程如下:在存放输入数据的目录下,键入如下命令行:bld_idx intin=1000 endian=1 line=181 cmp=185 data= type=1其中:Endian=:表示这个数据是大头还是小头数据,1 代表大头(big-endian) ,0 代表小头(little-endian);Line=:表示在 SEGY 数据中线的起始位置是多少;Cmp=: 表示在 SEGY 数据中 CMP 的起始位置是多少;Data=: 表示要建立索引文件的数据名;Type=: 表示数据类型,1 代表 SEGY。运行此命令后,输出的索引文件名是在输入数据文件名后自动加上.idx。后续编写作业时要用到该文件。【2】分发数据分发数据将原始数据分发到参与计算的节点上。此步骤需要两个必备的条件:A、定义参与计算节点编号的文件、定义参与计算节点编号的文件目前机器配置的是每个节点四个独立的 GPU,定义参与计算的节点的文件格式如下所示(文件存放在/geo 目录下): 节点名 GPU 编号(此编号由系统统一确定): gpu00 1 gpu00 2 gpu00 3 gpu00 4 gpu01 1 gpu01 2 gpu01 3 gpu01 4 精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 17 - 页 gpu02 1 gpu02 2 gpu02 3 gpu02 4 gpu03 1 依次类推。注意最后以符号结尾。B、定义各计算节点存放接收分发数据的文件目录,并确保有足够的磁盘、定义各计算节点存放接收分发数据的文件目录,并确保有足够的磁盘空间。此目录在分发数据程序中由用户设定或者由环境变量定义。空间。此目录在分发数据程序中由用户设定或者由环境变量定义。所需条件准备好后,启动主界面,点击数据分发按妞,将出现如下对话框: 图 9 数据分发界面参数说明:参数说明:Datain此为本节 1 中介绍的原始数据 DQ-djall.cstIndexIn此为本节 1 中介绍的原始数据索引文件DQ-djall.cst.idxNodebasein此为本节介绍的参与计算节点文件. NodebaseNodebaseOut数据分发后会根据分发情况输出文本文件,通过这里指定文件名,注意此文件为作业组织和运行时所需要输入OutFileName分发数据后的前缀名称, DQ-split.cst数据分发后会将分发的数据在其后加数字进行区别,例如 DQ-split.cst.1 DQ-split.cst.2 . DQ-split.cst.n所有参数确认后点击 GO 将进行分发数据操作,分发数据的速度大约为每个 GPU 每分钟 100M, 使用的 GPU 数越多速度越快。数据分发完毕后,将在各个计算节点指定的目录下产生分发的数据文件和索引文件。如下图后缀 idx 的为索引文件。图图 1010 各节点数据分发后产生的数据及索引文件各节点数据分发后产生的数据及索引文件精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 18 - 页【多个数据文件的分发方法多个数据文件的分发方法】:问题:问题:1)对于要进行偏移处理的叠前数据,通常文件很大,处理中经常是写为多个文件,例如:全区为 500 条测线,将 1-200 线写为文件 data1;将 201-400 线写为文件 data2;将 401-500 线写为文件 data3。2)前面对输入数据建立索引文件及数据向各个节点分发都是面对单个文件的。多文件分发操作过程:多文件分发操作过程:如果是多个文件的情况,可按如下方式处理(早期版本需要将多个文件合并为一个大文件,现在不需要将多个文件合并为一个大文件。 ):1) 在输入多个文件时,需确认各个文件是按 line、cmp、offset 划分。在准备数据时,首先要对不同的文件分别建立索引文件,操作与对单个数据建立索引的操作完全相同。2) 分发数据时每一次点击 GO 只能对一个数据文件进行分发数据操作。3) 在进行多个文件数据分发时,须按照数据文件的线号或 CMP 号顺序依次分发多个数据文件,并且填写相同相同的分发数据的前缀(即 OutFileName 参数)和相同的 nodefile。4) 分发数据过程中在各个计算节点指定的目录会产生临时索引文件,例如DQ-split.cst.idx.1 DQ-split.cst.idx.2 . DQ-split.cst.idx.n,此文件并不参与随后的处理工作,仅为临时文件。【3】作业的组织和运行作业的组织和运行确认分发数据完成后,点击主界面上的 CUDA-APSTM,出现作业组织界面: 图图 11 偏移参数组织界面偏移参数组织界面其具体参数在后面的章节中进行详细介绍,这里特别要强调的四个参数:1)Index File:精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 19 - 页分发数据后建立的新索引文件去掉数字后缀后的绝对路径及索引文件名,如:上图中 DQ-gpu.idx.0 去掉后缀“.idx.0” ,即 DQ-gpu2) InFile:分发后的数据文件名去掉数字后缀的文件绝对路径及文件名。如:上图中DQ-gpu.0 去掉数字后缀.0,即 DQ-gpu3) Xalias 与与 Salias:Xalias 代表 CMP 间距,salias 代表线间距;4)说明:)说明:Intype 与 Outtype 两个参数:分别定义输入数据与输出数据的格式;如果原始数据是 SEGY 或 GRISYS 数据,程序在分发数据操作中自动将数据格式转换为 grisys 格式的数据,此时这两个参数均为 3;如果原始数据是 CGG 数据,则这两个参数均为 4;在确定参数文件后点击 WriteParFile ,在指定的/job 目录里生成如下作业文件,用户可以打开此文件,检查参数是否正确,如存在问题,可重新修改交互界面参数重新生成作业。图 12 自动生成的偏移作业文件确认参数无误后点确认参数无误后点 RUN 按扭后发送作业进行计算。按扭后发送作业进行计算。完成整个作业,就是在不同节点的多个 GPU 上运行上述全部作业的过程。作业的运行顺序是按轮次执行的。假设机器是由 6 个节点组成,每个节点有 4个独立的 GPU(目前机器的配置) ,作业的运行过程是:1)运行第一轮作业。每个 GPU 运行一个作业,即后缀为 1.par 到 24.par 的作业;2)运行第二轮作业。每个 GPU 再运行一个作业,即后缀为 25.par 到 48.par 的作业;3)后面以此类推。说明:说明:1) 作业运行的轮数由程序自动确定。与输出的线数、每条线的 CMP 数、采样间隔、输出道长、偏移距个数和使用的 GPU 内存数有关。精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 20 - 页2) 目前每个 GPU 的内存为 4GB;3) 【每一轮次完成的线束一条线的 CMP 数输出的偏移距个数每一道的样点数4】要小于【4G内存使用率(如 80%) 】,或表示为:【LINECMPOFFLTR4】【4,000,000,00080%】4) 组织作业时参考上述公式,做到心中有数,通过调整内存使用率参数(如 80%) ,合理分配每轮作业完成的工作量,节省处理时间。【4】偏移后数据的合并偏移后数据的合并各个节点计算结束后,输出目录/output 下会产生如下图所示的输出文件:图图 13 偏移结果文件偏移结果文件每运行一个作业,就产生一个输出文件,只要将这些文件合并为一文件,就得到偏移后的数据体【注:此数据体是按偏移距、线号、CMP 号排序的】 。合并数据的过程如下:点击主界面上的 MergeData.出现如下界面:图图 14 数据合并界面数据合并界面参数说明:参数说明:Datain要输入的数据,即偏移结果去掉后缀,如 dq_djmig.41.0 去掉.41.0,Dataout最后要输出的整体数据文件名 mig_all(用户根据需要自行定义)Begin num指 dq_djmig.41.0 类数据中的 41 这个位置的最小值End num指 dq_djmig.41.0 类数据中的 41 这个位置的最大值File Type偏移结果的数据格式与合并数据后数据格式定义File Type 是一个重要参数,具体意义如下:1)如果原始数据是 SEGY 或 GRISYS 格式数据,程序在分发数据操作中自动将数据格式转换为 grisys 格式进行偏移,在合并数据阶段,若要输出SEGY 类型的数据,则选 GRI2SEGY,若要输出 grisys 类型的数据,则选择精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 21 - 页GRI2GRI。2)如果原始数据是 CGG 格式数据,在合并数据阶段,若要输出 SEGY 类型的数据,则选 CGG2SEGY,若要输出 CGG 格式数据,则选 CGG2CGG。3)如果输出 SEGY 格式数据,线号放在 SEGY 道头字中 65-69 的位置,其他内容在标准道头规定的位置。4.44.4 作业参数作业参数作业文件为常用的文本文件,作业文件可以人工编写;也可以交互自动生成,交互生成作业的过程已在前面介绍。作业主要内容如下:表格表格 3: 作业参数表作业参数表参数含义交互界面名称作业文件关键字缺省值参数说明选用 GPU 编号无Device_list无系统确定作业运行状态文件Statusnamestatusname自定义记录运行中的信息输入文件名InfilenameInfile自定义见作业实例输入文件格式In_typein_type3原始数据是 SEGY 或GRISYS,此参数为 3;原始数据为 CGG 格式,此参数为 4计算精度deritypederi_type21 为一阶导数2 为二阶导数打印间隔NtinNtin1000作业执行时每隔 1000 道打印信息选用线程数NthreadsNthreads128选用 GPU 线程输出文件格式Outtypeout_type3同 in_type 参数最大偏移孔径Maxaperturemaxaperture自定义必填参数孔径时间(毫秒)Taperturetaperture200,400,6000与下面参数对应X 方向孔径(米)Xaperturexaperture200,800,2000与孔径时间对应Y 方向孔径(米)Yapertureyaperture200,800,2000与孔径时间对应输出最小 CMP 号XminXmin自定义必填参数精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 22 - 页输出最大 CMP 号XmaxXmax自定义必填参数输出 CMP 增量XincXinc自定义必填参数输出最小线号SminYmin自定义必填参数输出最大线号SmaxYmax自定义必填参数输出线增量SincYinc自定义必填参数输入数据叠前/后标识DataFlagDataflag11:叠前2:叠后输出 CRP 道集参数Offsetbinoff0,2600,50三个参数最小偏移距最大偏移距偏移距间隔输入数据最大偏移距MaxoffsetMaxoff3000单位:米输出叠加/道集标识OutflagOutflag1:剖面2:道集该程序大部分用抗假频参数ResampleResample1可选:1 2 输入速度文件格式vflagVflag11 或 2参考格式说明机器最大显存MaxmemMaxmem4096依机器配置而定偏移占用内存比MempercMemprec0.80建议用 0.802D/3D 标识DimensionGeo3必填参数是否打印运行信息VerboseVerbose10:不打印1:打印网格文件名GeofileGeometry自定义绝对路径速度文件名VrmsVrms自定义必填参数输出文件名OutfilenameOutfile自定义必填参数使用索引文件标识indexIndexed10:不使用 1:使用,建议使用索引文件名Index File Idx_file自定义作业自行确定真振幅恢复AmpRecovamp自定义0:不用加,叠前数据未加球面扩散补偿1:加。叠前数据加了球面扩散补偿偏移距轮循RoundOffroff自定义0:未分数据计算时应用1:分数据计算时应用精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 23 - 页CMP 间点距xaliasantialiasX自定义单位:米,缺省:15线间距saliasantialiasS自定义单位:米,缺省:15数据的采样点数nsout无自定义必填参数偏移速度百分比VscaleVscale1对速度进行比例调整4.54.5 作业实例说明作业实例说明参数文件实例:(假设文件名为 dq1.par)表格表格 4: 作业参数实例作业参数实例作业参数说明备注statusname=140a14.statu作业状态文件为140a14.statu,记录作业运行信息可绝对路径deri_type=2本作业应用二阶导数计算走时infile=/scr/dj-all.cst.1本作业输入的数据文件名为:dj-all.cstfile_type=4输入数据为 cgg 的 fmt4 格式nthreads=128启用的线程数为 128device_list=1应用本机的 1 号 GPU 进行计算out_type=4输出数据格式为 cgg fmt4(IEEE32BIT)格式outfile=/scr/140v4.mig输出的文件名为140v4.migdataflag=1输入的数据为叠前地震数据outflag=2输出数据为 CRP 道集ymin=280输出的最小线号为 280ymax=280输出的最大线号为 280yinc=10输出的线号的增量为 10 xmin=1100输出的最小 CMP 号为 1100 xmax=2505输出的最大 CMP 号为 2505xinc=1输出的 CMP 增量为 1geometry=/disk2/geo/b4.grid数据的网格文件为 b4.gridtaperture=100,500,1000,2000,5000偏移的孔径时间 (毫秒)精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 24 - 页xaperture=500,800,2000,3000,5000偏移孔径时间对应的 X 方向孔径(米)yaperture=400,600,1500,3000,5000偏移孔径时间对应的 Y 方向孔径(米)maxaperture=5000最大孔径为 5000off=100,3000,100输出道集信息为:最小偏移距为 100,最大偏移距为 3000,增量为 100, 半径单位:米maxoff=3000输入数据的最大偏移距为 3000 米maxmem=4096单个 GPU 的最大应用内存为 4GMemperc=0.80内存使用率为 80%vrms=/disk2/bybb/db/v4偏移需要的速度文件,给绝对路径vflag=2速度需要 CMP 面元号,线号和 CMP 号geo=3应用三维程序偏移verbose=1输出运行信息indexed=1应用索引Idx_file=/scr/dj-all.cst.1.idx索引文件名amp=1要进行真振幅恢复antialiasX=25点 CMP 间距距 25单位:米antialiasS=30线距 30单位:米Roundoff=1要进行偏移距轮循Ntin=4000作业运行时每隔 4000 道打印信息Vscale=1偏移速度乘以 100精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 25 - 页4.64.6 作业的运行方式作业的运行方式发送作业有两种方式:1) 命令 par=作业文件名实例如下:cudapstmz par=dq1.par作业运行正常且没有报错信息后,将出现如下的运行信息:cudapstmz: j1 0 j2 0 device 2 myid 0set working device to device 2cudapstmz: sizeof mods=265556*3008*1以下是每偏移 4000 道的处理时间:2322 trace migrated,6086.441895 ms6322 trace migrated,10504.830078 ms10322 trace migrated,10571.294922 ms2) 在交互作业组织界面上, (其中:nodebase 和作业文件为必填参数) ,点击 RUN 按扭则自动发送作业。5 辅助工具介绍辅助工具介绍5.1 作业运行状态监视作业运行状态监视在命令行输入 geoview 会出现如下对话框图图 15 Geoview 命令对话框命令对话框参数说明:参数说明:Statue File状态文件名:绝对路径Jobnum begin作业起始号Jobnum end作业终止号Num cards多少个计算卡Job per card一个卡多少个作业添好参数后按 view ,出现如下界面,显示各节点的作业运行情况,做到实时监控作业。精品文档,仅供学习与交流,如有侵权请联系网站删除【精品文档】第 - 26 - 页界面的横坐标是作业完成的百分比;界面纵坐标的不同颜色用于区分节点及使用的 GPU 运行状态。图图 16 作业监控显示界面作业监控显示界面5.25.2 作业运行状态命令作业运行状态命令 运行用户:gstar(或具有本软件使用权限的用户) 运行命令:geojob 参数; geojob /jobstatue/dq.statue 1 24 参数说明:/jobstatue/dq.statue :状态文件绝对路径 1 起始作业编号 24 终止作业编号 结果:显示作业完成情况5.35.3 作业查询命令作业查询命令 运行用户:gstar(或有本软件使用权限的用户) 运行命令:geoask 参数:无参数 结果:显示各节点运行的作业编号 单独使用:如想单独查看某节点做业。可在主节点(gpu00)采用如下命令:ssh gpu01(要查看的节点 hostname) top ef | grep cudapstmz 也可登陆到需要查看的节点(ssh gpu01)后应用 top ef | grep cudapstmz 5.45.4 将运行的作业全部杀掉将运行的作业全部杀掉 运行用
展开阅读全文