自动同步技术

2024-09-08

自动同步技术(通用10篇)

自动同步技术 篇1

当前信息化的时代,数据成为了最重要的资源,如何能消化信息孤岛,更好地完成同一组织内部、同一组织上下级、不同组织间的数据汇总、分析等问题就凸显出来;只有很好地完成了数据的整合,才能更进一步地支撑起上层数据的挖掘、分析,才能对企事业单位的未来发展战略提供有效的数据依据。

在这种背景下,数据集成应运而生。在实施数据集成的过程中,由于不同用户提供的数据可能来自不同的途径,其数据内容、数据格式和数据质量千差万别,有时甚至会遇到数据格式不能转换或数据转换格式后丢失信息等棘手问题,严重阻碍了数据在各部门和各应用系统中的流动与共享。因此,如何对数据进行有效的集成管理已成为增强企业商业竞争力的必然选择。ETL是实现数据集成的主要技术。数据抽取即从源数据抽取目的数据源系统需要的数据,数据抽取的方式常见的有触发器、全面数据对比、日志比对、状态位、时间戳、CDC等。本文主要介绍以CDC技术为基础实现源与目标数据的自动同步。

1 CDC简介

CDC是Oracle数据库的特性。CDC能够帮助你识别从上次提取之后发生变化的数据,包括对源表进行增、删、改等操作。而且,变化数据保存在变化表中,这样就可以捕获发生变化的数据。CDC技术主要设计的对象包括:源表、变化表、变化集、订阅视图、订阅窗口。

CDC同步模式分为两种:同步模式和异步模式,本文主要采用同步模式实现变化数据的抽取。

2 CDC的配置步骤

2.1 创建订阅、发布用户

在ORACLE中创建订阅cdc_dy_test、发布用户cdc_fb_test,并给cdc_fb_test授予select_catalog_role、execute_ catalog_role、dbms_cdc_publish等权限;给cdc_dy_test授予create any proce-dure、create any job等权限。

2.2 创建源、目标用户

在ORACLE中创建源用户test、目标用户target,并给用户授权。

目标用户下创建表student_test (id,name ,sex ),并授所有权限给cdc_dy_test。

源用户下创建表student_test (id,name ,sex ),并授所有权限给cdc_fb_test和cdc_dy_test。

2.3 发布数据

2.3.1创建改变集

登录cdc_fb_test,利用dbms_cdc_publish.create_change_set创建改变集student_test_change_set。

2.3.2 创建改变表

登录cdc_fb_test,利用dbms_cdc_publish.create_change_ta-ble创建改变表student_test_ct、改变集参数为stu-dent_test_change_set,并且把改变表查询权限授权给订阅用户cdc_dy_test。

2.4 订阅数据

2.4.1创建订阅

以订阅者(cdc_dy_test)登录,使用dbms_cdc_subscribe.cre-ate_subscription创建订阅student_test_cdc_sub。

2.4.2 订阅表

登录cdc_dy_test,针对发布表建立订阅视图,将来订阅时从这些视图读取数据,使用dbms_cdc_subscribe.subscribe创建订阅student_test_cdc_sub对应的订阅表cdc_stu-dent_test_sub_v。

2.4.3 激活订阅

订阅需要激活, 才能生效,使用dbms_cdc_subscribe.acti-vate_subscription激活订阅student_test_cdc_sub,激活后CDC就开始捕获改变数据。

至此,发布、订阅的管理工作完成。接下来基于CDC获取变化数据并同步至目标表。

3 基于CDC技术实现数据同步

基于CDC实现数据同步,主要思路是:创建存储过程,在存储过程中借助之前已经完成的工作,读取变化数据,并向目标同步数据;之后,创建作业定时调度该存储过程,从而实现数据自动同步。

3.1 创建数据同步存储过程

通过存储过程同步处理源表test.student_test与目标表tar-get.student_test的数据。

3.2 创建作业

通过创建ORACLE作业,定时执行存储过程来实现数据自动同步。作业创建可以借助工具,作业名称为cdc_job,作业执行周期为1分钟。

4 结束语

综上所述,ORACLE CDC与存储过程、作业等技术结合即可实现数据的同步,而无需开发应用软件,为数据的同步提供了一种数据库层面的技术手段。当然,本文只介绍了基本的CDC数据同步方式,但掌握了CDC的基础技能后,就可以在此基础上进行扩展,实现更多、更强的功能。

摘要:当前信息化的时代,数据成为了最重要的资源,如何能消化信息孤岛,更好地完成同一组织内部、上下级、不同组织间的数据汇总、统计、分析等问题就凸显出来;只有很好地完成了数据的整合,才能更进一步地支撑起上层数据的挖掘、分析,能对企事业单位的未来发展战略提供有效的数据依据。在这种如何消化信息孤岛的背景下,数据集成应运而生。在实施数据集成的过程中,ETL是实现数据集成的主要技术,其主要提供数据抽取、数据转换、数据加载功能,数据抽取的方式常见的有触发器、日志比对、CDC等。该文主要介绍基于CDC技术实现数据自动同步。

关键词:ORACLE,CDC,数据同步

比肩网盘手动打造自动同步 篇2

我原来使用的是网盘,可以非常方便地实现文件同步。现在网盘不能使用后,在用服务器共享目录实现共享,怎么让这种共享也实现类似网盘的同步功能?(题号:20161102)

解题思路

网盘同步功能实际上是将网盘服务器上的文件和本地同步目录的文件进行比对,然后对新文件进行自动复制。因此对于用服务器共享目录实现共享的用户,如果要实现同步功能,我们只要利用复制工具实现自动复制即可。

解题方法

由于同步只是将本地目录文件复制到共享目录保存备份,因此可以借助系统自带的Robocopy命令实现,自动复制则借助任务计划完成。下面以Windows 10系统为例。

在搜索框输入“任务计划”,启动系统自带的任务计划程序组件后点击“创建任务”,按照向导的提示依次创建一个“同步文件”的新任务,触发器是每天17:20(假设17:30下班)开始运行,这样每天17:20开始执行复制任务(图1)。

切换到“操作”,操作是“启动程序”,执行的程序是“robocopy”,参数是“K:\解压缩 \\fdvdsf-pc\解压缩 /mir”,这个批处理程序会将指定文件以增量复制的方式复制到服务器上的共享目录里(图2)。

命令解释:

K:\解压缩:是指本机需要复制到服务器上共享目录的本地目录。

\\fdvdsf-pc\解压缩:指服务器上保存本地备份文件的共享目录,共享目录路径可用在网络组件中打开查看(图3)。

/mir:指使用镜像方式进行复制,这样可以将本地目录里所有变化(包括新增、修改、删除)的文件复制到共享目录里保存。如果需要实现双向同步,那么可以再建立一个任务计划,比如每天早上8点执行“robocopy \\ fdvdsf-pc\解压缩 k:\解压缩 /mir”,这样服务器上文件会同步到本地目录,如服务器共享目录删除文件后,执行上述命令后本地目录同名文件也会同步删除。为了方便使用,还可以结合上述命令,添加“shutdown –s”制作为批处理,实现自动同步后关机。

自动同步技术 篇3

关键词:延时自动同步,调频同步广播系统,应用

1 同相理论

调频同步广播同相系统中相同的节目码流经不同的传输链路传输到发射台, 由发射机编码调制后发射射频信号, 假设节目码流经两个发射台 (发射台A和发射台B) 到接收机的延时分别为总延时TA、TB, 总延时包括射频信号传输延时与节目码流传输延时, 即射频延时和音频延时。射频延时指的是射频信号发射后传递至接收机的延时, 音频延时所指的是节目码经过传输网络传递至发射台的延时。节目传输网络主要由有线电视网络、IP网络、通信网络传输、卫星传输以及微波传输等传输方式中的一种或者若干种组成。整体来说, 音频传输会随着时间的变化发生相应的变化, 射频延时具有不变的特性, 当确定了发射功率以及发射台位置后, 相同接收点接收信号的射频延时相同。

2“延时自动同步”技术在调频同步广播系统中的应用

2.1 延时自动同步系统的结构

典型调频同步广播系统主要有两部分组成, 即发射站点以及节目中心端。其中同步编码器是中心端系统的重要组成部分, 同步编码器的功能主要包括: (1) 压缩编码和封装音频节目; (2) 通过对GPS时间信息进行分析, 在码流中增加相应的时间戳信息; (3) 确定网络适配后, 将信息送入传输网络。传输网络将节目码发送至各发射台, 然后由发射台将节目码流经信号送入同步解码器中。同步解码器的功能主要包括: (1) 对接口进行适配; (2) 通过对GPS时间信息进行分析, 并测量传输延时信息; (3) 自动补偿传输延时; (4) 解码音频信号, 并将同步AES信号传递至同步激励器中。通过将同步解码器与同步编码器增加到调频同步广播系统中, 能够实现完全同相, 相对延时小于1μs, 能够很好地满足行业规范和要求。

2.2 基于延时自动同步调频同步广播系统的特点

因为同步解码器与同步编码器具有自动补偿功能以及延时实时测量功能等, 并且该系统采用了单频网同步技术, 具备性能指标高等优点, 被广泛应用在调频同步广播系统中。基于延时自动同步技术调频同步广播系统最显著的特点就是“自动化”, 主要体现在系统维护与系统调试两个方面。调频同步广播系统中延时测量既没有专用的测量设备, 也没有统一的测量方法, 通常状况下不能够快速、准确地测量系统延时, 无法实现调频的精确同步, 对相干区的收听效果产生不良的影响。由于系统的延时并不是一成不变的, 导致系统出现延时的原因主要包括:传输网络中设备的更换、传输网络路由器的调整以及传输网络延时固有变化等。系统维护人员无法全面了解系统延时的变化状况, 只有当相干区收听质量严重降低后, 确定原因之后才能够判断是否延时发生变化, 导致严重的播出事故。通过将延时自动同步技术应用在调频同步广播系统中, 由同步解码器每4秒对GPS信息与码流的时间信息的延时进行测量, 测量延时小于1μs。

延时自动同步技术应用TS码流, 能够保证节目码流在各种网络中进行同步传输, 信号源主备份与传输网络设计在调频同步广播系统中的作用至关重要, 系统将节目码流同步到发送至各个发射台, 因为不同发射台的重要等级、硬件条件以及所处位置不同, 因此, 信号的传输方式也存在一定的差异。为了保证系统能够安全播出, 节目源通常利用主备路方式, 如果某个发射点的主信号源发生故障或者问题后, 由备份信号源代替主信号源, 以此保证信号能够安全、稳定地传输。

2.3 系统调试

基于延时自动同步调频同步广播系统的相干区的调试内容主要包括:干扰区调试、覆盖区调试、频率锁定调试、场强调试以及天线定向调试等, 在进行相干区调试时需要对环境进行全面的调查和分析, 并做好上述方面的交叉调试。对于调试后依然不能够满足指标要求, 尤其是几项重要指标, 需要将其调整至听众稀少的区域。

3 结语

调频同步广播系统经过多年的发展, 由于其自身的众多优势被广泛应用在全国广播电台中。通过将延时自动同步技术应用在调频同步广播系统中, 能够实现对系统延时的自动测量和调整, 有效减少维修工作量, 提高系统稳定性, 为保证调频同步广播系统的安全、稳定运行奠定坚实的基础。

参考文献

[1]杨刚, 杨霏, 蔡超时, 等.基于“延时自动同步”技术的调频同步广播系统[J].广播与电视技术, 2010 (5) .

自动同步技术 篇4

【关键词】电力自动化设备; 时钟同步; NTP

一、前言

我国的电力自动化设备进行工作时,难免会出现意外情况,而这些意外情况与时钟同步记录是有着十分紧密的联系的,一旦时间记录发生错误的话,就会对相关工作人员的判断能力造成影响,还会导致更严重的事故发生。因此,要想避免这些事故的话,就需要充分利用好NTP,也就是通常所说的网络时间协议,它能够帮助电力自动化设备实现时钟同步的工作,帮助相关的电力企业进行更好地工作。

二、NTP的概念

NTP就是网络时间协议的缩写,只要相关的设备上有NTP服务器以及标准时钟,那么该设备就能够通过网络时间协议进行时间对准的工作。NTP能够对标准时间进行及时获取,既可以从因特网上找到时间来源,同样也能够从天文台、卫星等地方获得相关的时间来源,这样也就保证了获得的时间源是准确可靠的。一般而言,NTP的服务器结构选用的多为客户/服务器,相关的客户在进行对时工作时,所利用的就是NTP,然后在通过特定的通信渠道,将服务器与相关的设备进行连接,这样就能够对误差进行控制,保证时钟的准确性。

三、NTP的工作原理与工作方式

(1)在相关的时间网络协议当中,一般都是把参考时钟作为协议的最高层,然后将时间服务分为一、二、三层,同时相关的参考时钟还可以进行具体的分层服务。当进行分层服务时,客户端能够将自身所处的时间以及请求编写到接收时间之中,根据所受到的数据包再次进行传输时间的计算。这类过程一般都需要重复进行几次,因为这样才能够保证统计数据的准确性,才能够进行更准确的对时工作。不仅如此,进行NTP对时工作的时候,还能够通过广播、点对点的方式,虽然也需要几分钟的时间,但是也能够对数据的准确性进行保证。如果时间误差较大时,那么就需要对相关的设备进行调整,要能够保证路由器的数量不会过多,只有这样才能保证好NTP对时工作能够安全高效的进行下去。

(2)NTP所使用的UDP/IP能够保证其获得快速的响应与连接,NTP所需要的资源量很小,哪怕只有一个服务器,就可以对成百上千的客户进行服务了;NTP需要的网络带宽量很小,其数据包长度为90字节。虽然NTP所使用的UDP会造成网络堵塞,影响到时钟的同步工作,但是相关的客户端还是能够使用以前的历史数据来进行调节,只要能够对网络中的路由器进行数量上的控制,那么就能够保证在较短的时间内完成对时的工作。

(3)NTP能够通过时间服务器、无线时钟以及局域网等来实现自身的同步工作。选用时间服务器,就是利用好网络当中的时间服务器,通过其来实现系统时间的更新;选用无线时钟,就是将某个无线时钟与相关的服务器系统进行连接,然后通过卫星进行信号的确定,以此来实现时间的校对;而局域网的同步就是以时间源对时间进行同步。这些对时方法都能够保证电力自动化设备进行正常的时钟同步工作,使其能够更好地促进电力设备的使用。

四、在电力自动化设备中使用NTP进行时钟同步工作的优势

(1)由于NTP上的标准时间都是从UTC上得到的,因此时间源也就比较广泛,像互联网、卫星、天文台等都可以成为NTP的时间源,并且这些时间源的可靠性都能够得到保证。不仅如此,NTP服务器还能够进行分层服务,这样也就将标准时钟与电子设备之间的误差缩小了,更加能够保证时钟的准确性。

(2)目前我国所选用的对时方法多为主站向远动设备的对时方法,然而这种方式的分辨率以及精准度都很低,時间误差较大,通常都会保持在100ms以上。如果所使用的对时方法为站内时钟对站内设备的话,尽管在时间准确度方面能够达到要求,但是却需要将标准时钟以及相关设备之间的距离进行控制,要使其保持在较短的距离之内,并且还要能够保证接口与电缆是单独的。因此,面对这类情况,就需要选择网络时间协议,不仅运用范围较广,分辨率以及精准度也很高,而且还能够在局域网、广域网中进行使用,能够广泛应用于自动化设备当中,保证其能够获得更好的条件与环境。

五、如何提高电力自动化设备在时钟同步中对于NTP的运用

(1)系统平台的支持

要想确保NTP在电子自动化设备中得到安全有效的运用,就需要保证相关的服务器以及客户端的设备能够匹配,需要在客户端内配置带有时钟同步功能的服务器,像Windows、Linux等都能够支持NTP的相关功能,这样就能够保证相关的电子设备实现时钟同步的工作,保证其获得健康的发展环境。如果相关的系统平台不能够对时钟同步进行支持工作的话,那么就需要对应的厂家将NTP的功能在客户端上进行实现。

(2)设置多台服务器

如果想要在相关的电力自动化设备当中有效地实现NTP的作用的话,只有一台服务器是远远不够的,因此就需要在相关的设备当中设置多台服务器。电力企业要能够在每一个变电站配置一台服务器,并且将GPS设置为相关电子设备的标准时间,同时还要能够保证变电站的计算机设备以及相关的自动化设备可以进行同步计时的工作。如果想要相关的网络时间协议变得更加值得信任的话,那么就需要同时设置多台NTP服务器,在这种情况下,进行同步的服务器就会变为性能最好、精准度最高的那台服务器,更加能够保证系统的安全性。设置多台服务器不仅能够保证时间同步的准确性,保证客户、服务器同时进行使用,而且还能够保证相关的电力设备进行正常的工作,为企业创造出更大的经济利益。

(3)进行故障解决

如果相关的电力自动化设备当中使用了NTP,那么当其在运行过程中发生故障时,就能够选择手动的方式,再次将NTP服务器进行启动,而且还能够在相关的图形界面上进行命令的输入。如果在工作过程中发现参考时钟、实际时钟之间的误差较大的话,就应该将NTP断开,然后对其进行实时的检测工作,将NTP的实际工作情况进行及时了解,只有这样才能保证信号的完整,才能保证服务器的可靠准确,最终保证电力自动化设备的时钟同步工作能够正常进行下去。

(4)提高系统的安全稳定

随着时代的发展,我国的电力企业已经将RTOS系统运用在相关的变电站设备当中了,其能够帮助电力设备进行时间的同步响应,甚至异步时间响应也能够得以实现。不仅如此,RTOS系统也能够达到网络时间协议的要求,实现时钟同步的工作,因此为了能够实现更好的对时工作,相关的电力自动化设备要能够选择较好的振荡器,只有这样,才能更好地促进NTP的应用,才能更好地进行时钟同步的工作,保证电子企业的正常工作的开展。

六、结语

根据NTP的工作原理、工作方式以及优势条件等,能够看出NTP的功能较为强大,因此在相关的电力自动化设备当中,也能够很好地进行时钟同步的工作。正是由于NTP的操作较为简单,资金投入较少,才使得相关的电力设备的结构变得更为简单,才保证了电力自动化设备的正常工作。因此,相关的电力企业要能够对NTP进行充分利用,不断将其的发展潜力进行挖掘,只有这样,才能保证我国电力企业的健康发展,才能最终促进我国经济社会的发展。

参考文献

[1]吕俪俪.NTP在电力自动化设备时钟同步中的应用分析.硅谷[J].2013(24).

[2]张树海.NTP在电力自动化设备时钟同步中的应用探讨.电源技术应用[J].2013(4).

自动同步技术 篇5

关键词:电路设计,电压和电流测量电路,频率和功率因数测量电路,相角差测量电路,数字信号采集电路

发电机组自动准同步并网装置的数据测量输入电路设计围绕80c196KC型16位单片机展开, 分为模拟信号测量和数字信号采集两部分。

模拟信号测量部分主要完成对同步点两侧电压幅值、电流幅值、频率、功率因数以及相角差的测量, 数字信号采集使用了光电隔离等抗干扰处理技术。

电压、电流幅值的测量是先将交流电压、电流整流滤波, 然后送入80c196KC自身的A/D转换器进行测量。而发电机组的频率、功率因数及相角差都属于时间的范畴, 它们的测量都是将交变电压转换为同频方波信号, 通过CPU的捕获单元记录下方波信号的上升、下降沿时刻, 通过软件方法得到计算结果。

1 电压和电流测量电路

在本设计中, 电压、电流幅值测量采用的方式是对交流电压、电流整流滤波后通过测量直流量从而得到的交流电压和电流的最大值。电压幅值测量电路如图1所示。

电压互感器是比差和角差很精确的变压器, 本系统中选用的是TV1013-1微型精密交流电压互感器, 它具备体积小、精度高、隔离能力强等特点, 由于是电流型电压互感器, 次级电路不能开路使用回路中也不能安装熔断器。交流电压经互感器衰减、隔离后通过精密全波整流电路整流送入80c196KC单片机的内部A/D接口。80c196KC单片机内部ADC是8位、10位精度可选的A/D转换模块, 具有通用的采样/保持电路, 可选择软件、采样定时器或其它片内定时器来控制采样周期, ADC工作时可以用内部参考电平或者外部参考电平。

电流幅值的测量电路与图1类似。

电流互感器选用TA1905-04母线内置式小型交流电流互感器, 参数与TV1013-1相似, 由于额定输入电流为5A, 要前加一级电流互感装置, 构成二级互感, 其初级应串联于被测电流回路中, 次级应近似工作于短路状态。

2 频率和功率因数测量电路

频率和功率因数的测量属于时间量的范畴, 要用到80c196KC单片机的高速输入通道 (HSI) 。高速输入通道 (HSI) 用于记录某一外部事件发生的时间, 时间基准由定时器1提供, 共可记录8个事件。引脚HSI.0~HSI.3可做高速输入, HSI.2和HSI.3是双向引脚, 也可用作高速输出, 它们的功能靠I/O控制寄存器IOC0和IOC1来选择。

图中AA点的引入信号是电压幅值测量中AA点的信号, BB点的引入信号是电流幅值测量中BB点的信号, 都是一个正弦波信号。正弦波信号经过电压跟随器、过零比较器后通过与非门输入单片机的高速输入通道HSI.0。

本设计采用LM110单片集成电压跟随器, 它的输入电阻很大而输出电阻很小, 具有频带较宽、精度高、稳定性能好、带负载能力强的优点。电压和电流信号经过零比较器后形成方波, 经由与非门形成相差和周期信号, 再通过读取高速输入口HSI.0的输入脉冲上升沿、下降沿分别对应的定时器T1的值即可得ΔT值。

由图可看出, 电压滞后电流时所对应的电流方波电平是高电平, 反之为低电平, 因此可以在HSI0输入脉冲的上升沿去测量HSI.1口的输入电平, 以此判断出功率因数的正负。

3 数字信号采集电路

自动同步技术 篇6

1 硬件设计

1.1 硬件电路框图及装置工作原理

本装置首先必须要准确地测量系统侧和待并侧的同期参数, 也就是精确测量两侧的电压、频率以及相位差, 然后装置要进行准确的同期动作以及相关的通信。因此, 系统的硬件设计和软件流程紧紧围绕这3个方面展开。单片机AT89C51主要负责识别和保存按键值 (中断方式) , 以及直接驱动LED。控制输出开关量, 主要包括同期失败报警、升降压、升降频、同期合闸等。装置硬件电路框图如图1所示。

1.2 单片机的选择

单片机选择AT89C51, 时钟信号产生采用内部时钟方式。AT89C51的I/O口不能满足本装置输入、输出的要求, 需进行I/O扩展, 则选用8155芯片, AT89C51扩展图如图2。程序存储器的扩展采用27128A, 据存储器的扩展采用6264。本装置硬件连接如图3。

1.3 模拟输入/输出通道电路

模拟输入装置由电压互感器、低通滤波器、相序检测, 频率、电压和相位的测量单元组成。A/D转换采用2×4通道14位高速A/D转换芯片MAX125, AT89C51的P0、P2端口可以用作I/O口使用。AT89C51与MAX125的接口电路见图4。

测控板与外部强电部分应该电气隔离, 通过光耦将输出信号传送给调压执行单元、调速执行单元、合闸执行单元和报警单元等。光耦隔离驱动电路如图5。

TLP-521是慢速光耦, 响应时间约为25μs, 这个响应速度在本装置中是合适的。驱动外部合闸电路的继电器, 采用ULN2004集成驱动芯片。调压、调速、合闸、报警显示电路如图6。

1.4 键盘和显示单元

3*4矩阵键盘及接口电路如图7所示。由BIC8717构成LED驱动接口电路, LED接口显示电路如图8所示。8155A的端口A用来输出显示字符, 8155A的端口B用来控制LED的显示位, 即位空端口。

1.5 电源电路

模拟电路电源变压器比为44 ∶3, 数字电路电源变压器比为22 ∶3。工作电源电路如图9。

2 软件结构

程序包括有主程序、中断程序等组成。主程序流程如图10。1ms中断服务程序流程如图11。

2.1 调频调压控制

当频差、压差不满足并网条件时, 同期装置就要对发电机电压和频率进行调节, 使得发电机电压和频率尽快地满足并网条件, 及时并网。PID调节流程如图12。

2.2 同期合闸判断

考虑到复杂的电力系统, 既有差频并网又有同频并网, 在同期装置中可把实现差频并网和同频并网的功能结合起来。同期对象为线路型的流程图如图13。同期对象为发电机型的流程图如图14。

3 结论

农用电网同步发电机自动准同期并网装置, 能够对发电机和系统之间的相序作出检测, 通过软件程序的调节, 使电压差、频率差和相位差尽可能小, 使发电机快速、平滑、安全的并入电网中, 保证农用电网电力系统的正常稳定地运行。

参考文献

[1]卓友乐, 叶念国.微机型自动准同步装置的设计和应用[M].中国电力出版社.

[2]李俊霞.一种微机型自动准同期装置[J].继电器, 2002.2.

[3]傅周兴等.单片机准同期自动并列合闸时机的研究[J].煤矿自动化, 2000.6.

[4]廖新征等.微机准同期与PC机的串口通信[J].现代电子技术, 2002.8.

[5]蔡美琴.MCS-51系列单片机系统及其应用[M].高等教育出版社, 2004.6.

[6]严玉峰.单片机应用系统设计与仿真[M].北京航空航天大学出版社.

自动同步技术 篇7

在Windows系统下我们可以使用OpenSSH软件搭建SSH环境,这样就可以通过SSH实现Windows与Linux主机间的连接。同步软件选用的是unison,它是个跨平台的开源软件,可以实现不同操作系统间文件夹的同步。在Windows系统下,unison有命令行和图形前端两种版本,其中图形前端版需要GTK+库的支持。

2 目录同步操作指南

Unison-2.27.57-Gtk.zip压缩包中的Unison-2.27.57 Gtk+.exe是unison的图形前端(图1),需要安装不低于2.12版的GTK+来支持它。

由于图形界面的操作比较直观,下面只讲解命令行下的操作方法。

2.1 Windows上实现与远程Linux主机的同步

2.1.1 在本地Windows机器上搭建好环境

解压缩Unison-2.27.57-Gtk.zip至任一文件夹,如D:unison。为操作方便,可把解压出来的Unison-2.27.57Text.exe改名为unison.exe。

安装OpenSSH并做如下配置:

(1)打开一个命令行窗口并切换到安装目录(默认路径是C:Program FilesOpenSSH)。

(2) CD进入bin目录。

(3)使用mkgroup命令创建一个组验证文件。对本地工作组,使用“-l”参数;对域,使用“-d”参数。

要同时使用域和本地工作组,最好把以下两条命令都运行一下(请注意使用>>而不是>)。如果你同时使用这两者,须编辑生成的group文件并删除掉里面相同的条目。

mkgroup-l>>..etcgroup (对本地工作组)

mkgroup-d>>..etcgroup (对域里面的组)

(4)使用mkpasswd命令创建一个名为passwd文件并把需要验证的用户加入到这个文件中。对本地工作组,使用“-l”参数;对域,使用“-d”参数。

要同时使用域和本地工作组,最好把以下两条命令都运行一下(请注意使用>>而不是>)。如果你同时使用这两者,须编辑生成的passwd文件并删除掉里面相同的条目。

mkpasswd-l[-u]>>..etcpasswd (对本地工作组)

mkpasswd-d[-u]>>..etcpasswd (对域里面的组)

注:若需要从不同于本机所在主域的其它域里增加用户,请在用户名后加上域名。

注:不必切换用户名,命令会自动增加计算机或域里的所有用户,包括服务账户和来宾帐户。

(5)开启OpenSSH服务。

net start opensshd

(6)测试服务器。最好用另外一台机器作为客户端。如果能够连接,但会马上当掉,请重启服务端机器,并尝试重新连接。

(7)确保能够SSH连接后,先修改/home(根目录),编辑注册表

将Native字符串值改为C:Program FilesOpenSSHhome

注:修改完后需要重启系统, 重新加载注册表。

(8)在C:Program FilesOpenSSH下建立目录home目录和当前登录用户名对应的目录(此例为zengshaogeng)。

cd C:Program FilesOpenSSH

mkdir home

mkdir homezengshaogeng

(9)生成密钥

cd C:Program FilesOpenSSHbin

ssh-keygen.exe-d

如图2,选择默认选项即会创建C:Program FilesOpenSSHhomezengshaogeng.ssh目录,并在目录下生成两个文件:id_dsa和id_dsa.pub,其中后缀.pub的就是公钥。

2.1.2 在远程Linux主机上搭建好环境

(1) 拷贝id-dsa.pub到远程linux服务器任意目录。

(2) 在远程linux服务器上执行命令

注:最好用root用户来操作,用其他用户在本机上未测试成功。Authorized_keys文件权限要保证不低于600。

(3)修改sshd配置文件

两行的注释去掉, 采用authorized_keys文件的验证用户身份。

(4) 重启sshd服务

(5)现在在windows主机的命令行窗口下ssh就可以免密码登录远程Linux主机了

(6)建好免密码连接远程Linux的SSH环境后,就可以结合unison实现远程同步了。

在Linux主机上也要配置好unison的执行环境,执行以下命令即可:

2.1.3 实现同步

首先在本地Windows主机的命令行窗口进入unison.exe所在的文件夹。

使用方法:

unison<本地目录>ssh://root@remotehostname (IP)/<远程目录的绝对路径>

如:

表示将本机的目录E:/home/AAA和远端Linux主机的DB/path/BBB进行同步。一般的,需要两台机能ssh连接,并正确输入root用户对应的密码。

注意:在主机和目录间要多加一个“/”。

如果待同步的两个目录里的文件任何一方有变动的话,再执行同步命令都会有提示让你确认,按照提示操作即可。通常会有如下几种情况需要注意:

图3是在待同步的两个目录里的文件都相同的情形下,删除本地Windows主机文件4.txt再执行同步命令的情形(这里本地Windows主机名是local,远程Linux主机名是localhost localdomain,下同)。默认选项选择了“f”,即按照unison推荐方式来操作。这种情形如果按默认操作来同步的话,会把远程Linux主机上的4.txt也删除掉。但如果你是不小心误删了文件,现在想把本地Windows主机删掉的4.txt找回来,用这个同步也可以帮你找回来,只须在这里不用默认的“f”选项,而改用“>”或“.”选项把远程Linux主机上的文件取回来即可(如图4)。

再在图4提示后按y键确认,即可完成同步。

图5是当本机和远程机上都修改了同一个文件,再同步时会提示你两端都有改变。按“?”可以得到各选项的帮助,然后按需要进行操作。本例中可以用“>”或“.”选项把本机需同步的目录全部替换成远程Linux主机上的文件,也可以用“<”或“,”选项做相反的选择。在Linux主机上,用“d”选项可以调用Linux系统的diff命令比较两个文件的不同(在Windows+OpenSSH环境由于没有diff命令,“d”选项无效,只能用“l”选项区别两文件的基本信息)。

2.2 Linux上实现与远程主机的双向同步

2.2.1 在本地Linux主机上搭建好环境

同样,先在Linux主机上配置好unison的执行环境:

由于Linux系统一般默认都安装好了SSH的服务端和客户端,只需创建好密钥。

2.2.2 在远程Windows机器上搭建好环境

在远程Windows主机上安装好OpenSSH,并把上面生成的id_dsa.pub文件上传到远程Windows主机的C:Program FilesOpenSSHhomezengshaogeng.ssh目录下。再修改C:Program FilesOpenSSHetcsshd_config文件,将

两行的注释去掉,采用authorized_keys文件验证用户身份。

再重启Windows下的OpenSSH服务,就可以在Linux主机上通过ssh命令实现免输密码和远程Windows主机进行连接:

注:username为远程Windows系统上的帐户,remotehostname (IP)为远程Windows系统的机器名(或IP地址)。

在远程Windows主机上解压缩Unison-2.27.57-Gtk.zip至任一文件夹,如D:unison。为操作方便,把解压出来的Unison-2.27.57 Text.exe改名为unison.exe。再把D:unison目录加入Windows系统环境变量。

Unsion实现同步的使用方法见2.1.3节。

另:若远程主机也为Linux系统,操作和配置方法是类似的,参照2.2.1节和2.2.2节,这里不再详述。

3 定时自动同步的实现

3.1 Linux系统下实现定时自动同步

在Linux系统下,可以使用cron服务定制任务的定时运行。由于cron是Linux的内置服务,但它不自动启动,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start//启动服务/sbin/service crond stop//关闭服务/sbin/service crond restart//重启服务/sbin/service crond reload//重新载入配置你也可以让这个服务在系统启动的时候自动启动, 可以在/etc/rc.d/rc.local这个脚本的末尾加上:/sbin/service crond start

可以用crontab-e编辑当前用户的cron服务,每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中。这个文件是不可以直接编辑的,只可以用crontab-e来编辑。

cron启动后每过一分钟读一次/var/spool/cron内的所有文件,检查是否要执行里面的命令。因此,此文件修改后不需要重新启动cron服务。此外,cron还会同时读一次/etc/crontab,因此我们配置这个文件也能运用cron服务来实现任务计划。不同的是,用crontab配置只是针对某个用户的任务,而编辑/etc crontab是针对系统所有用户的任务。

基本格式:

分时日月周命令

第1列表示分钟1~59每分钟用*或者*/1表示

第2列表示小时1~23 (0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6 (0表示星期天)

第6列要运行的命令

这里,我们希望在每周五下午的6:30同步本地Linux主机的/DB1/AA目录和远程Linux主机的/DB2/BB目录,则可以照上面说的开机启动cron服务,并用crontab-e命令编辑一个任务计划:

只要先按照第2节设置好unison和免密码认证的SSH环境,即可在无人干预的情况下实现每周的定时自动同步了。

3.2 Windows系统下实现定时自动同步

在Windows系统下,可以通过“控制面板”里的“任务计划”来定制任务的定时运行。如需定时同步本机Windows主机的D:DB1AA和远程Linux主机的/DB2/BB目录,只需新建一个批处理文件,如task.bat编辑内容如下:

再在“任务计划”里“添加任务计划”,然后按照任务计划向导,选中需运行的程序为task.bat,并设定好需要运行任务的时间,即可实现目录的定时自动同步了。

摘要:在日常文件管理和数据库备份等操作中, 经常会遇到这样的情况:我们需要在无人值守的情况下完成文件夹的同步过程, 以实现周期性的备份, 有时甚至是不同操作系统间的文件夹需要同步。在两台Windows主机中, 要实现文件夹的同步, 用Windows系统自带的公文包即可, 操作过程也比较简单, 故不在本文讨论范围之内。本研究实现了本地Windows主机与远程Linux主机, 本地Linux主机与远程Windows/Linux主机目录的定时自动同步。实例在Windows XP SP2和CentOS 4.6&CentOS 5.2系统下测试通过。

关键词:文件同步,Linux系统,自动同步,定时同步

参考文献

[1]Qian Cunhua, Nakamura Syouji, Nakagawa Toshio.Optimal Backup Policies for a Database System with Incremental Backup.Electronics and Communications in Japan, PartⅢ[J].Fundamental Electronic Science, 2002, 85 (4) :1-9.

[2]Lloyd Scott J, Peckham Joan, Li Jian, et a1.RORIB:An Economic and Em cient Solution for Real-time On-line Remote Information Backup[J].Journal of Database Management, 2003, 14 (3) :56-73.

[3]L P Cox, B D Noble.Pastiche:Making Backup Cheap and Easy[C].Boston:Proceedings of the5th USENIX Symposium on Operating Systems Design and Implementation, 2002:62-79.

[4]徐德民.操作系统原理Linux篇[M].北京:国防工业出版社, 2004.

[5]谢长生, 李晓钰.基于网络备份系统的SFTP性能优化分析与实现[J].计算机工程与科学, 2003 (5) .

[6]顾鹏, 刘立刚, 谢长生.数据存储系统备份技术研究与分析[J].计算机安全, 2003 (6) .

自动同步技术 篇8

1 网络时间协议的概述

具备了一个标准时钟和NTP服务器, 就可以利用网络时间协议来对时。从UTC上, NTP可以对标准时间进行获取, 可以从因特网上来获得UTC的时间来源, 也可以从卫星、天文台等方面获取时间来源, 这样NTP拥有的时间源就非常的可靠和准确, 通常在参考时钟方面, 选用的是GPS时钟。一般情况下, 将客户/服务器作为NTP服务器的结构, 提供分层服务。客户对NTP服务器进行对时时, 利用的是NTP, 具体方法是利用标准时钟来对NTP对时, 然后通过特定的渠道, 用被对时的设备和NTP服务器对时, 要严格控制标准时钟和被对时设备的误差。

NTP的实现方式:一般情况, 可以采用三种方式来同步实现NTP, 分别是无线时钟、时间服务器和局域网。如果采用无线时钟方式, 通过串口, 将一个无线时钟连接到服务器系统, 当前时间是利用GPS的卫星发射信号确定的;采用时间服务器的方式, 则是利用网络中的NTP时间服务器来同步网络中的系统时间。局域网内的同步则是以时间源来进行同步时间, 时间源可以从局域网中选择一个节点的时钟来实现。

NTP的工作原理:在时间网络协议中, 参考时钟层为最高层, 时间服务层分别是下面的一二三层, 上层服务器的客户就是下层的时间服务器, 下层的对时可以要求与上层进行, 由此可见, 参考时钟可以进行分层服务。客户端将自己当前的时间和对时的请求融合在数据包中, 然后发送给服务器, 服务器接收到之后, 就会在接收到的数据包中写入接收时间, 然后客户端就可以依据接收到的返回数据包, 对传输时间计算。一般情况下, 这种过程需要持续几次, 这样得出来的统计数据才足够的准确, 之后方可以进行对时。也可以采用广播方式或者点对点的方式来进行NTP的对时, 要想达到要求的精确度, 一般需要几分钟的时间。为了对NTP初始调解时间进行缩短, 当时间误差达到了一定的限度, 就需要作步调整;如果比时间误差较低, 那么就需要进行慢调整。同步的效果会在很大程度上受到网络延时以及网络环境的影响, 因此就需要保证局域网中的路由器不会过量。

2 采用NTP进行时钟同步的优势分析

通过上文的叙说我们可以得知, 在电力自动化设备中, 对于时钟同步的分辨率有着非常高的要求, 目前, 在对时方面, 应用比较普遍的是主站向远动设备软对时的方式, 采用这种方式有着很大的一个弊端就是只有很低的分辨率和精准度。通常情况下, 利用主站向远动设备进行软对时的方式, 都有着较大的时间误差, 往往会在100ms以上, 那么只有很小的几率可以实现较高的分辨率。如果采用站内GPS时钟向站内设备对视的方式, 时间的精准度虽然可以达到要求, 但是采用这样的对时方式, 需要标准时钟和被对时设备之间只有很短的距离, 并且这种对视方式需要的接口以及电缆都是单独的。针对这种情况, 就可以采用网络时间协议, 它有着较广泛的运用范围和较高的精准度与分辨率, 可以运用于标准的操作系统以及局域网和广域网中。通常情况下, 甚至可以达到毫秒的级别。我们可以预见的是, 随着以太网的逐步推广, NTP时间同步方式将会更加广泛的运用于电力自动化设备中。

3 NTP在电力自动化设备时钟同步中的应用

在变电站的自动化中运用NTP为例, 变电站的间控层和站控层之间只有采用了局域网的方式, 方可以在变电站自动化中运用NTP。

首先, 需要将相应的客户端设备配置于带有GPS时钟的NTP服务器, 保证客户端设备可以运行于标准的系统平台中, 比如windows、linux等平台, 网络时间协议都可以得到实现。如果系统平台不是标准的, 那么客户端的网络时间协议功能就需要厂家来实现。在变电站自动化的设备中, 可以在每一座变电站里都设置一台NTP服务器, 将GPS作为标准时间, 只有这样, 方可以达到网络时间协议所要求的性能指标。可以使变电站内部的其他自动化设备或者其他计算机同步于这个带有GPS作参考时钟的NTP服务器。要想让网络时间协议更加的可靠, 那么就可以同时设置两三台这种装置的NTP服务器。那么, 在这种情况下, NTP同步的那台NTP服务器就会是有着最好性能和最高时间同步精准度的那台。如果变电站计算机是标准的系统平台, 那么在这个系统平台中应用网络时间协议最重要的就是系统的后台程序。这个后台程序的优势就是可以在客户和服务器中同时运用。

目前, 一般将RTOS系统运用于变电站自动化设备中, 它可以在确定或者指定的时间内及时响应同步或异步的时间。通过相关的研究表明, RTOS系统中的QNX系统已经可以达到网络时间协议的实现。在变电站自动化装置中, 为了延长对时的间隔, 在客户端方面, 可以选用具有较高精度的晶体振荡器, 这样就可以有效的提高时间同步的精准度。

4 结束语

众所周知, 各类时间记录装置在电力系统运行中占据着十分重要的位置, 可以有效的记录自动化设备的事件顺序, 分析各种电力系统故障。通过上文的叙述我们可以发现, 将NTP对时应用于变电站自动化系统中, 是可行的, 具有较大的优势。它可以有效的简化系统结构, 如果在服务器和客户端之间应用的交换机如果有着较好的延时性能, 就可以有效的提高对时性能。本文简要概述了网络时间协议, 然后分析了NTP在电力自动化设备时钟同步中的应用, 希望可以提供一些有价值的参考意见。

摘要:随着时代的发展和社会经济的进步, 我国电力事业发展迅速, 电网的规模和自动化程度越来越高, 但是故障发生的频率也在不断的升高。而各类时间记录装置可以有效的分析电力系统故障中各个电力自动化设备动作, 要引起人们的重视。文章简要分析了NTP在电力自动化设备时钟同步中的应用, 希望可以提供些有价值的参考意见。

关键词:NTP,电力自动化,时钟同步

参考文献

[1]胡巨, 高新华.SNTP对时方式在数字化变电站中应用[J].电力自动化设备, 2009, 2 (3) :123-125.

[2]张鹏, 王少荣, 程时杰.电网状态监测系统GPS同步时钟的稳定性研究[J].继电器, 2004, 2 (23) :87-89.

[3]侯重远, 江汉红, 刘亮.面向交换式电力监测网的NTP同步精度提高方法[J].电力自动化设备, 2013, 2 (1) :32-33.

[4]黄小耘.NTP在电力自动化设备时钟同步中的应用探讨[J].电力系统自动化, 2005, 2 (15) :21-23.

应用意识,让信息技术与生活同步 篇9

【关键词】高中信息技术  应用意识  培养策略

在科技飞速发展的时代,信息技术也逐渐涉及到社会生活的各个方面,熟练地掌握信息技术,就要从基础上重视信息技术的学习,并且将应用意识的培养放在重要的位置。信息技术课堂可以让学生掌握基础的信息技术知识,只有将掌握的知识应用到生活中,才能适应社会,适应这个飞速发展的时代。

一、联系生活,应用意识的起点

教师注重对学生应用意识的培养,必须着眼于学生的生活实际,联系生活,拓宽学生的视野。培养学生的转化能力,将课本上掌握的知识转化为解决现实生活问题的实际能力,发展学生的应用意识。学生只有注重联系实际生活,将在信息技术课堂学到的知识运用的现实生活中,使得学生感受到知识的力量,让学生有一个较好的心态去学习、运用知识。

以粤教版高中《信息技术基础》第三章第三节“多媒体信息的加工与表达”为例,本节课学习的重点是PowerPoint软件的使用。教师可以让学生联系实际生活,以介绍家乡的某个景区为话题,引出本节课要讲解的软件。教师首先播放课前准备好的介绍某一景点的PPT,让学生从各个方面说一下感受,比如说艺术感受、表现形式等,引导学生主动学习新的教学内容。然后让学生尝试用这个软件从各个方面介绍自己的家乡景点,学生产生了新鲜感,对新软件的学习产生兴趣。PPT对于高中生来说并不陌生,让学生掌握制作精美PPT的技巧,介绍自己家乡的时候,教师可以讲解插入动画和超链接等技巧,不让学生单纯的将PPT制作理解为图画与文字的组合。联系实际生活,制作精美的PPT,培养学生的应用意识是非常有效的。在讲解完PPT制作之后,教师可以让学生联系现实生活哪些方面经常应用PPT,同学们家里父母如果有开店的,可以帮助父母设计产品的PPT,如生活用品和餐饮业可以设计精美的PPT,供顾客选择。

联系生活,使课堂丰富多彩,学生的应用能力提高。激发学生的学习兴趣,锻炼学生的反应思维。

二、情景设置,应用意识的桥梁

创设现实生活中的情景,转变传统信息技术教学模式,让学生轻松学习,增强学习兴趣,逐步增强应用意识。情景的创设要得当,根据学生的学习规律、教师的讲课风格、教材的编写特点等,创设适合学生的情景。只有适合教师和学生的教学情景才会对学生的学习起到积极的作用,培养学生应用能力。不合时宜的教学情景的创设,会增加知识的繁琐性,让学生感觉学习疲惫,产生厌倦情趣。

以粤教版高中《信息技术基础》第二章第二节“获取网络信息的策略与技巧”为例,本节课的教学重点是根据需求选择检索方法。现如今的高中生已经掌握了一些在网上查阅资料的方法,教师再利用本节课,让学生对以前掌握的知识进行总结升华,让学生逐步运用才是最关键的。通过本节课的学习,学生查找资料的速度和质量都有了进步。教师创设情景“那年、今日”,即同学们知道历史上的今天发生了哪些大事吗?同学们利用网络搜集信息,然后分小组检索,教师让每个小组选择不同的检索方法,使用不同的检索工具。让学生们在抢答比赛的过程中体会获取信息的策略与技巧,最后教师总结有哪些常用的搜索方法。教师再次创设情景,提出问题“同学们联系实际生活,思考常用的搜索引擎网站有哪些?”学生积极回答,百度、搜狐、新浪等,教师让同学回忆最近使用的搜索工以及查找过程,帮助学生将所学知识运用到实际生活中。

情景设置能够增强学生们的课堂参与感,让学生们在活动中学习知识,在学习知识的同时逐步培养应用意识。

三、结合实践,应用意识的升华

学校教育的起始点是把在课堂学到的知识应用于现实生活,并结合实践经验升华应用意识。传统教学中,很多学生是“死读书,读死书”,不能很好的理解所学的知识点,达不到家长与学校预期的效果。为了应对这种情况,教师在课堂教学中要注意结合实践进行教学,让学生们在学习中培养应用意识,然后以应用意识带动课堂知识点,实现举一反三。

以粤教版高中《信息技术基础》第二章第三节“信息的鉴别与评价”为例,信息爆炸的时代,人们每天会获取海量信息,如何辨别这些信息的真假,将是教师课堂教学的重点。在课堂教学之前,教师可以寻找一些现实生活中的例子,比如网络中的高薪招聘信息,这类信息的特点是待遇高,并且适应大部分人群,由此导致一些着急应聘工作的人不断上当受骗,但是到了求职地之后才发现上当了,不仅“破财”,严重的甚至会有生命危险。这类新闻层出不穷,主要原因是人们缺乏辨别能力,导致上当受骗。所以,在高中信息技术课堂中加强学生辨别信息的能力是非常有必要的,这关系到学生们自身的安全。

素质教育不断深入,对学校教育不断提出新的要求,教学课堂不再是灌输课堂,教师在课堂教学中不断让学生们从生活实践的层面去理解知识点,逐步培养学生们的应用意识。尤其是信息技术这门比较注重实践的学科,只有这样,才能达到课堂教学与生活同步。

【参考文献】

[1] 余佩. 高中信息技术课堂教学有效性及策略研究[J]. 华中师范大学,2013 (04).

[2] 亓振红. 信息技术教学中“激趣导学、合作学习”教学模式的构建与应用[J]. 山东师范大学,2014(10).

自动同步技术 篇10

高性能并行计算是现代科学研究、工程技术开发和大规模数据处理的关键技术,而并行编译系统是并行计算机系统软件中十分重要的一部分,提高并行编译技术对充分利用并行机资源和提高并行机效率起着十分重要的作用。

并行编译器包括前端处理和后端处理两部分:前端处理主要包括逻辑上的并行识别、计算和数据划分、依赖关系识别;后端处理主要是并行代码的自动生成,代码生成的关键在于如何高效地生成同步通信代码。

并行程序中的通信主要由四部分组成:数据初始分布通信、计算前的数据准备通信、计算过程中的同步通信以及数据收集通信。初始数据分布通信是在进行数据的初始分布过程中引起的通信。由于初始分布中数据划分和计算划分不能做到完全对齐所引起的通信称之为数据准备通信。同步通信是在进行并行计算过程中产生的通信。数据收集通信是所有进程计算结束后,主进程把所有进程的计算结果收集起来得到程序的最终执行结果时所引起的通信。本文重点讨论计算中的同步通信问题。

在文献[1]中对代码生成和通信优化做了介绍,但对具体如何实现没有讨论,本文则提出利用命名的线性不等式系统来表示数组数据空间、循环迭代空间、虚拟处理器空间和物理处理器空间,并建立了它们之间的内联关系,在此基础上给出了同步通信代码的自动生成算法。

1 计算划分

在分布式存储的大型计算机中,循环级的并行性一般是通过对循环嵌套迭代空间进行计算划分并将循环迭代分布到多个进程同时执行来实现的。下面给出与计算划分相关的定义。

定义1 迭代空间 迭代空间I表示一个循环边界是循环索引的线性函数且深度为m的循环嵌套,该空间是一个m维多面体。循环嵌套的每个迭代对应多面体中的一个整数点,即一次计算操作,用索引向量undefined表示。

定义2 处理器空间P 处理器空间P表示一个n维的处理器数组。

定义3 计算划分[4]C 计算划分undefined是满足特定关系的迭代和处理器对undefined的集合,处理器undefined执行迭代undefined当且仅当undefined。其中U是一个扩展的幺模矩阵,undefined是整数向量,B是整数矩阵,undefined是符号向量,undefined。

在计算划分C中,U指示计算划分是对迭代空间的哪些维进行划分以及是正分还是斜分;undefined给出分块的大小;undefined是偏移的大小。计算划分在代码生成的前一遍自动生成。

2 读写依赖关系与LWT树

计算中的同步通信由读写依赖关系和计算划分共同确定,对依赖关系有如下定义。

定义4[5] 嵌套循环L中的语句T的一个实例T(j)和语句S的一个实例S(i),如果存在一个存储单元M满足下述条件,则称语句T的实例T(j)依赖于语句S的实例S(i):

(1) S(i)和T(j)都引用(读或写)M;

(2) 在程序串行执行时,S(i)在T(j)之前执行;

(3)在程序串行执行时,从S(i)执行结束到T(j)开始执行前,没有其他实例对M进行写操作。

一对语句实例可以用4种不同的方式引用相同的存储单元,因此有4种类型的依赖关系:

① 如果S(i)写M而T(j)读M,则T(j)流依赖于S(i);

② 如果S(i)读M而T(j)写M,则T(j)反依赖于S(i);

③ 如果S(i)写M而T(j)也写M,则T(j)输出依赖于S(i);

④ 如果S(i)读M而T(j)也读M,则T(j)输入依赖于S(i)。

在这4种依赖关系中,④不会影响程序的并行化,不会引起通信,②和③的依赖关系是可以消除的,也不会引起通信,只有①需要通信,本文中的同步通信即指由流依赖所引起的通信。

在进行依赖关系分析时,用LWT树来表示数据之间的读写关系,每对读写对对应一棵LWT树。LWT树是一棵二叉树,表示精确的数据流信息,是描述从读操作实例到提供该读操作所读数据的最后一次写操作实例的映射关系。若读、写分别用循环索引undefined和undefined表示,则该函数的定义域是所有满足循环边界限制的undefined的集合。LWT树包括根节点、叶节点和内节点,内节点是对读undefined进一步的限制,叶节点又分为⊥节点和非⊥节点,表示了不同的依赖关系。

LWT[3]树把循环嵌套划分为以其每个叶节点的内容(contexts)ι为元素的集合,undefined。如果一个contextι∈I中迭代所读的值是在循环中产生的,则存在最后写关系undefined,且读迭代undefined所读值在写迭代undefined中产生},其中undefined和undefined是线性函数。

对给定的读迭代,从LWT知道一个写迭代undefined修改了undefined所读的数据且undefined是修改该数据的最后一个写操作,因此可以定义一个写迭代和读迭代之间的函数来表示undefined到undefined之间的关系,记为L,这样就可以通过LWT计算出两次引用之间的数据流依赖向量。

定义5 最后写关系LasarLasar是从读数组访问undefined和读迭代undefined到写数组访问undefined和写迭代undefined的映射,undefined当且仅当undefined;undefined;undefined;undefined且undefined使得undefined;undefined;undefined,其中undefined和undefined是读写访问函数。

由定义5知道,如果写迭代undefined和读迭代undefined都访问同一数组元素undefined之前执行,而且在undefined之间不存在其他迭代修改数组元素undefined则undefined之间存在最后写关系。

通过建立LWT树的方法可以将依赖关系精确到具体数值,这就为各进程之间的通信提供了关键依据。依赖关系分析是在代码生成的前一遍自动生成的。

3计算代码和计算中同步通信代码的自动生成

在并行程序代码自动生成中将涉及到多个多维整数空间,包括数组数据空间、循环迭代空间、虚拟处理器空间和物理处理器空间等。定义1和定义2分别给出了循环迭代空间和处理器空间的定义,下面给出数据空间的定义:

定义6 一个m维的数组A[n0][n1]…[nm-1],li≤ni≤ui,0≤i≤m-1,定义了一个m维的数据空间,该空间每一维的上下界即是数组每一维的上下界li和ui。

用命名的符号系数不等式系统统一表示这些空间,该不等式系统由多个不等式组成,每个不等式表示一种变量之间的关系,每个变量表示的即是空间的某一维。变量的所有可能的整数解的集合用n维离散的笛卡尔空间表示(n是变量数),所有满足该不等式系统的解都与笛卡尔空间中的一个整数点相对应。

计算代码和同步通信代码的自动生成过程分三部分:生成数据的接收和解包代码、生成计算代码、生成数据打包和发送代码。自动代码生成的关键是在程序的什么地方插入何种方式的通信代码?首先判断是否需要进行同步通信,如果LWT树中读的数据不在当前进程则需要通信,且利用计算划分来确定应该与哪个进程进行通信。

定理1 计算划分C满足最后写关系μ的通信集是undefined的集合,其中,undefined。

定理1所处理的是LWT树中的非⊥节点,根据LWT提供的读写依赖关系和读写变量所在

迭代的取值范围以及计算划分来判断两个迭代之间是否需要进行通信,见图1[1]。从图中可以看出,读/写迭代通过计算划分C分布到不同的进程pr和ps,两者之间通过LWT树联系在一起,若undefined则需要通信。

对于每一个物理进程mypid,通过以下算法判断是否需要发送数据给其他进程。

算法输入:计算划分C、依赖关系LWT、处理器空间P、迭代空间I

算法输出:并行同步通信代码和计算代码

算法描述:

(1) 建立虚拟拓扑结构把当前进程的标识mypid转换为多维坐标表示的pids;

(2) 通过计算划分和循环迭代范围得到参与计算的进程范围Pe;

(3) 如果pids∉Pe则不需要通信,否则;

(4) 根据计算划分C得到pids的迭代范围is;

(5) 根据LWT树中非⊥节点提供的读写依赖关系信息得到与is对应的ir;

(6) 依据ir和计算划分C得到ir所在的进程pidr;

(7) 比较pidr和pids是否是同一进程,如果二者相同则不需要同步通信,否则;

(8) 产生同步发送代码:打包数据并发送给pidr。

相应的,进程也需要判断是否需要接收其他进程发送来的数据:

(9) 通过建立的虚拟拓扑结构把当前进程的标识mypid转换为多维坐标表示的pidr;

(10) 通过计算划分和循环迭代范围得到参与计算的进程范围Pe;

(11) 如果pidr∉Pe则不需要通信,否则;

(12) 根据计算划分C得到pidr的迭代范围ir;

(13) 根据LWT树中非⊥节点提供的读写依赖关系信息计算出ir对应的is;

(14) 依据is和计算划分C得到is所在的进程pids;

(15) 比较pidr和pids是否是同一进程,如果二者相同则不需要同步通信,否则;

(16) 产生同步接收代码:接收pids发送来的数据并解包数据。

最后生成计算代码,根据上一遍提供的计算划分C和循环迭代I的边界信息计算出执行计算的进程范围,再依据分块执行的原理把计算分布到各进程执行。

4 实例分析

以下例来说明上面的算法:

例1 for(i=0;i<=N-1;i++)

for(j=i;j<=N-1;j++)

for(k=N-1;k>=i;k--)

a[j][k][i]=a[j][k][i]+a[i][k][j]*a[j][i][k]/a[i][j][k];

该例计算划分C:pid0=-k,pid1=i;迭代空间I:0≤i≤N-1;i≤j≤N-1;i≤k≤N-1,LWT树见图2。从图中可以知道数组引用a[j][k][i]和a[i][j][k]之间存在读写依赖关系,其依赖关系为:ks=-jr;js=ir;is=kr。

设N=4,则由计算划分C和迭代空间I可以计算出虚拟处理器空间P为-3≤pid0≤0,0≤pid1≤3。在生成同步通信代码时,首先判断是否需要进行通信,如果需要通信则产生同步通信代码。以pidr0=-2,pidr1=1为例来说明,根据计算划分C知道ir=1;kr=2;ir≤jr≤3,进而根据LWT树提供的读写依赖关系得到is=2;js=1;-3≤ks≤-1。得到写迭代之后,再根据计算划分C就可以找到该写迭代所在的进程为-3≤pids0≤-1,pids1=2。最后比较pids和pidr是否是同一进程,不是则产生两个进程之间的同步通信代码。此例pidr≠pids,则两个进程之间需要通信,进程pids产生同步发送代码,进程pidr产生同步接收代码。

5 总结与展望

本文主要讨论串行程序并行化中涉及到的计算代码和计算中同步通信代码的自动生成。文中所介绍的算法已在SUIF编译架构上实现,并利用ppopp benchmark程序集进行了验证,实验结果表明该算法能够正确生成计算代码和同步通信代码,但在该算法中未对同步通信的优化进行处理。下一步将主要研究计算中同步通信的优化问题,如多维并行条件下的计算和通信的重叠等。

摘要:简要介绍了并行编译中的计算划分和依赖关系分析,提出如何利用计算划分和依赖关系自动生成并行程序中的计算代码和同步通信代码。

关键词:计算划分,依赖关系,最后写树,同步通信

参考文献

[1]Amarasinghe S P,Lam M S.Communication optimization and CodeGeneration for distributed memory machines.In the Proceedings of TheACMSIGPLAN′93 Conference on Programming Language Design andImplementation,Albuquerque,New Mexico,June,1993:126-138.

[2]Ferner G S.The Paraguin compiler Message-passing code generation u-sing SUIF.In the Proceedings of the IEEE SoutheastCon 2002,Colum-bia,SC,April 5-7,2002:1-6.

[3]Maydan D E,Amarasinghe S P,LamMS.Array data-_flowanalysis andits use in array privatization.In the Proceedings of ACMSIGP-LAN-SI-GACTSymposium on Principles of Programming Languages.Charles-ton,South Carolina,January 10-13,1993:2-15.

[4]Anderson J M,Lam M S.Global Optimizations for Parallelism and Lo-cality on Scalable Parallel Machines.In Proceedings of the SIGPLAN′93 Conference on Program Language Design and Implementation,June1993.

上一篇:噪声的危害及防治意义下一篇:抗震安全