[转帖]docker编译speccpu2017

docker,编译,speccpu2017 · 浏览次数 : 0

小编点评

**实验步骤:** 1. **下载docker和speccpu2017:** - 从 Docker Hub 上下载 docker 和 speccpu2017 镜像。 2. **创建容器:** - 使用 `docker run` 命令运行 speccpu2017 镜像。 3. **将宿主机 speccpu2017 镜像复制到容器中:** - 使用 `docker cp` 命令从宿主机到容器中复制 `speccpu2017` 镜像。 4. **编译运行 speccpu2017:** - 在 `docker exec` 中运行 `gcc` 命令编译 `speccpu2017`。 5. **下载 Docker yum 安装器:** - 使用 `docker pull` 命令下载 Docker yum 安装器。 6. **设置环境变量:** - 修改 `/home/speccpu2017/config` 文件,设置 `GCC_DIR` 和 `LD_LIBRARY_PATH` 等环境变量。 7. **测试性能分数:** - 使用 `runcpu` 命令运行测试,指定测试参数。 - 查看 `/spec2017/result` 路径下保存的测试结果文件。 **注意:** - 测试需要大量内存和 CPU 资源,因此可能需要使用特定的硬件环境。 - 测试结果的比较需要在同一台机器上进行,因为 Docker 和 Isadora 之间的性能差距可能较大。

正文

实验步骤:

1.下载docker和speccpu2017

2.docker下载镜像,创建容器

3.将下载的宿主机speccpu2017拷贝到docker创建的容器中(docker cp)

4.在docker容器(docker exec)中编译运行speccpu2017

下载docker

yum  install docker-ce -y

下载镜像

  1. docker search gcc //(选择第一个下载)
  2. sudo docker pull gcc //(下载最新版)
  3. docker images //(查看本地已经下载的镜像)

docker容器命令

  1. docker run -it imageID /bin/bash //(交互式运行,进入容器查看内容)
  2. docker ps -a //(查看本地容器)
  3. docker start ContainerID //(开启容器)
  4. docker exec -it ContainerID /bin/bash //(交互式运行)
  5. docker cp source_path_file destination_path_file //(宿主机和docker文件拷贝)

SPECCPU2017是标准性能评估组织继SPECCPU 2006之后,最新的CPU子系统量化测试工具,共4个大类,43个测试,包括聚焦单任务的整形、浮点型运算速度的性能测试SPECspeed integer、SPECspeed 2017 Floating Point,聚集整体并发的整形、浮点型运算速度的性能测试SPECrate 2017 Interger和SPECrate 2017 Floating Point。

下载specccpu2017

        官网下载speccpu2017的光盘安装镜像和AOCC的编译器压缩包。

        或者百度网盘下载cpu2017-1.05.iso
                链接:百度网盘 请输入提取码
                提取码:5thr

speccpu2017的安装

  1. mkdir -p /home/speccpu2017 //创建安装路径
  2. mount cpu2017-1.0.5.iso /mnt/  //(挂载iso镜像,并切换到/mnt目录下)
  3. cd /mnt
  4. ./install.sh  //(执行install安装,输入之前创建完成的/home、speccpu2017路径)

执行./install.sh之后,输入安装位置/home/speccpu2017,选择yes,如下图所示:

修改配置文件

在/home/speccpu2017/config文件夹,复制Example-gcc-linux-x86.cfg文件并重命名spec17-opti-gcc7.3.cfg,修改该文件,查找“edit”字样的内容。

1.查看gcc/g++/gfortran的版本

  1. gcc -v
  2. g++ -v
  3. gfortran -v

2.查看gcc的安装位置

which gcc

config文件修改规则如下:

如果在/usr/bin/gcc文件夹下则修改gcc_dir为/usr,如果在/usr/local/bin/gcc文件夹下则修改gcc_dir为/usr/local,

对应修改SPECLANG = /usr/bin/或者/usr/local/bin/

详细参考链接:https://pan.baidu.com/s/1NLoD3K-VPOrQPgpEHfALjw 
提取码:09rq

speccpu2017配置环境及运行

  1. source shrc //(设置环境)
  2. runcpu --config=spec17-opti-gcc7.3_1.cfg -size=ref --tune=all -noreportable all -l --copies=4

测试参数说明:

runcpu: 位于bin目录下的二进制执行文件

--config:编译执行的配置文件有base和

--size: 测试规模,表示数据集大小,数据集共三种:test、train、ref。其中test最小,跑的时间最短,如果测试编译器正确性的时候可以用test规模,但是测试性能的时候用ref

--tune: 测试模式,base是基准测试,peak是峰值测试,默认是base

-noreportable: 表示不检测生成的二进制文件是否修改过。--reportable如果原来生成的二进制文件被修改了,则运行时会自动重新编译成二进制文件。

all: 测试范围,all表示进行fp和int测试(将all替换成intrate或fprate进行定点和浮点的测试,将all替换成456/444等文件编号,表示对某一测试项进行单独测试)可选fprate、 fpspeed、 intrate、 intspeed or all等。这里建议一次运行单个测试,全部测试all可能会需要两三天时间。

-l: 表示测试中,如遇报错,略过错误继续测试

--copies: 设置测试的CPU核心数目

注意事项:

在测试时,主要注意磁盘空间与cpu核数等。若在docker和isula中运行intrate和fprate时,需要保证在相同核心数目和bechmark数目下测试,查看运行时间比较CPU的处理能力。若在docker和isulad中运行intspeed和fpspeed时,需要注意的是要保证磁盘空间大于10GB,运行时会产生的较多的内存和磁盘占用;由于intspeed和fpspeed是单核运行,时间会比较久。

测试结果说明:

查看性能分数

  • 测试完成后,可进入/spec2017/result/路径下查看已完成的测试结果文件

    CPU2017.xxx.intrate.refrate.txt、CPU2017.xxx.fprate.refrate.txt、CPU2017.xxx.intspeed.refspeed.txt、CPU2017.xxx.fpspeed.refspeed.txt

  • 测试过程中,如果想提前知道已经完成的测试子项分数,可使用如下命令进行查看,ratio即为得。

    less CPU2017.XXX.log.debug | grep Success

 

 

 

文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览10955 人正在系统学习中

与[转帖]docker编译speccpu2017相似的内容:

[转帖]docker编译speccpu2017

实验步骤: 1.下载docker和speccpu2017 2.docker下载镜像,创建容器 3.将下载的宿主机speccpu2017拷贝到docker创建的容器中(docker cp) 4.在docker容器(docker exec)中编译运行speccpu2017 下载docker yum in

[转帖]docker 开启2375端口,提供外部访问docker

https://www.cnblogs.com/rxysg/p/15816320.html 一、编辑docker文件:/usr/lib/systemd/system/docker.service 命令:vim /usr/lib/systemd/system/docker.service 修改Exec

[转帖]Docker Centos 支持中文字符集编码

https://www.jianshu.com/p/ac267eac47d1 我们在使用 Docker centos7.2 镜像时发现即使安装了中文字符集环境包,通过下面的命令来实现支持中文,但是在用 yum 安装某些软件后,比如执行 yum -y reinstall glibc glibc-com

[转帖][Docker] Windows里运行docker执行sh文件报错 $'\r': command not found

https://www.cnblogs.com/MasterMonkInTemple/p/16358366.html 出现这样的错误,是因为Shell脚本在Windows系统编写时,每行结尾是\r\n,而在Linux系统中行每行结尾是\n,所以在Linux系统中运行脚本时,会认为\r是一个字符,导致

[转帖]docker容器跨主机网络overlay

https://www.cnblogs.com/machangwei-8/p/15757120.html 目录 拉取镜像,运行容器 浏览器上访问Consul 修改host1,host2的docker daemon配置文件 创建网络 验证 在overlay中运行容器 运行 查看一下这两个网卡 查看生成

[转帖]Docker容器跨主机通信overlay网络的解决方案

https://www.jb51.net/article/237838.htm 一、Docker主机间容器通信的解决方案 Docker网络驱动 Overlay: 基于VXLAN封装实现Docker原生Overlay网络 Macvlan: Docker主机网卡接口逻辑上分为多个子接口,每个子接口标识一

[转帖]docker多主机网络方案

http://t.zoukankan.com/bethal-p-6046816.html 本文探讨Docker多主机网络的性能。 在过去的博文里,我测试过 Docker的网络 。 MySQL服务器团队 提供了他们自己的结果,和我的观察是一致的。 本文里一系列的测试,想更多关注使用多主机的Docker

[转帖]docker进阶教程之dockerfile优化镜像大小

https://www.jb51.net/hack/ 同样功能的镜像,但是不同的Dockerfile build出来的镜像大小是不一样的,下面这篇文章主要给大家介绍了关于docker进阶教程之dockerfile优化镜像大小的相关资料,需要的朋友可以参考下 + 目录 一、无优化构建镜像 1 2 3

[转帖]Docker镜像最佳实践

https://www.zhihu.com/people/trumandu-95/posts 5条最佳建议 1.仅安装产线需要依赖与软件 镜像尽可能最小原则 仅复制jar/war 使用自定义JRE(Java Runtime Environment) 2.使用多阶段构建 FROM maven:3.6.

[转帖]docker 容器基础技术:linux cgroup 简介

https://cizixs.com/2017/08/25/linux-cgroup/ Linux cgroups 的全称是 Linux Control Groups,它是 Linux 内核的特性,主要作用是限制、记录和隔离进程组(process groups)使用的物理资源(cpu、memory、