ZT - 怎样提高调用数学函数的程序的性能(7)
声明 获得的精确性可能会随着使用处理器的模型及其配置而发生变化,同时依赖的因素还有所用汇编器的版本。因此,在不同的操作条件下您将获得不同的使用经验 。 参考资料 学习 IBM Mathematical Acceleration Subsystem:提供 MASS 库的内容、使用方法、性能以及精确性信息。 IBM XL C/C++ for AIX User's Guide:提供有关编译器标签的更多详细信息。 IBM XL C/C++ for AIX Optimization and Programming Guide:提供更多有关高性能库的详细信息。 IBM XL Fortran for AIX User's Guide:提供有关编译器标签的更多详细信
ZT - 怎样提高调用数学函数的程序的性能(6)
附录 3 – 驱动器程序 下面是一个用于计时 DFT 代码的 Fortran 驱动器程序。 program main interface subroutine dft(x,a,phi,n) real*8 x(n),a(n),phi(n) integer n end subroutine subroutine init(a,n) real*8 a(n) integer n end subroutine subroutine consume(a,b,c) real*8 a(*),b(*),c(*) end subroutine end interface ! Parameters: ! nmax is the problem size. ! nrep is the number of repetitio
ZT - 怎样提高调用数学函数的程序的性能(5)
附录 2 – C DFT 源程序 #include <math.h> #define PI 3.1415926535897932384 void dft(double x[],double a[],double phi[],int *m) { double y_re[NMAX], y_im[NMAX], t, s, term_re, term_im; int i,j,k,n=*m; for(i=0;i<n;++i) { y_re[i]=y_im[i]=0; } for(k=0;k<n;++k) { // compute y(k), k-th DFT output for(i=0;i<n;++i) { // compute i-th term of y(k): // x(k)*exp(-2*pi*I*(k-1)*(i-1)/n) // compute real and imaginary parts of
ZT - 怎样提高调用数学函数的程序的性能(3)
自动向量化的汇编器选项您可以使用以下的几个选项来汇编程序:-qhot -qnostrict (for Fortran)-qhot -qnostrict –qignerrno (for C/C++)-qhot -O3-O4-O5[@more@]自动向量化的汇编器选项 您可以使用以下的几个选项来汇编程序: -qhot -qnostrict (for Fortran) -qhot -qnostrict –qignerrno (for C/C++) -qhot -O3 -O4 -O5 当您在使用这些选项集中的一个时,通过调用等价 MASS 向量函数(除了对以下函数的访问除外:vatan2、vsatan2、 vdnint、 vdint、 vcosisin、vscosisin、vqdrt、vsqdrt、vrqdrt、vsrqdrt、vpopcnt4、
ZT - 怎样提高调用数学函数的程序的性能(4)
结论本文向您提供了对 IBM MASS 库以及 IBM XL C/C++ 和 XL Fortran 汇编器的自动向量化功能的描述。另外,本文演示了对范例程序(离散 Fourier 转变)使用各种汇编器选项的操作,向您展示了通过使用 MASS 自动向量化的自动调用功能,使得与以前版本相比速度提高了 8.94 倍的效果。[@more@]结论 本文向您提供了对 IBM MASS 库以及 IBM XL C/C++ 和 XL Fortran 汇编器的自动向量化功能的描述。另外,本文演示了对范例程序(离散 Fourier 转变)使用各种汇编器选项的操作,向您展示了通过使用 MASS 自动向量化的自动调用功能,使得与以
ZT - 怎样提高调用数学函数的程序的性能(2)
什么是自动化向量? 自动化向量技术是一种过程,在这个过程中 IBM XL C/C++ 或者 Fortran 汇编器会识别一个机会,去改善汇编过程中程序的性能,方法就是将对一次循环中一个标准库(C/C++ 库或者 Fortran 本质)的访问替换为对相应 MASS 向量函数的访问。因为 MASS 向量函数要比对一个标准库函数的重复访问快很多(倍数接近 30 倍),所以最后得到的性能改善效果将会是惊人的。 一个简单的例子就是为多个论断计算特定函数的循环,例如接下来的 Fortran 程序。 subroutine sub (y, x, n) real*8 y(*), x(*) integer
ZT - 怎样提高调用数学函数的程序的性能(1)
Robert F. Enenkel, 软件开发人员, IBM Robert Enenkel 工作于 IBM 多伦多实验室的 Optimizing Compiler Group,他之前是 IBM Centre for Advanced Studies (CAS) 的一名研究会员。Enenkel 拥有多伦多大学的学士、硕士和博士学位,其论文题目是不同等式的并行数字方法领域。他目前主要研究和开发与编译器和操作系统相关的数字计算,包括浮点算法,数学函数库,算法性能调优。Enenkel 博士得到了多个 IBM 发明成就奖和创造认可奖。更多的信息可以在他的 Web 主页 https://www-927.ibm.com/ibm/cas/toronto/people/members/r
ZT - RFT ScriptAssure 技术解析及应用实例(3)
ScriptAssure 技术应用实例下面让我们看看一些例子,看 IBM Rational 工具是如何发挥脚本的依赖性和独立性的优势,或者结合这两者来解决某些问题[@more@]ScriptAssure 技术应用实例 下面让我们看看一些例子,看 IBM Rational 工具是如何发挥脚本的依赖性和独立性的优势,或者结合这两者来解决某些问题。 这个示例很简单:打开浏览器,加载 Google 的搜索页面,点击搜索按钮(无需输入任何搜索内容)。我们会在中文界面下录制、回放这段脚本,分析结果以及其中 ScriptAssure 技术的介入;再看看在英文界面下回放时,又会出现什么样的
ZT - RFT ScriptAssure 技术解析及应用实例(4)
Script Assure 的一些使用小经验最后列出一些在实践中总结出的小经验,以供大家参考使用[@more@]Script Assure 的一些使用小经验 最后列出一些在实践中总结出的小经验,以供大家参考使用。 如果您希望脚本回放更快,回放过程中产生更少、或者基本没有警告,请设置更高的识别阈值。这样识别时会少些模糊匹配、但更容易产生识别错误。某些情况下这种方式可能是比较有效的。 如果识别时匹配得相当脆弱,请检查您的测试对象地图。是否是已获得的属性值发生变化?(例如,原来的“确定”字样变成现在的“确定。”,多了一个句号。)如
ZT - RFT ScriptAssure 技术解析及应用实例(2)
什么是 ScriptAssure ScriptAssure 目前为 IBM 的专有技术,通过对用户界面细节的识别阈值的定制,来实现了一种先进的查找最合理候选对象的匹配机制,使得脚本的维护工作不再囿于界面的频繁改动,变得更加轻松。稍后我们会通过一些实例来详细了解这项技术的精髓。 [@more@]ScriptAssure 技术降低了脚本独立性的实现成本“录制和回放”模式是脚本独立性的最常见的实现模型。不论你是否反感“录制和回放”,它在测试工具演化历史里都有它的一席之地。人们不喜欢它主要是因为随着使用时间的延长,脚本很难维护。这种缺陷也是其他独立性
ZT - RFT ScriptAssure 技术解析及应用实例(1)
章 国俊, 高级软件工程师, IBM 章国俊,高级软件工程师,拥有 7 年软件测试自动化相关经验。近年来一直致力于 IBM Quickr 产品的自动化测试改进、创新和团队培训工作。对测试技术、软件过程及软件质量控制有着浓厚的兴趣。业余时间喜欢阅读、桌游、旅行和美食,并有若干 IT 和非 IT 类的文章发表。 简介: 本文由自动化测试中的脚本独立性谈起,深入介绍 Rational Functional Tester(RFT)中所提供的高级特性 ScriptAssure,看它是如何均衡脚本的可靠性和可维护性。文中实例可以帮助读者实践不同模式下的回放过程,增加对
ZT - 使用 IBM Debugger for AIX 来提高开发效率(4)
总结IBM 调试器工具支持在一些平台上,在单个调试器用户界面中调试以多种不同编程语言写成的程序。除了基本的调试功能,例如设置行中断点,该工具提供了一些高级的特性,包括内存映射、远程重启以及多个中断类型。为了平衡这些属性之间的使用,您可以查看 IBM Debugger 文献,以得到关于这些特性以及其他特性的进一步详细解释。[@more@]总结 IBM 调试器工具支持在一些平台上,在单个调试器用户界面中调试以多种不同编程语言写成的程序。除了基本的调试功能,例如设置行中断点,该工具提供了一些高级的特性,包括内存映射、远程重启以及
ZT - 使用 IBM Debugger for AIX 来提高开发效率(3)
高级调试这部分将会讨论 IBM 调试器工具中可用的更多高级特性。它们可以支持更快的问题解决方法,并实现使用 IBM 调试器的主要优势。[@more@]高级调试 这部分将会讨论 IBM 调试器工具中可用的更多高级特性。它们可以支持更快的问题解决方法,并实现使用 IBM 调试器的主要优势。 中断点状况 有时有一段代码会得到多次的重复访问,有时甚重由不同的线程访问,但是如果达到某种特定的状况时,您只想停止其中的一段代码。此时就是中断点向导的状况页面大有用武之地的地方了。第二个,可选性页面(您可以从主页面中选择 Next 而不是 Fin
ZT - 使用 IBM Debugger for AIX 来提高开发效率(2)
启动一个调试过程根据调试信息来汇编程序为了在源代码的层次上调试您的程序,您需要根据特定的汇编器选项来汇编程序,这些选项会指导生成符号化的信息,并调试对象文件中的 hook。对于 IBM XL C/C++ 汇编器 Enterprise Edition for AIX,使用优化(-O0)而是用 -g 选项来进行汇编。[@more@]启动一个调试过程 根据调试信息来汇编程序 为了在源代码的层次上调试您的程序,您需要根据特定的汇编器选项来汇编程序,这些选项会指导生成符号化的信息,并调试对象文件中的 hook。对于 IBM XL C/C++ 汇编器 Enterprise Edition for AIX,使
ZT - 使用 IBM Debugger for AIX 来提高开发效率(1)
Sean Kennedy, 软件开发人员, IBM Sean Kennedy 开始工作时是为一个小规模的 ISV 使用 Fortran 和 C++ 编写结构化分析软件。Kennedy 于 2006 年加入 IBM® 公司,从事 XL C、C++ 和 Fortran 编译器的服务和支持工作,目前从事 IBM Rational® 的调试技术的开发工作。他是 IBM Power™ Systems 上 Rational Debugger for Native Code 的负责人。 Morris Kwan, 软件开发人员, IBM Morris Kwan 是 IBM® 多伦多研究室的一名软件开发人员。自从 1997 年加入 IBM 之后,Kwan 一直从事各种不同语言和平
ZT - UNIX 网络协议的深度分析(5)
结束语 对于通过您的 UNIX 网络的信息进行协议分析可能是一个复杂的过程。但是,通过使用一些简单而广泛使用的工具,您可以解码和检查您的流量的详细信息,包括来源和目标等基本信息,以及具体的协议和传输的数据。 如本文所述,通过使用诸如 tcpdump、snoop 或 iptrace 的工具,您可以在命令行上提取大量的数据。通过使用诸如 Wireshark 的工具,您可以更一地步地了解更大范围的协议和内容的更多详细信息。对于自定义的协议和结构,您可以使用 Perl 提取原始数据,并获得您需要的所有信息。 参考资料 学习 UNIX 网络分
ZT - UNIX 网络协议的深度分析(4)
使用一个协议分析器虽然,正如之前提到的,诸如 tcpdump、iptrace 和 snoop 等工具都提供了基本的网络分析和解码功能,但是还有一些基于 GUI 的工具使这个过程更简单。Wireshark 就是其中一个工具,它支持大量的网络协议解码和分析。[@more@]使用一个协议分析器 虽然,正如之前提到的,诸如 tcpdump、iptrace 和 snoop 等工具都提供了基本的网络分析和解码功能,但是还有一些基于 GUI 的工具使这个过程更简单。Wireshark 就是其中一个工具,它支持大量的网络协议解码和分析。 Wireshark 的最主要优点之一是您可以捕捉一段时间内的数据
ZT - UNIX 网络协议的深度分析(3)
解析原始数据以理解数据包内容处理来自 tcpdump 的另一个方法是将原始网络数据包数据保存到一个文件中,然后处理这个文件以便查找和解码出您想要的信息。[@more@]解析原始数据以理解数据包内容 处理来自 tcpdump 的另一个方法是将原始网络数据包数据保存到一个文件中,然后处理这个文件以便查找和解码出您想要的信息。 有许多使用不同语言编写的模块具有读取和解码 tcpdump 和 snoop 捕捉的数据的功能。例如,有两个用 Perl 编写的模块:Net::SnoopLog(针对 snoop)和 Net::TcpDumpLog(针对 tcpdump)。它们将读取原始数据内容。
ZT - UNIX 网络协议的深度分析(2)
基本的网络分析 本文之前提到的许多网络嗅探工具都提供了不同级别的协议解码,它们是通过检查端口和内容来确定所使用的协议实现的。[@more@]基本的网络分析 本文之前提到的许多网络嗅探工具都提供了不同级别的协议解码,它们是通过检查端口和内容来确定所使用的协议实现的。 例如,snoop 和 tcpdump 都提供了关于 UDP 和 TCP 上不同协议的不同级别的详细信息。例如,在 snoop 中,您可以获得从顶级协议到所传输的单个数据块的关于 NFS 操作的详细信息。例如,您可以通过指定监控 RPC 使用 NFS 协议来实现对 NFS 流量的监控:$ s
ZT - UNIX 网络协议的深度分析(1)
简介: 无论您是在监控您的网络以便发现性能问题、调试一个应用,还是在您的网络上发现一个您不认识的应用,有时您都需要对您的 UNIX® 网络中使用的协议进行深度分析,以便了解它们的作用。有一些协议很容易确定和理解,即使它们使用非标准端口。而另外一些协议则需要进行更多的观察以了解它们在做什么、在交换什么信息。在本文中,我们将介绍对 UNIX 网络中使用的协议进行深度分析的技术。[@more@]Martin Brown, 自由撰稿人 Martin Brown 成为职业撰稿人已有八年之久。他所撰写的众多书籍和文章涵盖了各种各样的主题。他擅长的领