对于我现在正在做的一个项目,我需要查看不同并发启用编程语言的性能(以及其他方面)。
目前,我正在研究比较无堆栈蟒蛇和C++ PThreads,所以重点放在这两种语言上,但其他语言可能会在稍后进行测试。当然,比较必须尽可能具有代表性和准确性,所以我的第一个想法是开始寻找一些标准的并发/多线程基准问题,可惜我找不到任何像样或标准的测试/问题/基准。
因此,我的问题如下:您有一个好的、容易的或快速的问题来测试编程语言的性能(并暴露它在过程中的优缺点)吗?
发布于 2009-03-21 16:58:16
自2008年9月基准游戏移至四核机器以来,许多不同编程语言的程序都被重新编写,以利用四核例如,头10个mandelbrot项目。
发布于 2008-11-29 09:25:56
当然,您应该测试硬件和编译器,而不是用于并发性能的语言?
我会从这样的角度来看待一种语言:它在并发方面是多么的容易和高效,以及它在多大程度上使程序员免受锁定错误的影响。
编辑:根据过去作为研究人员设计并行算法的经验,我认为在大多数情况下,并发性能将主要取决于算法是如何并行的,以及算法如何针对底层硬件。
此外,基准也是众所周知的不平等;在并行环境中更是如此。例如,一个“运行”非常大的矩阵的基准将适合于向量流水线处理器,而并行排序可能更适合于更通用的多核CPU。
这些可能是有用的:
平行基准
NAS并行基准
发布于 2008-11-29 10:24:13
嗯,有一些经典,但不同的考试强调不同的特点。一些分布式系统可能更健壮,具有更高效的消息传递等。更高的消息开销可能会损害可伸缩性,因为扩展到更多机器的正常方法是发送更多的小消息。您可以尝试的一些经典问题是Eratosthenes的分布式筛子,或者实现不好的fibonacci序列计算器(即计算系列中的第8个数字,第7台机器的旋转,第6台的另一个)。几乎所有的分而治之算法都可以同时完成。你也可以同时实现康威的生命或热传递游戏。请注意,所有这些算法都有不同的关注点,因此您可能不会得到一个分布式系统在所有这些算法中都做得最好。
我认为最容易快速实现的是实现得不好的fibonacci计算器,尽管它过于强调创建线程,而忽略了这些线程之间的通信。
https://stackoverflow.com/questions/327379
复制相似问题