CN111190740B - 一种用于波形互相关双差定位算法的并行优化方法 - Google Patents

一种用于波形互相关双差定位算法的并行优化方法 Download PDF

Info

Publication number
CN111190740B
CN111190740B CN202010000724.1A CN202010000724A CN111190740B CN 111190740 B CN111190740 B CN 111190740B CN 202010000724 A CN202010000724 A CN 202010000724A CN 111190740 B CN111190740 B CN 111190740B
Authority
CN
China
Prior art keywords
task
obtaining
matching
calculation
day
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010000724.1A
Other languages
English (en)
Other versions
CN111190740A (zh
Inventor
肖志勇
张立
刘一鸣
杜年茂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangnan University
Original Assignee
Jiangnan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangnan University filed Critical Jiangnan University
Priority to CN202010000724.1A priority Critical patent/CN111190740B/zh
Publication of CN111190740A publication Critical patent/CN111190740A/zh
Application granted granted Critical
Publication of CN111190740B publication Critical patent/CN111190740B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明属于并行优化领域,涉及一种用于波形互相关双差定位算法的并行优化方法。该方法包括:步骤1,获取总任务数和总进程数,并将总任务平均分给每个进程,并得出每个进程的任务初始位置;步骤2,计算获取初始匹配位置As1Bs2;步骤3,计算获取结束匹配位置Ae1Be2;步骤4,根据获取的As1Bs2位置和Ae1Be2位置读取对应数据进行计算。本发明通过大规模并行分配任务至每个进程,从而对任务核心计算部分进行加速,极大提高了计算效率。

Description

一种用于波形互相关双差定位算法的并行优化方法
技术领域
本发明属于并行优化领域,涉及一种用于波形互相关双差定位算法的并行优化方法。
背景技术
双差定位法是一种受限制比较小的相对定位算法,其基本思想是:当两个微地震震源之间的距离相对于它们各自到观测点间的距离较小,且传播路径上的速度变化也较小时,这两个震源到同一个接收点的射线路径基本相同或者相近,这使得他们之间的走时残差与两震源点之间的距离有较强的相关性,从而降低了传播路径上速度对定位结果的影响。
波形互相关利用了“发震机理相同地震波形相似”的原理,通过对相似地震波形进行互相关分析,计算同一震相的走时差,主要有时间域和频率域两种方式。通过时间域(频率域)相关函数计算相似波形的相关系数,设定相关系数阈值,获取可用的到时差数据。
结合波形互相关的双差定位法被广泛用于大范围空间尺度上大量地震事件的重新定位中。David P.Schaff等通过计算震相的互相关系数获取震相到时差,并采用双差算法1999年发生在我国辽宁岫岩地震序列进行了重新定位,结果显示使用分布稀疏的区域台站(震中距在500~1000km)仍然可将定位精度提高到5km以内。杨智娴在国内首次将相对定位算法在我国中西部大范围内使用,经重新精确定位后显示出我国中西部地区地震震源分布更加精细的图像。朱艾斓使用双差地震定位法对川西地区1992—2002年的13367个小震进行重新定位,重新定位后,地震活动沿活动断裂成线状分布现象非常突出,呈现出与地表活动构造的密切关系。黄媛将近台记录和区域台网数据联合用于双差地震定位算法,对2003年新疆巴楚-伽师MS6.8强震后404个ML≥3.5余震序列进行双差法重新精确定位,并对其进行了理论上的可行性分析,结果获得初步成功。赵翠萍对1997—2002年新疆伽师震源区150多个地震,共计几百条波形数据进行了互相关分析,虽然由于可用台站的波形数据不多,得到的互相关走时结果不多,对定位精度的改进作用也不是很明显,但是通过这项工作,实现了批量计算波形互相关走时的可能性。
发明内容
为了解决大规模应用波形互相关双差定位算法时的效率问题,本发明旨在提出一种用于波形互相关双差定位算法的并行优化方法,通过对核心步骤加速并行化,从而提高计算效率。
一种用于波形互相关双差定位算法的并行优化方法,步骤如下:
步骤1,获取总任务数和总进程数,并将总任务平均分给每个进程,并得出每个进程的任务初始位置。
步骤2,计算获取初始匹配位置As1Bs2
步骤3,计算获取结束匹配位置Ae1Be2
步骤4,根据获取的As1Bs2位置和Ae1Be2位置读取对应数据进行计算。
作为本发明的进一步改进,步骤1具体包括:
步骤101,首先选定两个台站,台站A和台站B,每个台站都有N天的数据,A台站第i天的数据可表示为Ai,B台站第i天的数据可表示为Bi,台站A和台站B之间的数据需要进行匹配计算,匹配方式是对每个Ai,都需要和Bj(j>i)进行匹配计算,匹配计算格式定义为AiBj(1≤i<j≤N),由此便可得到A和B匹配计算总的任务数为
Figure BDA0002353276670000031
个,定义为PAIRS_LEN。
步骤102,将总进程个数定义为np,目标是求总任务平均分配给每个进程后,每个进程的任务初始匹配位置As1Bs2和结束匹配位置Ae1Be2
步骤103,将PAIRS_LEN整除np,得到每个进程要处理的任务数量,定义为task_numk,k表示进程索引,再将PAIRS_LEN余除np,得到暂未被分配到进程的任务数量,定义为residul_day;将residul_day个任务数分配到总进程中前residul_day个进程,所以前residul_day个进程任务数task_numk(k≤residul_day)自加1;至此完成进程任务数量分配。
步骤104,根据每个进程需要处理的任务数量task_numk,累加计算
Figure BDA0002353276670000032
可以得到每个进程的任务初始位置task_num_startp,p表示进程索引,k=1,2,3...p...。
作为本发明的进一步改进,步骤2具体包括:
步骤201,将Ai需要做匹配计算的个数定义为A_LENi,定义
Figure BDA0002353276670000033
Figure BDA0002353276670000034
A_SUMj为第j天之前需要做匹配计算数量。
步骤202,遍历整个A_SUM数组,找到第一个大于每个进程中task_num_startp值的A_SUMt,并保存t值。
步骤203,t-1即为开始匹配位置As1Bs2中的s1,再由t-1值得到A_SUMt-1
步骤204,将task_num_startp-A_SUMt-1即可得到每个进程在第t天的需要处理的任务数量
步骤205,再把步骤204中的task_num_startp-A_SUMt-1值加上t,即可得到每个进程的初始匹配位置As1Bs2中的s2,至此得到了每个进程的初始匹配位置As1Bs2
作为本发明的进一步改进,步骤3具体包括:
步骤301,定义变量nday1用于记录每个进程处理的任务AiBj中imax-imin+1的值,nday1代表Ai中i的个数。
步骤302,定义变量nday2用于记录每个进程处理的任务AiBj中jmax-jmin+1的值,nday2代表Bj中j的个数。
步骤303,定义变量day1_min,day2_min用于记录每个进程处理的任务AiBj中最小的i和j;同时定义day1_start,day2_start表示步骤203、步骤205求出的As1Bs2中的s1和s2。
步骤304,将day1_min+nday1-1即可得到得到Ae1Be2中的e1,将day2_start-day2_min+nday1即可得到Ae1Be2中的e2。
作为本发明的进一步改进,步骤4具体包括:
步骤401,定义结构体数组stk,k为进程索引,根据每个进程的初始匹配位置As1Bs2和结束匹配位置Ae1Be2读入数据到结构体数组stk中。
步骤402,对结构体数组stk进行计算,公式为
Figure BDA0002353276670000041
t为Ai、Bj中数据的索引,至此得计算结果。
与常规计算相比,本发明通过大规模并行分配任务至每个进程,极大的提高了计算效率。当计算数据规模较大时,或者计算复杂度高时,仅用普通常规计算难以得到较好的效率,这时便需要设计合理高效的并行优化方案。本发明提供的技术利用已经公开的资料作为基础,构建实用的并行加速方案,大量减少了数据冗余问题,极大提高了效率。
附图说明
图1为本发明的并行优化方法的流程示意图。
图2为图1中步骤1的流程示意图。
图3为图1中步骤2的流程示意图。
图4为图1中步骤3的流程示意图。
图5为图1中步骤4的流程示意图。
图6为串行和并行模式下程序的加速比和计算时间比较图。
具体实施方式
下面通过具体的实施例并结合附图对本发明做进一步的详细描述。
实施例1
如图1所示,本发明实施例所述的一种用于波形互相关双差定位算法的并行优化方法,该方法包括:
步骤1,总任务数
Figure BDA0002353276670000051
个和总进程数1024个,然后将总任务数平均分给每个进程,得出每个进程的任务初始位置。
步骤101,首先选定两个台站,台站A和台站B,每个台站都有731天的数据,A台站第i天的数据可表示为Ai,B台站第i天的数据可表示为Bi,台站A和台站B之间的数据需要进行匹配计算,匹配方式是对每个Ai,都需要和Bj(j>i)进行匹配计算,匹配计算格式定义为AiBj(1≤i<j≤N),由此便可得到A和B匹配计算总的任务数为
Figure BDA0002353276670000052
个。
步骤102,进程总共1024个,目标是求总任务平均分配给每个进程后,每个进程的任务初始匹配位置As1Bs2,和结束匹配位置Ae1Be2
步骤103,将266815整除1024,得到每个进程要处理的任务数量为260个,定义为task_numk,k表示进程索引,再将266815余除1024,得到暂未被分配到进程的任务数量为575个,将575个任务数分配到总进程中前575个进程,所以前575个进程任务数task_numk(k≤575)自加1;至此完成进程任务数量分配。
步骤104,根据每个进程需要处理的任务数量task_numk,累加计算
Figure BDA0002353276670000061
可以得到每个进程的任务初始位置task_num_startp,p表示进程索引。
步骤2,计算获取初始匹配位置As1Bs2
步骤201,将Ai需要做匹配计算的个数定义为A_LENi,设
Figure BDA0002353276670000062
Figure BDA0002353276670000063
A_SUMj为第j天之前需要做匹配计算数量。
步骤202,遍历整个A_SUM数组,找到第一个大于每个进程中task_num_startp值的A_SUMt,并保存t值。
步骤203,t-1即为开始匹配位置As1Bs2中的s1,再由t-1值得到A_SUMt-1
步骤204,将task_num_startp-A_SUMt-1即可得到每个进程在第t天的需要处理的任务数量。
步骤205,再把步骤204中的task_num_startp-A_SUMt-1值加上t,即可得到每个进程的初始匹配位置As1Bs2中的s2,至此得到了每个进程的初始匹配位置As1Bs2
步骤3,计算获取结束匹配位置Ae1Be2
步骤301,定义变量nday1用于记录每个进程处理的任务AiBj中imax-imin+1的值,nday1代表Ai中i的个数。
步骤302,定义变量nday2用于记录每个进程处理的任务AiBj中jmax-jmin+1的值,nday2代表Bj中j的个数。
步骤303,定义变量day1_min,day2_min用于记录每个进程处理的任务AiBj中最小的i和j;同时定义day1_start,day2_start表示步骤203、步骤205求出的As1Bs2中的s1和s2。
步骤304,将day1_min+nday1-1即可得到得到Ae1Be2中的e1,将day2_start-day2_min+nday1即可得到Ae1Be2中的e2。
步骤4,根据获取的As1Bs2位置和Ae1Be2位置读取对应数据进行计算。
步骤401,定义结构体数组stk,k为进程索引,根据每个进程的初始匹配位置As1Bs2和结束匹配位置Ae1Be2读入数据到结构体数组stk中。
步骤402,对结构体数组stk进行计算,公式为
Figure BDA0002353276670000071
t为Ai、Bj中数据的索引,至此得到计算结果。
图6为串行和并行模式下程序的加速比和计算时间比较,左轴为加速比,右轴为计算时间,单位小时。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种用于波形互相关双差定位算法的并行优化方法,其特征在于,步骤如下:
步骤1,获取总任务数和总进程数,并将总任务平均分给每个进程,并得出每个进程的任务初始位置;
步骤2,计算获取初始匹配位置As1Bs2
步骤3,计算获取结束匹配位置Ae1Be2
步骤4,根据获取的As1Bs2位置和Ae1Be2位置读取对应数据进行计算;
步骤1具体包括:
步骤101,首先选定两个台站,台站A和台站B,每个台站都有N天的数据,A台站第i天的数据可表示为Ai,B台站第i天的数据可表示为Bi,台站A和台站B之间的数据需要进行匹配计算,匹配方式是对每个Ai,都需要和Bj(j>i)进行匹配计算,匹配计算格式定义为AiBj(1≤i<j≤N),由此便可得到A和B匹配计算总的任务数为
Figure FDA0004111869120000011
个,定义为PAIRS_LEN;
步骤102,将总进程个数定义为np,目标是求总任务平均分配给每个进程后,每个进程的任务初始匹配位置As1Bs2和结束匹配位置Ae1Be2
步骤103,将PAIRS_LEN整除np,得到每个进程要处理的任务数量,定义为task_numk,k表示进程索引,再将PAIRS_LEN余除np,得到暂未被分配到进程的任务数量,定义为residul_day;将residul_day个任务数分配到总进程中前residul_day个进程,所以前residul_day个进程任务数task_numk(k≤residul_day)自加1;至此完成进程任务数量分配;
步骤104,根据每个进程需要处理的任务数量task_numk,累加计算
Figure FDA0004111869120000012
得到每个进程的任务初始位置task_num_startp,p表示进程索引,k=1,2,3...p...;
步骤2具体包括:
步骤201,将Ai需要做匹配计算的个数定义为A_LENi,定义
Figure FDA0004111869120000021
Figure FDA0004111869120000022
A_SUMj为第j天之前需要做匹配计算数量;
步骤202,遍历整个A_SUM数组,找到第一个大于每个进程中task_num_startp值的A_SUMt,并保存t值;
步骤203,t-1即为开始匹配位置As1Bs2中的s1,再由t-1值得到A_SUMt-1
步骤204,将task_num_startp-A_SUMt-1即可得到每个进程在第t天的需要处理的任务数量
步骤205,再把步骤204中的task_num_startp-A_SUMt-1值加上t,即可得到每个进程的初始匹配位置As1Bs2中的s2,至此得到了每个进程的初始匹配位置As1Bs2
步骤3具体包括:
步骤301,定义变量nday1用于记录每个进程处理的任务AiBj中imax-imin+1的值,nday1代表Ai中i的个数;
步骤302,定义变量nday2用于记录每个进程处理的任务AiBj中jmax-jmin+1的值,nday2代表Bj中j的个数;
步骤303,定义变量day1_min,day2_min用于记录每个进程处理的任务AiBj中最小的i和j;同时定义day1_start,day2_start表示步骤203、步骤205求出的As1Bs2中的s1和s2;
步骤304,将day1_min+nday1-1即可得到得到Ae1Be2中的e1,将day2_start-day2_min+nday1即可得到Ae1Be2中的e2;
步骤4具体包括:
步骤401,定义结构体数组stk,k为进程索引,根据每个进程的初始匹配位置As1Bs2和结束匹配位置Ae1Be2读入数据到结构体数组stk中;
步骤402,对结构体数组stk进行计算,公式为
Figure FDA0004111869120000031
t为Ai、Bj中数据的索引,至此得计算结果。
CN202010000724.1A 2020-01-02 2020-01-02 一种用于波形互相关双差定位算法的并行优化方法 Active CN111190740B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010000724.1A CN111190740B (zh) 2020-01-02 2020-01-02 一种用于波形互相关双差定位算法的并行优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010000724.1A CN111190740B (zh) 2020-01-02 2020-01-02 一种用于波形互相关双差定位算法的并行优化方法

Publications (2)

Publication Number Publication Date
CN111190740A CN111190740A (zh) 2020-05-22
CN111190740B true CN111190740B (zh) 2023-04-18

Family

ID=70708142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010000724.1A Active CN111190740B (zh) 2020-01-02 2020-01-02 一种用于波形互相关双差定位算法的并行优化方法

Country Status (1)

Country Link
CN (1) CN111190740B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9239395B2 (en) * 2012-03-31 2016-01-19 University Of Science And Technology Of China Method and system of determining earthquake parameters, earthquake search engine
CN106772600B (zh) * 2016-12-21 2020-08-28 中国科学技术大学 一种双对双差地震定位方法及装置
CN110389377B (zh) * 2018-04-23 2020-11-27 中国海洋大学 基于波形互相关系数相乘的微震偏移成像定位方法

Also Published As

Publication number Publication date
CN111190740A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CA2317081C (en) Estimation of column cardinality in a partitioned relational database
CN103716879B (zh) Nlos环境下采用距离几何的无线定位新方法
CN111551896A (zh) 抑制传感器位置速度先验误差的加权多维标度toa和foa多源协同定位方法
CN112193239B (zh) 自动泊车控制***中的轨迹计算方法、设备及存储设备
CN110333480B (zh) 一种基于聚类的单无人机多目标aoa定位方法
CN105005029A (zh) 一种基于数据场层次聚类的多模雷达信号分选方法
CN110221244B (zh) 非视距条件下基于到达时间差的鲁棒定位方法
CN112667712B (zh) 一种基于差分隐私的分组精准直方图数据发布方法
CN111190740B (zh) 一种用于波形互相关双差定位算法的并行优化方法
CN110146924A (zh) 基于水波初至偏振方位的海底地震仪位置及方位反演方法
CN113960532B (zh) 一种基于假想源的二次定位计算的微地震定位方法
CN111199281A (zh) 基于地理坐标空域位置谱的短波单站直接定位偏差补偿方法
Frid On the frequency of factors in a D0L word
CN114791584B (zh) 基于多站双脉冲间隔差异的信号辐射源定位方法及应用
CN113075620B (zh) 一种基于多站时差网格聚类的信号分选方法
CN113835061B (zh) 一种信号载波频率先验误差存在下单平台多普勒两阶段闭式定位方法
CN113970762B (zh) 一种多级干扰源定位方法及***
Göbel The smooth‐path topology for curved space–time which incorporates the conformal structure and analytic Feynman tracks
CN111352065B (zh) 非视距环境下基于toa模式的高精度快速定位方法
CN113821915A (zh) 一种轴对称电子光学***的快速计算方法
CN110222429B (zh) 多根线电流参数重建的优化方法
CN110146907A (zh) 一种基于消除残余相位和改进tlbo算法的卫星导航定位方法
Kafeety et al. A general framework for iterative aggregation/disaggregation methods
CN114440889B (zh) 一种针对实时兴趣区动态进化的多域集群协同导航方法
CN110972094B (zh) 室内混合稀疏los/nlos场景下的l0范数定位方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant