反对使用 pystone 来估计跨多个系统的整体相对系统性能的论点是什么?
我正在启动一个分布式计算项目,有点像那里的各种@home项目(虽然不是进行简单的科学计算,而是偶尔让远程用户参与涉及音频和视觉刺激呈现的任务),并且我需要获得一个了解运行我的应用程序的机器之间的相对系统性能,这样我就可以排除来自非常低于标准的机器的数据(因为这些机器可能没有忠实地呈现刺激)。该应用程序是用 python 编写的,我看到 pystone 模块提供了某种基准,但我也看到 pystone 在某些情况下被贬低为基准。根据我对基准测试的相对新手的理解,pystone 可能不适合一般基准测试,因为它将性能压缩为单个分数,但对于我的目的来说,我想要的只是跨机器比较的单个分数,我认为它应该足够了。使用 pystone 获得相对整体系统性能是否有任何缺点?
I'm starting up a distributed computing project, somewhat like the various @home projects out there (though not doing simple scientific computing, but instead occasionally engaging the remote user in tasks involving presentation of audio and visual stimuli) and I need to get a sense of the relative system performance across machines that run my app so i can exclude data from machines that are very sub par (because these might not have presented the stimuli faithfully). The app is written in python, and I see that the pystone module provides a benchmark of sorts, but I also see that pystone has been disparaged as a benchmark in some cases. To my relatively novice understanding of benchmarking, pystone may not be good for general benchmarking because it collapses performance to a single score, but for my purposes where all I want is a single score to compare across machines, I think it should suffice. Are there any downsides I'm missing to using pystone for obtaining relative overall system performance?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Pystone 作为任何事物(无论是 Python 解释器版本还是底层硬件)的基准的一个大问题是,它根本没有对计算环境的不同方面进行足够的测试。
整数算术、浮点算术、向量运算、专用媒体硬件、内存吞吐量、I/O 吞吐量、缓存大小、线程架构、流水线架构……不同机器之间可能存在差异的硬件功能列表不胜枚举,并且是第一个问题回答“A和B哪个更快?”的最大原因通常会是“那么,你打算用它们做什么?”。速度问题的答案可能会有所不同,具体取决于您是构建家庭媒体中心、Web 服务器还是数据库服务器等。
现代计算机系统是复杂的野兽,解释器虚拟机的分层具有自己的特性顶部的复杂对象和执行模型并不会让事情变得更容易。像 Pystone 这样简单的基准测试可以让您大致了解 CPU 的基本计算能力,但不会告诉您有关机器的其他潜在限制因素的任何信息。
The big problem with Pystone as a benchmark of anything (whether it be Python interpreter versions or the underlying hardware) is that it simply doesn't exercise enough different aspects of the computing environment.
Integer arithmetic, floating point arithmetic, vector operations, dedicated media hardware, memory throughput, I/O throughput, cache sizes, threading architecture, pipelining architecture... the list of hardware features that can vary across machines goes on and on, and is the biggest reason why the first question in reply to "Which is faster, A or B?" will usually be "Well, what do you plan to use them for?". The answer to the speed question is likely to be different depending on whether you're building a home media centre or a web server or a database server, etc.
Modern computer systems are complex beasts, and the layering of interpreter virtual machines with their own complex object and execution models on top don't make things any easier. A naive benchmark like Pystone will let you get a general idea of the basic computing grunt of the CPU, but won't tell you anything about the other potentially limiting factors of the machine.