题 估计Linux中的FLOPS?


我正在寻找一个快速简便的程序来估算我的Linux系统上的FLOPS。我发现 HPL但是编译得到证明是令人恼火的。我所需要的只是对FLOPS的估计,无需花费一天时间研究基准测试包并安装相关软件。有这样的程序吗?编写一个在循环中乘以两个浮点数的C程序是否足够?


13
2017-11-25 21:37






答案:


问题是你的意思是什么?如果您关心的是每个时钟有多少最简单的浮点运算,它可能是您时钟速度的3倍,但这与bogomips一样毫无意义。一些浮点运算需要很长时间(除法,对于启动者),加法和乘法通常很快(每个时钟每fp单位一个)。下一个问题是内存性能,有一个原因,最后一个经典CRAY有31个内存库,最终CPU性能受限于你可以读取和写入内存的速度,那么你的问题适合什么级别的缓存? Linpack曾经是一个真正的基准测试,现在它适用于缓存(L2,如果不是L1),更像是一个纯粹的理论CPU基准测试。当然,您的SSE(etc)单元也可以添加浮点性能。

你用什么发行版?

这看起来像一个很好的指针: http://linuxtoolkit.blogspot.com/2009/04/intel-optimized-linpack-benchmark-for.html

http://onemansjourneyintolinux.blogspot.com/2008/12/show-us-yer-flops.html

http://www.phoronix-test-suite.com/ 可能是安装flops基准测试的一种更简单的方法。

我仍然想知道你为什么关心,你在用它做什么?如果你只想要一个没有意义的数字,你的系统bogomips仍然在dmesg中。


5
2017-11-25 22:14



Phoronix似乎正是我想要的 - 谢谢!我想要这个的唯一原因是因为我正在填写一份调查,询问我有多少teraflops的计算能力。调查并不是非常重要,所以我并不关心答案的准确性。尽管如此,能够说“我们的集群可以做X teraflops”会很简洁。虽然正如你所指出的那样,这个数字并不一定具有很多现实意义。 - molecularbear


显然有一个“sysbench”基准测试包和命令:

sudo apt-get install sysbench (要么 brew install sysbench OS X)

像这样运行:

sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run

比较输出:

 total time:                          15.3047s

参考: http://www.midwesternmac.com/blogs/jeff-geerling/2013-vps-benchmarks-linode


6
2018-03-14 16:25



这如何给FLOPS? - Martin Thoma
看起来它更像是一个通用的“cpu基准”,另见 bnikolic.co.uk/blog/hpc-howto-measure-flops.html - rogerdpack


对于球场估计:

Linpack性能

  1. 下载它 (链接
  2. 提取它
  3. cd benchmarks_2017/linux/mkl/benchmarks/linpack
  4. ./runme_xeon64
  5. 等待一段时间(超过1小时)

在Thinkpad T460p上(英特尔i7-6700HQ CPU), 它给:

This is a SAMPLE run script for SMP LINPACK. Change it to reflect
the correct number of CPUs/threads, problem input files, etc..
./runme_xeon64: 33: [: -gt: unexpected operator
Mi 21. Dez 11:50:29 CET 2016
Intel(R) Optimized LINPACK Benchmark data

Current date/time: Wed Dec 21 11:50:29 2016

CPU frequency:    3.491 GHz
Number of CPUs: 1
Number of cores: 4
Number of threads: 4

Parameters are set to:

Number of tests: 15
Number of equations to solve (problem size) : 1000  2000  5000  10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000
Leading dimension of array                  : 1000  2000  5008  10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000
Number of trials to run                     : 4     2     2     2     2     2     2     2     2     2     1     1     1     1     1    
Data alignment value (in Kbytes)            : 4     4     4     4     4     4     4     4     4     4     4     1     1     1     1    

Maximum memory requested that can be used=9800701024, at the size=35000

=================== Timing linear equation system solver ===================

Size   LDA    Align. Time(s)    GFlops   Residual     Residual(norm) Check
1000   1000   4      0.014      46.5838  1.165068e-12 3.973181e-02   pass
1000   1000   4      0.010      64.7319  1.165068e-12 3.973181e-02   pass
1000   1000   4      0.009      77.3583  1.165068e-12 3.973181e-02   pass
1000   1000   4      0.010      67.0096  1.165068e-12 3.973181e-02   pass
2000   2000   4      0.064      83.6177  5.001027e-12 4.350281e-02   pass
2000   2000   4      0.063      84.5568  5.001027e-12 4.350281e-02   pass
5000   5008   4      0.709      117.6800 2.474679e-11 3.450740e-02   pass
5000   5008   4      0.699      119.2350 2.474679e-11 3.450740e-02   pass
10000  10000  4      4.895      136.2439 9.069137e-11 3.197870e-02   pass
10000  10000  4      4.904      135.9888 9.069137e-11 3.197870e-02   pass
15000  15000  4      17.260     130.3870 2.052533e-10 3.232773e-02   pass
15000  15000  4      18.159     123.9303 2.052533e-10 3.232773e-02   pass
18000  18008  4      31.091     125.0738 2.611497e-10 2.859910e-02   pass
18000  18008  4      31.869     122.0215 2.611497e-10 2.859910e-02   pass
20000  20016  4      44.877     118.8622 3.442628e-10 3.047480e-02   pass
20000  20016  4      44.646     119.4762 3.442628e-10 3.047480e-02   pass
22000  22008  4      57.918     122.5811 4.714135e-10 3.452918e-02   pass
22000  22008  4      57.171     124.1816 4.714135e-10 3.452918e-02   pass
25000  25000  4      86.259     120.7747 5.797896e-10 3.297056e-02   pass
25000  25000  4      83.721     124.4356 5.797896e-10 3.297056e-02   pass
26000  26000  4      97.420     120.2906 5.615238e-10 2.952660e-02   pass
26000  26000  4      96.061     121.9924 5.615238e-10 2.952660e-02   pass
27000  27000  4      109.479    119.8722 5.956148e-10 2.904520e-02   pass
30000  30000  1      315.697    57.0225  8.015488e-10 3.159714e-02   pass
35000  35000  1      2421.281   11.8061  1.161127e-09 3.370575e-02   pass

Performance Summary (GFlops)

Size   LDA    Align.  Average  Maximal
1000   1000   4       63.9209  77.3583 
2000   2000   4       84.0872  84.5568 
5000   5008   4       118.4575 119.2350
10000  10000  4       136.1164 136.2439
15000  15000  4       127.1586 130.3870
18000  18008  4       123.5477 125.0738
20000  20016  4       119.1692 119.4762
22000  22008  4       123.3813 124.1816
25000  25000  4       122.6052 124.4356
26000  26000  4       121.1415 121.9924
27000  27000  4       119.8722 119.8722
30000  30000  1       57.0225  57.0225 
35000  35000  1       11.8061  11.8061 

Residual checks PASSED

End of tests

Done: Mi 21. Dez 12:58:23 CET 2016

3
2017-12-21 11:11





传统上用于测量FLOPS的一个基准是Linpack。另一个常见的FLOPS基准是Whetstone。

更多阅读: 维基百科“FLOPS”条目油石入口Linpack入门


1
2017-11-25 22:00



我很感激你的回答,但是我的目标是快速获得失败的估计。 Whetstone和Linpack与HPL有同样的问题 - 我开始阅读它,然后在现场看起来已经20年之后丢失了。当我设法找到源代码时,我似乎无法编译它而不安装一堆依赖库 - 即使这样我也会遇到错误。我可以把所有这些东西都搞定,但是花时间不够重要。希望存在一些相对现代的软件,Just Works for ballparking flops。 - molecularbear
估计?然后它大约是4 * Hz:对于1GHz CPU,它大约是4GFLOPS :)) - kolypto


我强烈推荐英特尔准备运行的linpack版本: http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download/


1
2017-10-26 15:34





当你提到集群时,我们已经使用了 HPCC套件。设置和调整需要花费一些精力,但在我们的例子中,这一点并非吹牛本身,它是集群验收标准的一部分;一些性能基准测试是IMHO至关重要的,以确保硬件像广告一样工作,一切都正确地连接在一起等。

现在,如果你只想要一个理论上的峰值FLOPS数,那么这个很容易。只需查看一些关于CPU的文章(例如,在realworldtech.com或其他一些文章中),以获取每个时钟周期CPU核心可以执行多少DP FLOPS的信息(当前x86 CPU通常为4)。然后总峰值FLOPS就是

核心数* FLOPS /周期*频率

然后对于具有IB网络的群集,您应该能够在HPL上达到峰值FLOPS的大约80%(BTW是HPCC中的基准之一)。


1
2017-10-26 16:45