Quick Start
安装方法1
最新的mdtest代码已经merge到ior项目中,因此在编译、安装ior的时候,我们同时编译安装了mdtest。详细步骤见 ior测试。
与ior相同的是,我们只需要在一台机器上编译应用程序,之后将可执行的脚本拷贝到所有待测客户机上即可。
同样,我们可以用openmpi(mpiexec、srun)来分布式的执行mdtest。
mpirun/mpiexec 执行ior项目内的mdtest会遇到读写冲突导致任务失败,目前没有解决。临时解决方案见安装方法2。
安装方法2
安装openmpi
yum install openmpi openmpi-devel -y # 在$HOME/.bashrc中添加openmpi的执行路径,为了方便后面也可以添加mdtest的路径 export PATH= "$PATH:/usr/local/openmpi/bin" export LD_LIBRARY_PATH= "$LD_LIBRARY_PATH:/usr/local/openmpi/lib/" export PATH=$PATH:<path_to_mdtest>/mdtest |
下载mdtest的压缩包,这是一个比较老的版本,但是可以用mpirun调用。
mkdir -p <path_to_mdtest>/mdtest cd mdtest wget https: //nchc.dl.sourceforge.net/project/mdtest/mdtest%20latest/mdtest-1.9.3/mdtest-1.9.3.tgz tar -xvf mdtest- 1.9 . 3 .tgz |
修改MakeFile
mdtest: mdtest.c mpicc -Wall -D $(OS) $(LARGE_FILE) $(MDTEST_FLAGS) -g -o mdtest mdtest.c -lm |
编译
在$HOME/mdtest下我们就有了可执行的mdtest文件,且支持mpirun调用。
该版本的mdtest虽然支持mpirun调用,但是有一个限制,执行命令的机器不能在hostfile中,否则进程会hang住,不能正常返回。
执行简单的mdtest命令验证安装。
MDTEST命令
单独执行mdtest的一些命令。
# 只创建文件 mdtest -n 100 -w 102400 -b 1 -d ./out -F -C # 只读文件 mdtest -n 100 -w 102400 -b 1 -d ./out -F -E # 只删除上轮执行遗留的文件 mdtest -n 100 -w 102400 -b 1 -d ./out -F -r |
参数解释见mdtest -h。
用mpirun调用mdtest命令。
mpirun --allow-run-as-root -np 2 --map-by node -wd /root/iobench/ -hostfile /root/hfile --mca btl_tcp_if_include ens9f0 /home/wenjie/mdtest/mdtest -d ./out -b 2 -I 10 -C -F mpirun --allow-run-as-root -np 2 --map-by node -wd /root/iobench/ -hostfile /root/hfile --mca btl_tcp_if_include ens9f0 /home/wenjie/mdtest/mdtest -d ./out -b 2 -I 10 -E -F mpirun --allow-run-as-root -np 2 --map-by node -wd /root/iobench/ -hostfile /root/hfile --mca btl_tcp_if_include ens9f0 /home/wenjie/mdtest/mdtest -d ./out -b 2 -I 10 -r -F |
参考:
https://www.jianshu.com/p/f7f4e24eb870