PARSEC是一个由多线程程序组成的基准套件。该套件专注于新兴的工作负载,旨在代表芯片多处理器的下一代共享内存程序。PARSEC3.0工作负载以涵盖不同领域的应用程序,例如计算机视觉,媒体专业处理,计算财务,企业服务器和动画物理学。
安装前的准备工作
parsec3.0安装前需要先安装gcc,g++,m4,如果已经安装可以跳过这部分介绍
安装gcc g++ m4
yum install gcc gcc-c++ m4 -y
parsec3.0下载和安装
下载parsec3.0有两种选择,一是使用wget(我自己下载时速度有点慢),二是使用自己通过网页下载然后copy到服务器上,这里介绍wget方式,网页下载地址在本文最后的参考资料[1]。
下载parsec3.0
wget http://parsec.cs.princeton.edu/download/3.0/parsec-3.0-core.tar.gz
tar -zxvf parsec3.0-core.tar.gz #解压压缩包
cd parsec3.0
source env.sh #更新环境变量
parsecmgmt -a build -p streamcluster #单独编译benchmark streamcluster
parsecmgmt -a run -p streamcluster #单独测试benchmark streamcluster
parsecmgmt -a fulluninstall -p streamcluster #清除streamcluster文件
#到这里后建议先建议先看一看本文后面的参数配置和benchmark说明,然后再下载安装parsec3.0
#一次性编译所有benchmark,正常情况下大约7分钟编译完,如果编译报错,可以参考本文后面列出的错误描述及解决方法
parsecmgmt -a build -p all
parsecmgmt -a run -p all -i simdev #采用所有benchmark进行测试
需要注意的是
参数配置和benchmark说明
测试集
parsec3.0有6个测试集,分别是Test,Simdev,Simsmall,simmedium,Simlarge,Native,如果不指定测试集,parsec3.0会默认使用Test。这6个测试集具体信息如下表:
查看测试集
parsec3.0压缩包不一定都包含这6个测试集,可以通过如下方式查看自己下载的parsec3.0源码包含的测试集:
cd ./pkgs/kernels/dedup/inputs/
ls
benchmark介绍
parsec3.0有自身的benchmark和集成第三方的,下标所列是自身的benchmark和用途,第三方有splash2、splash2x。
通过命令parsecmgmt -a info可以查看具体benchmark信息。
错误及解决方法
错误1
错误描述:
No package 'xext found'
解决方法:
yum install libXext-devel libXfixes-devel libX11-devel libXt-devel libXmu-devel libXi-devel -y
错误2
错误描述:
/usr/include/wchar.h:94:3: error: conflicting types for ‘._mbstate_t’
解决方法:
vim ./pkgs/libs/uptcpip/src/include/sys/bsd__types.h
注释bsd_types.h的102行到105行代码
typedef union {
char __mbstate8[128];
__int64_t _mbstateL; /* for alignment */
} __mbstate_t;
错误3
错误描述:
[PARSEC] Error: 'env version=tbb /usr/bin/make' failed.
解决方法:
yum install -y tbb tbb-devel
错误4
错误描述:
POD document had syntax errors at /usr/bin/pod2man line 69.
解决方法:
rm -f /usr/bin/pod2man
- 以上错误是本人在安装parsec3.0中遇到的,可能还会有错误,那就需要自己查找资料了。
参考资料
[1]https://parsec.cs.princeton.edu/download.htm
[2]https://parsec.cs.princeton.edu/doc/memo-splash2x-input.pdf
[3]https://parsec.cs.princeton.edu/doc/memo-splash2x-input.pdf
[4]https://parsec.cs.princeton.edu/download/tutorial/3.0/parsec-tutorial.pdf
[5]http://arco.e.ac.upc.edu/wiki/images/8/8a/Seminar_Parsec3.pdf