问题标签 [linpack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1152 浏览

performance-testing - 了解 linpack 输入配置

我已经阅读了文档,但是 2,3, 5 不清楚(我不知道 FORTRAN)。

第 2 行 - 是否要求创建 1000*1000、2000*2000 ... 5000*5000 矩阵?如果是,方程与创建矩阵有什么关系?如果否,该方程有多复杂?它像求解a = 1.2+2.2或其他一些复杂问题一样简单

第 3 行 - 它可能指的是子矩阵。但是创建子矩阵有什么意义呢?如果所有 LDA 值都等于相应的问题大小会发生什么

Line5-对齐值到底是什么?

0 投票
0 回答
34 浏览

r - LAPACK 的 `dtrcon` 底层算法

我目前正在尝试重构 R 的kappa条件数估计函数的一些函数,该函数通过以下方式估计矩阵 X 的条件数:

  • 计算 X 的 QR 分解。
  • 调用LAPACK'sdtrconLINPACK's dtrco(取决于用户系统的底层依赖项是什么),并计算 R 的条件数,上三角矩阵应该具有与 X 相同的条件数(参见此处)。

我一直在尝试了解LAPACKLINPACK算法的作用,因为它可能对我自己的编码非常有用。

我设法找到了LINPACK使用的算法,这在此处描述,但没有找到LAPACK's 算法的起源。R 函数中的注释kappa表明它们使用不同的算法(请参见此处),但我不确定...

长话短说,我的问题是:

有谁知道LAPACK'dtrconLINPACK'是否使用相同的算法,如果没有, '使用dtrco的是什么算法?LAPACKdtrcon

先感谢您!

0 投票
0 回答
183 浏览

benchmarking - 如何编辑 Make.Linux_intel64 以获得与英特尔® 优化 MP LINPACK 基准测试相同的性能

我的 KNL 平台基于 Intel(R) Xeon Phi(TM) CPU 7250 @ 1.40GHz,1 个节点,68 个内核,96GB 内存。我在 linpack 基准测试中有一些问题。

当我执行以下英特尔® 优化 MP LINPACK 基准测试时:/opt/intel/compilers_and_libraries_2018.5.274/linux/mkl/benchmarks/mp_linpack 我得到了大约 1700 gflops 的良好性能(N = 40k - 编译器:mpirun -np 1 ./xhpl )。

但是当我在 netlib hpl-2.3 上下载开源并安装它时,我的性能变得如此糟糕(大约 700gflops,具有相同的大小和编译器)。我认为我的问题是安装处理(编辑文件 Make.Linux_Intel64)。

大家,请帮我解决我的问题,或者如果您有任何想法以获得良好的性能,请指导我。

非常感谢。

0 投票
0 回答
24 浏览

c - 未定义的参考错误:编译 HPL 基准

我一直在尝试编译 HPL 基准测试,我认为在解决了许多问题后我已经停下来了。我会很感激帮助。

我已经安装了 cblas 和 mpi:

现在我只是在链接中获得了与 HPL_* 相关的未定义引用。

就像是:

即使我手动执行如下编译器命令,它也不起作用:

这是我的 Make.arch 文件(减去许可证头):

0 投票
0 回答
530 浏览

multithreading - OpenMPI 和 OpenMP 核心绑定

我已阅读有关在 AMD 上运行 linpack 的文章 [1]。根据我的理解,执行策略是每个 L3 缓存有 1 个 MPI 等级,每个有 4 个线程,因为 L3 缓存用于四个物理内核。现在,通过阅读这篇文章,我有三个无法通过谷歌搜索回答的问题:

1) 他正在对单个 CPU 系统进行基准测试。我想通常 OpenMPI 用于在集群上部署 linpack。但是使用多个 MPI 等级而不是具有更多线程的等级是否有任何性能优势?在多插槽/共享内存机器上,根据我的理解,这应该没有任何区别。

2) 他运行基准测试如下:

我的问题是 mpirun 的 bind-to 的默认设置是绑定到核心。据我了解,这意味着每个等级都绑定到一个核心。现在,即使 OMP 线程也绑定到核心,我看不到每个等级的四个线程将在四个核心上执行。相反,由于等级(进程)绑定到一个核心,等级由四个 OMP 线程组成​​,它们都共享同一个核心,这不是预期的吗?我没有 CPU 来验证我的假设。我是否正确,这里缺少 --bind-to l3cache 设置以允许 OMP 线程分布在共享 l3 缓存的所有内核上?如果不是,为什么?

3) 他指出,在进行基准测试时应该禁用 SMT。为什么?我知道如果像 FPU 这样的共享执行单元已经饱和,硬件线程可能不会总是提高性能,但为什么它们会降低性能呢?

非常感谢您的帮助。

亲切的问候,马克西米利安

[1] https://www.pugetsystems.com/labs/hpc/How-to-Run-an-Optimized-HPL-Linpack-Benchmark-on-AMD-Ryzen-Threadripper----2990WX-32-core-性能-1291

0 投票
1 回答
55 浏览

linux - OpenMPI / 高性能 Linpack 新手问题

我有一个由 4 个节点组成的小集群,每个节点有 4 个核心。我可以愉快地在一个节点上运行 HP Linpack,但我很难让它在多个节点上运行。

我使用 OpenMPI 和 OpenBLAS 从源代码编译了 HPL-2.3。一切似乎都适用于单节点测试。

我的“节点”文件是:

如果我运行,mpirun -np 16 -hostfile nodes uptime我会得到以下信息:

向我建议,OpenMPI 正在工作并分发uptime到 4 个处理器、16 个内核。

但是,当我运行时,mpirun -np 16 -hostfile nodes xhpl我得到以下信息:

这向我表明xhpl在 node 上找不到192.168.0.3,这似乎是合理的,因为它只存在于192.168.0.1我的开发节点上。但从概念上讲,我的印象是我可以在一个节点上开发,然后让 OpenMPI 将可执行文件分发到其他节点执行,而无需事先将可执行文件复制到其他节点。我从根本上误解了这一点吗?

任何指导将不胜感激。

亲切的问候

约翰

0 投票
1 回答
54 浏览

linux - 编译 HPL Linpack 基准测试时禁用矢量化

我尝试编译 netlib hpl linpack 基准测试,但我想禁用矢量化。

我删除了 make 文件中的所有优化标志,并且只-qno-openmp-simd -no-vec -no-simd设置了这些标志。

但是,当我执行 binaryxhpl时,walltime 和 FLOPs 与设置所有优化标志并且代码被矢量化时相同。此外,likwid 的矢量化率约为 98%。

我读到这些标志不会阻止像 MKL 这样的库被矢量化。netlib HPL 使用来自 MKLROOT 的线性代数库(BLAS 或 VSIPL)。

在编译这个特定的基准测试时,我可以强制编译器禁用矢量化吗?如果可以,怎么做?

0 投票
0 回答
411 浏览

openmp - 使用 OpenMP BLAS 库的高性能 Linpack (HPL) 编译选项

Ubuntu 20.04 64 位 aarch64

我已经从源代码成功构建了高性能 Linpack (HPL-2.3),并在 HPL Make.myconfig 文件中指定了 OpenBLAS串行共享库。HPL 运行愉快。

我现在想使用 OpenBLAS OpenMP 共享库版本构建 HPL。在对 HPL 源目录进行递归grep omp之后,我在源代码中找不到任何 OpenMP 编译指示。

我的问题是,当我构建 HPL 时,是否需要指定-fopenmp为编译选项?我的想法是 HPL 没有使用 OpenMP,并且不需要知道它链接的 OpenBLAS 共享库确实使用了 OpenMP。我敢肯定我错了,但我不知道为什么...

此致

0 投票
0 回答
65 浏览

mpi - 什么是一组一致的英特尔 HPL 选项?

我正在尝试在这里运行 Intel 版本的 HPL 基准测试,但我对这些选项感到有些困惑。

我想做的(现在)是单节点运行。该节点有 2 个 Xeon Platinum 8276 处理器,因此总共有 56 个内核。所以我的 PxQ 应该是 56。

然而,英特尔文档说:

  • MPI_PROC_NUM 应该等于 PxQ(即 56) - 这被传递给mpirun -np
  • MPI_PER_NODE 应该等于系统中的套接字数(即 2) - 这被传递给mpirun -perhost

对我来说,那些似乎不一致?以及如何使用 OMP_NUM_THREADS 适应这一点?

0 投票
0 回答
29 浏览

centos - 构建 HPL 的问题

我正在尝试在我的笔记本电脑上构建 Linpack。我正在运行 CentOS 8,以及 Open MPI 和 blas 3.8.0。

在启动和刷新之前,makefile 运行良好,但在构建部分出现错误。

错误

Make.LINPACK_PII_CBLAS