测试linpack

配置

配置linpack环境是整个过程中最麻烦的,也可能是因为我在配置的过程中出现了很多小问题吧。大概有3天的时间除了上课就在配置环境。

问题

总结起来问题和解决方法有这些

1、路径设置问题

2、source 的位置(profilehe 和.bashrc)

3、权限问题

4、莫名其妙的问题(解决方法:重装)

做的太着急了,没有截图... 下次要养成截图的习惯!

测试

HPL.dat 的文件内容

HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out output file name (if any)
6 device out (6=stdout,7=stderr,file)
1 # of problems sizes (N)
11900 340 35 Ns
1 # of NBs
224 192 192 192 NBs
0 PMAP process mapping (0=Row-,1=Column-major)
1 # of process grids (P x Q)
1 1 1 Ps
4 4 4 Qs
16.0 threshold
3 # of panel fact
0 1 2 PFACTs (0=left, 1=Crout, 2=Right)
2 # of recursive stopping criterium
2 4 NBMINs (>= 1)
1 # of panels in recursion
2 NDIVs
3 # of recursive panel fact.
0 1 2 RFACTs (0=left, 1=Crout, 2=Right)
1 # of broadcast
0 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1 # of lookahead depth
0 DEPTHs (>=0)
2 SWAP (0=bin-exch,1=long,2=mix)
64 swapping threshold
0 L1 in (0=transposed,1=no-transposed) form
0 U in (0=transposed,1=no-transposed) form
1 Equilibration (0=no,1=yes)
8 memory alignment in double (> 0)

其中我们需要修改来优化配置的参数有以下:

1、Ns 矩阵的大小

N×N×8 =系统总内存×80%。

注意这里的系统总内存是指可用内存,以B为单位

我的N=11900

2、NBs 求解矩阵分块的大小

为提高数据的局部性,从而提高整体性能,HPL采用分块矩阵的算法。分块的大小对性能有很大的影响,NB的选择和软硬件许多因素密切相关。

NB值的选择主要是通过实际测试得到最优值。但NB的选择上还有一些规律可寻,如:NB不可能太大或太小,一般在256以下; NB×8一定是Cache line的倍数例如,我们的L2缓存为1024K,NB就设置为192

另外,NB大小的选择还跟通信方式,矩阵规模,网络,处理器速度等有关系。一般通过单节点或单CPU测试可以得到几个较好的NB值,但当系统规模增加,问题规模变大,有些NB取值所得性能会下降。所有最好在小规模测试时选择3个左右性能不错的NB,再通过大规模测试检验这些选择。

实践证明224比196要好

3、P Q 二维处理器网格(P×Q)

要求:

(1)P×Q =系统CPU数=进程数

(2)P≤Q

我的进程数是4 实践证明1X4优于2X2

理论值的计算方法

结果参数:

time:运算的时间

Gflops:进行浮点运算的次数

执行语句:mpirun -np x ./xhpl

X为操作系统的进程数或其倍数

我的x=4

最优结果:

是理论值的40%这样

心得体会:

配置环境确实是一个很麻烦的事情,我用了整整3天,最后的测试其实只用了一天。但是我觉得自己的hpl测试还没有达到最高值,后面有时间再慢慢测试。不过经历过这个过程之后,写命令行的能力确实提高了很多 。这周要学习forturn语言,不过软工的冲刺也在这周,合理安排时间吧。

ubuntu上的inpack测试的更多相关文章

  1. 在ubuntu机器上部署php测试环境

    在ubuntu机器上部署php测试环境 一.部署环境 Ubuntu11.10_X86_32,编译安装相应的软件:nginx+mysql+php. 二.软件安装 2.1 软件下载 libiconv-1. ...

  2. 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序(老罗学习笔记2)

    在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序.在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文 ...

  3. mac os 和 ubuntu 上测试工具check-0.9.10的安装

    由于工作需要,要使用check 这个单元测试工具. 首先,说一说在Mac10.9上面的安装.我是直接在官网(http://check.sourceforge.net)上下载源码包. 1,解压 2,进入 ...

  4. [异常解决] ubuntu上安装JLink驱动遇到的坑及给后来者的建议

    一.前言 最近将整个电脑格式化,改成了linux操作系统 希望这样能让自己在一个新的世界探索技术.提升自己吧- win上的工具用多了,就不想变化了- 继上一篇<ubuntu上安装虚拟机遇到的问题 ...

  5. Ubuntu上通过nginx部署Django笔记

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式.今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,g ...

  6. 在Ubuntu上安装LAMP服务器

    1.安装Ubuntu上安装LAMP apt-get install lamp-server^ 2.安装过程中设置MySql密码 3.测试 创建index.php var/www/html/index. ...

  7. [译]How to Setup Sync Gateway on Ubuntu如何在ubuntu上安装sync-gateway

    参考文章https://hidekiitakura.com/2015/03/21/how-to-setup-sync-gateway-on-ubuntudigitalocean/ 在此对作者表示感谢 ...

  8. 在ubuntu上安装nodejs[开启实时web时代]

    作为一名菜鸟,竟然在centos桌面上连输入命令行的地方都找不到,是在是对不起开山祖师,最后苍天不负苦心人,在ubuntu上找见了 [安装过程参考了http://cnodejs.org/topic/4 ...

  9. Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序

    自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH  网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...

随机推荐

  1. day30 进程

    推荐两本书:现代操作系统和操作系统原来,学习好python以后再去研究.   并发:任务的切换,保存状态,存在io的是实现空间和时间的 重复利用 操作系统的发展历史: 第一代(1940-1955)手工 ...

  2. VSCode 配置 Python

    假设 Anaconda 和 VSCode 都安装好了. 安装插件 VSCode 自带的 python 高亮不是很好,这里我们用 One Dark Pro 插件, 以及安装 Python 插件. 设定 ...

  3. python应用:爬虫框架Scrapy系统学习第一篇——xpath详解

    HTML的三大概念:标签.元素以及属性 标签:尖括号中的文本       例:<head>……</head> 标签通常成对出现 元素:标签中的所有内容        元素中可包 ...

  4. Django模板语言与视图(view)

    常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...

  5. Redis在Linux中的运用

    Redis在Linux中的运用 一.Redis安装部署 下载: wget http://download.redis.io/releases/redis-3.2.12.tar.gz 解压: 上传至 / ...

  6. A1041

    输入n个数,找出第一个只出现一次的数,输出它. 如果没有,输出none. 思路: 将输入的数值作为HashTable的数组下标即可. #include<cstdio> ], hashTab ...

  7. MySQL 重要语法

    1.查询表abc中的所有数据: SELECT * FROM abc WHERE 1=1; where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句.

  8. (数据科学学习手札43)Plotly基础内容介绍

    一.简介 Plotly是一个非常著名且强大的开源数据可视化框架,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图,本文就将以jupyter notebook ...

  9. HDL代码风格建议(1)使用示例和IP

    Recommended HDL Coding Styles HDL coding styles can have a significant effect on the quality of resu ...

  10. Java设计模式(5)——创建型模式之建造者模式(Builder)

    一.概述 概念 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示.(与工厂类不同的是它用于创建复合对象) UML图   主要角色 抽象建造者(Builder)——规范建造方法与结果 ...