张晓梅2011.7.4~2011.7.7第十五届全国科学计算与信息化会_第1页
张晓梅2011.7.4~2011.7.7第十五届全国科学计算与信息化会_第2页
张晓梅2011.7.4~2011.7.7第十五届全国科学计算与信息化会_第3页
张晓梅2011.7.4~2011.7.7第十五届全国科学计算与信息化会_第4页
张晓梅2011.7.4~2011.7.7第十五届全国科学计算与信息化会_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、张晓梅2011.7.42011.7.7第十五届全国科学计算与信息化会议暨高能物理核物理信息化论坛BESIII离线物理软件在64位升级中的若干问题内容BESIII离线物理软件64位机的三种工作模式BESIII离线软件的升级过程及遇到的主要问题升级前后的软件性能比较总结BESIII实验北京谱仪(BESIII)是北京正负电子对撞机(BEPCII) 上的大型通用谱仪它主要用于粲能区的物理研究如弱电相互作用研究,强相互作用和新物理的寻找等BESIII离线软件(BOSS, BESIII Offline Software System)的主要任务是将BESIII探测器和模拟产生的原始数据进行处理,生成物理分

2、析使用的DST数据,同时提供物理分析所需的工具BESIII离线物理软件是BESIII物理分析的前提和关键它的精度和性能决定着物理分析的结果和进程 30+ External Library(ROOT.) GAUDI BOSS CMT 几何DB 刻度DBAnaRecCalGenSimBESIII离线软件(BOSS)大型的高能物理软件系统 基于高能物理软件通用框架Gaudi,采用CMT配置管理工具包含了sim, rec, ana, cal等数据处理模块使用了30多个外部库采用mysql, sqlite等数据库进行刻度和几何参数的读取对于大型的物理软件来说,64位升级具有相当的难度系统庞大且算法,外部

3、支持软件系统复杂精度要求高,测试和检查过程细致繁杂64位升级的意义和必要性64位机已经是计算机发展的趋势高能物理实验的主流机型早已是x86-6464位系统具有巨大的内存优势32位寻址(2324GB), 64位寻址(26416EB)计算中心Lustre服务在64位上成功解决死机问题升级到64位后将显著提升软件性能许多知名的高能物理软件移植后取得了很好的性能提升ROOT升级后得到40%的性能提升, Pythia 21%的性能提升对BESIII数据处理已经势在必行系统软件,物理外部软件已经逐渐不再支持32位32位的内存瓶颈日益凸显,高性能系统只能运行在64位 CERN farm已与2007年升至64

4、位,意味着支持的高能物理软件库-64位64位机的三种工作模式传统模式(Legacy mode)32位应用程序运行在32位操作系统64位CPU可以当成32位CPU使用升级前IHEPCC farm工作结点的主要工作模式传统模式兼容模式(Compatibility mode)32位应用程序运行在64位操作系统32位应用程序无需重新编译就可以运行在该模式兼容模式是传统模式与完全模式之间的过渡模式完全模式(Native mode)64位应用程序运行在64位操作系统升级的目标模式,可充分发挥64位处理器的优势,包括内存和性能优势第一阶段:传统模式 兼容模式(Compatibility mode)主要提供3

5、2位BESIII离线软件较长的过渡时间同时不耽误系统升级64位,突破内存瓶颈CERN实验在兼容模式上已有较长的时间(三年)第二阶段:兼容模式完全模式(Native mode)最终完成所有32位程序升级到64位需要对32位程序做出调整和修改,重新编译出现问题较多,升级时间长BESIII离线软件的64位升级BESIII离线软件的64位升级的五个步骤以问题为导向,循环递进无现成规律可循测试尽可能全面,尽量发现问题分为五个步骤:建立运行环境编译BOSSRun-time检查大规模压力测试检查物理结果检查性能评估和优化内存和速率 运行环境操作系统编译工具硬件共享库和boss.exe外部库BOSSRun-t

6、ime物理结果性能编译检查优化执行升级过程的主要问题编译错误程序异常结果差异内存膨胀编译错误编译选项的改变“m32” - 兼容模式下GCC提供的32位应用程序的编译和链接选项“fPIC” - 64位要求共享库编译成”Position Independent Code”由于各种库编译模式不同,容易产生遗漏编译规则的改变64位GCC比较32位GCC在编译规则更为严谨特别表现在变量和函数声明、类型转化的情况Eg. “ some coding assumptions are not valid any more”外库的改变:外库的升级引起库的位置,函数的改变 CMT的升级造成policy的变化程序异常

7、(一)Segment fault, 程序不正常执行和结束LP32到LP64的变化Long, pointer类型长度从32位变为64位Eg. std:string:npos=unsigned long, unsigned int,当值为-1,可能导致判断语句改变方向LP32LP64char88int4*84*8long4*88*8pointer4*88*8double8*88*8long double12*816*8程序异常(二)数组和指针越界导致segment fault 典型原因:程序对特殊的事例未作足够的保护,产生不合理数值,使得指针指向不合理内存位置;数组没有做正确的定义,造成使用时越界

8、值得注意是这些问题在32位模式下没有发生程序异常,内存分配方式不同?Gaudi升级基础函数的使用发生变化Eg. 不能获得正确的服务指针,不能正常释放组件对象结果差异(一)在两个阶段升级的物理检查中,都看到了差异有些差异是错误引起的,可以避免有些差异却是32位和64位系统本身的差异带来的精度变化,不可避免统计差异和数值差异统计差异是不允许的,这种差异可能导致物理结果的不一致数值差异需要尽量避免传统模式到兼容模式的升级阶段理论上是物理结果可以保证无差异错误引起的统计差异:变量未做初始化,函数的返回值没有正确设定数值差异:模拟的基础软件Geant4产生的差异随着Geant4不断完善,差异将被消除结果

9、差异(二)兼容模式到完全模式的升级阶段LP32-LP64的变化引起的错误产生的差异Eg. Geant4随机数产生函数产生的整数计算结果变化,原因是其中的long变量没有正确使用浮点计算模式和ABI的变化使得浮点计算的精度发生改变,不可避免由于浮点计算位数有限,中间寄存器的位数或者计算顺序的变化的细微差别,可能造成浮点计算结果的变化32位采用x87指令集,64位采用SSE指令集内存膨胀RSS(MB)simusimu-recoreal-reco64-bit605.8534.8456.032-bit384.7388.2320.9comparison57.5%37.8%42.1%64位BOSS与32位

10、BOSS的内存比较:64位BOSS的内存使用要比32位BOSS增长一倍32位中不明显内存泄露在64位被放大主要原因:LP32到LP64的转换,使得数据类型(long, pointer, size_t)占用空间增大数据结构,共享库进行对齐和填充的空间增大对堆内的对象管理所用的空间增加优化BESIII离线软件内存使用和尽量减少内存泄露在64位上更显重要性能比较模拟,重建和分析过程对于真实和模拟数据的事例处理率(Event/s)传统模式和兼容模式:没有差异传统模式和完全模式模拟提高了13%,重建和分析提高了50%主要得益于64位更好的体系结构:更多更大的寄存器优势,内存优势,更为高效的函数调用机制,fPIC效率等Application (sec/event)simusimu-recoreal-recosimu-anareal-ana64-bit0.9454660.2149660.1225020.0088060.00107432-bit1.0915180.4310050.2457150.0170340.002753improvement13% 50% 50%48%61%总结BESIII离线物理软件已经成功升级到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论