diff --git a/Round5/BasicTest/performance/fio/README.md b/Round5/BasicTest/performance/fio/README.md new file mode 100755 index 0000000000000000000000000000000000000000..d15edaca67127706eb0e73402087403fa33ca475 --- /dev/null +++ b/Round5/BasicTest/performance/fio/README.md @@ -0,0 +1,21 @@ +# fio + +`fio` 是测试 IOPS 的工具,用来对磁盘进行压力测试和验证。磁盘 IO 是检查磁盘性能的重要指标,可以按照负载情况分成顺序读写、随机读写两大类。`fio` 是一个可以产生很多线程或进程并执行用户指定的特定类型 I/O 操作的工具,`fio` 的典型用法是编译和模拟的 I/O 负载匹配的作业文件。也就是说 `fio` 是一个多线程 IO 生成工具,可以生成多种 IO 模式,用来测试磁盘设备的性能(也包括文件系统:如针对网络文件系统 NFS 的 IO 测试) + +## 与上游测试方式不同之处 + +- `fio` 从软件源直接获取而不是编译安装。 +- 测试目录更改为当前目录下的 `test` 而不是创建新的文件系统执行。 +- 测试文件大小改为 1G。 + +## 文件树 + +```txt +fio +├── log +│   ├── fio.log +│   └── QEMU.csv +├── method.md #测试方法 +├── README.md #测试说明 +└── result.md #测试结果 +``` diff --git a/Round5/BasicTest/performance/fio/log/fio.csv b/Round5/BasicTest/performance/fio/log/fio.csv new file mode 100644 index 0000000000000000000000000000000000000000..c850d6f3f898240de3ae3d41c8fd54b6eee320df --- /dev/null +++ b/Round5/BasicTest/performance/fio/log/fio.csv @@ -0,0 +1,42 @@ +测试类型,块大小,测试结果 + +read,4096B,[IOPS=3879--read=15.2MiB/s] +read,16.0KiB,[IOPS=4004--read=62.6MiB/s] +read,32.0KiB,[IOPS=3672--read=115MiB/s] +read,64.0KiB,[IOPS=3477--read=217MiB/s] +read,128KiB,[IOPS=3068--read=384MiB/s] +read,256KiB,[IOPS=2201--read=550MiB/s] +read,512KiB,[IOPS=1408--read=704MiB/s] +read,1024KiB,[IOPS=586--read=587MiB/s] +write,4096B,[IOPS=3778--write=14.8MiB/s] +write,16.0KiB,[IOPS=3151--write=49.2MiB/s] +write,32.0KiB,[IOPS=2961--write=92.6MiB/s] +write,64.0KiB,[IOPS=2576--write=161MiB/s] +write,128KiB,[IOPS=1872--write=234MiB/s] +write,256KiB,[IOPS=1200--write=300MiB/s] +write,512KiB,[IOPS=633--write=317MiB/s] +write,1024KiB,[IOPS=358--write=359MiB/s] +randread,4096B,[IOPS=4183--read=16.3MiB/s] +randread,16.0KiB,[IOPS=3907--read=61.0MiB/s] +randread,32.0KiB,[IOPS=3645--read=114MiB/s] +randread,64.0KiB,[IOPS=3509--read=219MiB/s] +randread,128KiB,[IOPS=3289--read=411MiB/s] +randread,256KiB,[IOPS=2619--read=655MiB/s] +randread,512KiB,[IOPS=1130--read=565MiB/s] +randread,1024KiB,[IOPS=602--read=602MiB/s] +randwrite,4096B,[IOPS=3318--write=13.0MiB/s] +randwrite,16.0KiB,[IOPS=3222--write=50.4MiB/s] +randwrite,32.0KiB,[IOPS=2944--write=92.0MiB/s] +randwrite,64.0KiB,[IOPS=2653--write=166MiB/s] +randwrite,128KiB,[IOPS=2228--write=279MiB/s] +randwrite,256KiB,[IOPS=1487--write=372MiB/s] +randwrite,512KiB,[IOPS=764--write=382MiB/s] +randwrite,1024KiB,[IOPS=378--write=378MiB/s] +randrw,4096B,[IOPS=2614--read=10.2MiB/s][IOPS=1131--write=4525KiB/s] +randrw,16.0KiB,[IOPS=2453--read=38.3MiB/s][IOPS=1062--write=16.6MiB/s] +randrw,32.0KiB,[IOPS=2284--read=71.4MiB/s][IOPS=990--write=30.9MiB/s] +randrw,64.0KiB,[IOPS=2126--read=133MiB/s][IOPS=921--write=57.6MiB/s] +randrw,128KiB,[IOPS=1775--read=222MiB/s][IOPS=769--write=96.2MiB/s] +randrw,256KiB,[IOPS=1322--read=331MiB/s][IOPS=577--write=144MiB/s] +randrw,512KiB,[IOPS=729--read=365MiB/s][IOPS=318--write=159MiB/s] +randrw,1024KiB,[IOPS=349--read=350MiB/s][IOPS=155--write=155MiB/s] \ No newline at end of file diff --git a/Round5/BasicTest/performance/log/fio.log b/Round5/BasicTest/performance/fio/log/fio.log similarity index 100% rename from Round5/BasicTest/performance/log/fio.log rename to Round5/BasicTest/performance/fio/log/fio.log diff --git a/Round5/BasicTest/performance/fio/method.md b/Round5/BasicTest/performance/fio/method.md new file mode 100755 index 0000000000000000000000000000000000000000..de223e2ea4adcece578e541cc327b7ef67244c53 --- /dev/null +++ b/Round5/BasicTest/performance/fio/method.md @@ -0,0 +1,28 @@ +# 测试方法 + +1. 安装 `fio`:`sudo dnf install -y fio` + +2. 创建 `fio.sh` 测试脚本,执行: + + ```bash + cat << 'EOF' > fio.sh + #!/bin/bash + numjobs=10 + iodepth=10 + mkdir test + for rw in read write randread randwrite randrw;do + for bs in 4 16 32 64 128 256 512 1024;do + if [ $rw == "randrw" ];then + fio -filename=test/fio -direct=1 -iodepth ${iodepth} -thread -rw=$rw -rwmixread=70 -ioengine=libaio -bs=${bs}k -size=1G -numjobs=${numjobs} -runtime=30 -group_reporting -name=job1 + else + fio -filename=test/fio -direct=1 -iodepth ${iodepth} -thread -rw=$rw -ioengine=libaio -bs=${bs}k -size=1G -numjobs=${numjobs} -runtime=30 -group_reportin -name=job1 + fi + sleep 30 + done + done + EOF + ``` + +3. 运行 `fio.sh`:`bash fio.sh | tee fio.log`。 + +4. 生成测试结果表格: `python src/processor.py fio.log` diff --git a/Round5/BasicTest/performance/fio/result.md b/Round5/BasicTest/performance/fio/result.md new file mode 100755 index 0000000000000000000000000000000000000000..cc07379e1ade063754cf311bd5afb9d73e96ef0e --- /dev/null +++ b/Round5/BasicTest/performance/fio/result.md @@ -0,0 +1,71 @@ +# fio 测试报告 + +## 概述 + +`fio` 是测试 IOPS 的工具,用来对磁盘进行压力测试和验证。磁盘 IO 是检查磁盘性能的重要指标,可以按照负载情况分成顺序读写、随机读写两大类。`fio` 是一个可以产生很多线程或进程并执行用户指定的特定类型 I/O 操作的工具,`fio` 的典型用法是编译和模拟的 I/O 负载匹配的作业文件。也就是说 `fio` 是一个多线程 IO 生成工具,可以生成多种 IO 模式,用来测试磁盘设备的性能(也包括文件系统:如针对网络文件系统 NFS 的 IO 测试) + +## 测试环境 + +- 发行版版本:openEuler 23.09 RISC-V testing RC5 +- 内核版本:6.4.0 +- 虚拟机版本:QEMU 8.0.2 + +### 与上游测试方式不同之处 + +- `fio` 从软件源直接获取而不是编译安装。 +- 测试目录更改为当前目录下的 `test` 而不是创建新的文件系统执行。 +- 测试文件大小改为 1G。 + +## 测试方法 + +见 [method.md](./method.md)。 + +## 测试结果 + +除了两块采用全志 D1 的开发板(荔枝派和哪吒)无法运行外,测试通过。QEMU 下 IO 性能表现良好。 + +测试结果详见 [log](./log) 目录下的日志文件。 + +### 测试结果对比表 +| **测试类型** | **块大小** | **测试结果** | +|-----------|----------|-------------------------------------------------------------------| +| read | 4096B | \[IOPS=3879\-\-read=15\.2MiB/s\] | +| read | 16\.0KiB | \[IOPS=4004\-\-read=62\.6MiB/s\] | +| read | 32\.0KiB | \[IOPS=3672\-\-read=115MiB/s\] | +| read | 64\.0KiB | \[IOPS=3477\-\-read=217MiB/s\] | +| read | 128KiB | \[IOPS=3068\-\-read=384MiB/s\] | +| read | 256KiB | \[IOPS=2201\-\-read=550MiB/s\] | +| read | 512KiB | \[IOPS=1408\-\-read=704MiB/s\] | +| read | 1024KiB | \[IOPS=586\-\-read=587MiB/s\] | +| write | 4096B | \[IOPS=3778\-\-write=14\.8MiB/s\] | +| write | 16\.0KiB | \[IOPS=3151\-\-write=49\.2MiB/s\] | +| write | 32\.0KiB | \[IOPS=2961\-\-write=92\.6MiB/s\] | +| write | 64\.0KiB | \[IOPS=2576\-\-write=161MiB/s\] | +| write | 128KiB | \[IOPS=1872\-\-write=234MiB/s\] | +| write | 256KiB | \[IOPS=1200\-\-write=300MiB/s\] | +| write | 512KiB | \[IOPS=633\-\-write=317MiB/s\] | +| write | 1024KiB | \[IOPS=358\-\-write=359MiB/s\] | +| randread | 4096B | \[IOPS=4183\-\-read=16\.3MiB/s\] | +| randread | 16\.0KiB | \[IOPS=3907\-\-read=61\.0MiB/s\] | +| randread | 32\.0KiB | \[IOPS=3645\-\-read=114MiB/s\] | +| randread | 64\.0KiB | \[IOPS=3509\-\-read=219MiB/s\] | +| randread | 128KiB | \[IOPS=3289\-\-read=411MiB/s\] | +| randread | 256KiB | \[IOPS=2619\-\-read=655MiB/s\] | +| randread | 512KiB | \[IOPS=1130\-\-read=565MiB/s\] | +| randread | 1024KiB | \[IOPS=602\-\-read=602MiB/s\] | +| randwrite | 4096B | \[IOPS=3318\-\-write=13\.0MiB/s\] | +| randwrite | 16\.0KiB | \[IOPS=3222\-\-write=50\.4MiB/s\] | +| randwrite | 32\.0KiB | \[IOPS=2944\-\-write=92\.0MiB/s\] | +| randwrite | 64\.0KiB | \[IOPS=2653\-\-write=166MiB/s\] | +| randwrite | 128KiB | \[IOPS=2228\-\-write=279MiB/s\] | +| randwrite | 256KiB | \[IOPS=1487\-\-write=372MiB/s\] | +| randwrite | 512KiB | \[IOPS=764\-\-write=382MiB/s\] | +| randwrite | 1024KiB | \[IOPS=378\-\-write=378MiB/s\] | +| randrw | 4096B | \[IOPS=2614\-\-read=10\.2MiB/s\]\[IOPS=1131\-\-write=4525KiB/s\] | +| randrw | 16\.0KiB | \[IOPS=2453\-\-read=38\.3MiB/s\]\[IOPS=1062\-\-write=16\.6MiB/s\] | +| randrw | 32\.0KiB | \[IOPS=2284\-\-read=71\.4MiB/s\]\[IOPS=990\-\-write=30\.9MiB/s\] | +| randrw | 64\.0KiB | \[IOPS=2126\-\-read=133MiB/s\]\[IOPS=921\-\-write=57\.6MiB/s\] | +| randrw | 128KiB | \[IOPS=1775\-\-read=222MiB/s\]\[IOPS=769\-\-write=96\.2MiB/s\] | +| randrw | 256KiB | \[IOPS=1322\-\-read=331MiB/s\]\[IOPS=577\-\-write=144MiB/s\] | +| randrw | 512KiB | \[IOPS=729\-\-read=365MiB/s\]\[IOPS=318\-\-write=159MiB/s\] | +| randrw | 1024KiB | \[IOPS=349\-\-read=350MiB/s\]\[IOPS=155\-\-write=155MiB/s\] | diff --git a/Round5/BasicTest/performance/fio/src/processor.py b/Round5/BasicTest/performance/fio/src/processor.py new file mode 100755 index 0000000000000000000000000000000000000000..480a52f5c80101ac608cbf5d14df74b34c445dea --- /dev/null +++ b/Round5/BasicTest/performance/fio/src/processor.py @@ -0,0 +1,23 @@ +import re +import sys +import os + +fin = open(sys.argv[1], encoding='UTF-8') +fout = open(os.path.splitext(os.path.split(sys.argv[1])[1])[0] + ".csv", 'w') +line = fin.readline() +startline = re.compile(r"job1: \(g=0\): rw=(\w*), bs=\(R\) ([\d.]*\w*B)-\2, \(W\) \2-\2, \(T\) \2-\2, ioengine=libaio, iodepth=10") +resline = re.compile(r"\s*(read|write): IOPS=([\d.]+[kK]?), BW=([\d.]+\w*B/s) \(([\d.]+\w*B/s)\)\(([\d.]+\w*B)/(\d+msec)\)") + +fout.write("测试类型,块大小,测试结果\n") +while line: + matchObj = startline.match(line) + if matchObj: + rw = matchObj.group(1) + fout.writelines(["\n", rw, ",", matchObj.group(2), ","]) + matchObj = resline.match(line) + if matchObj: + fout.writelines(["[IOPS=", matchObj.group(2), "--",matchObj.group(1),"=", matchObj.group(3),"]"]) + line = fin.readline() + +fin.close() +fout.close() \ No newline at end of file diff --git a/Round5/BasicTest/performance/libMicro/README.md b/Round5/BasicTest/performance/libMicro/README.md new file mode 100755 index 0000000000000000000000000000000000000000..51248caf85fd7bc59c07a7ac5ed576dccd8d6466 --- /dev/null +++ b/Round5/BasicTest/performance/libMicro/README.md @@ -0,0 +1,15 @@ +# libMicro + +衡量各自系统调用和 lib 库调用的性能,选择了 259 个常用的系统调用来评测操作系统系统调用方面的性能。 + +## 文件树 + +```txt +libMicro +├── log +│   ├── libMicro.csv +│   └── libMicro.log +├── method.md #测试方法 +├── README.md #测试说明 +└── result.md #测试结果 +``` diff --git a/Round5/BasicTest/performance/libMicro/log/lib_micro.csv b/Round5/BasicTest/performance/libMicro/log/lib_micro.csv new file mode 100644 index 0000000000000000000000000000000000000000..dcca5963d1512b915e1a6692bf29678ea3830ab1 --- /dev/null +++ b/Round5/BasicTest/performance/libMicro/log/lib_micro.csv @@ -0,0 +1,336 @@ +测试类型,测试结果 +atoi,163 +bind,79754 +c_cond_1,21728 +c_cond_o1,8332 +c_cond_os1,1023 +c_cond_s1,1018 +c_fcntl_1,402460 +c_flock,40878 +c_lockf_1,424961 +c_mutex_1,10341 +c_mutex_s1,441 +chdir_tmp,216879 +chdir_usr,242018 +chgetwd_tmp,265319 +chgetwd_usr,285783 +clock_gettime,206 +clock_nanosleep,3952824 +clock_nanosleep_d10,3926221 +clock_nanosleep_d100,3957614 +clock_nanosleep_d1000,3945814 +clock_nanosleep_d10000,3954814 +clock_nanosleep_m,3938753 +clock_nanosleep_mr,3955152 +clock_nanosleep_ms,3907653 +clock_nanosleep_msr,3952952 +clock_nanosleep_r,3941152 +clock_nanosleep_s,3959152 +clock_nanosleep_sr,3948429 +close_bad,2060 +close_tmp,9446 +close_zero,9811 +conn_connect,288127 +dup,2494 +exec,15117953 +execw,15233290 +execw_100r,35259847 +execw_1024n,42360020 +execw_10r,17519613 +execw_128n,18388675 +execw_128nt,232297628 +execw_128ntv,12081679 +execw_1r,15681701 +execw_256n,21608771 +execw_32n,16155174 +execw_32nt,222363356 +execw_32ntv,11953532 +execw_512n,28275839 +execw_64n,16918033 +execw_64nt,223955224 +execw_64ntv,12266118 +exit_100,881262 +exit_100_nolibc,644250 +exp,1683 +exp10,2569 +exp10f,785 +exp10l,21935 +exp2,909 +exp2f,526 +exp2l,10942 +expf,780 +expl,10293 +fcntl_ndelay,11639 +fcntl_tmp,2313 +file_lock,161893 +fork_100,2705431 +getcontext,12373 +getenv,439 +getpeername,32433 +getpid,2517 +getpid_s,1897 +getrusage,25122 +getsockname,33109 +gettimeofday,3648 +isatty_no,6217 +isatty_no_badfd,2036 +isatty_yes,44922 +listen,4690 +localtime_r,998 +log,1241 +log10,1608 +log10f,1004 +log10l,12401 +log2,1323 +log2f,781 +log2l,192767 +logf,779 +logl,11439 +longjmp,130 +lrand48,1862 +lseek_t8k,2148 +malloc_10,260 +malloc_100,254 +malloc_100k,133846 +malloc_10k,636 +malloc_1k,350 +memcpy_10,82 +memcpy_10k,2433 +memcpy_10m,4274556 +memcpy_1k,371 +memcpy_1m,252256 +memmove_10,82 +memmove_10k,4884 +memmove_10m,3146860 +memmove_1k,365 +memmove_1m,265756 +memrand,55353276 +memrand_128k,48278 +memrand_16k,5943 +memrand_16m,8283078 +memrand_1k,373 +memrand_1m,390733 +memrand_256k,96207 +memrand_2k,95897 +memrand_2m,816281 +memrand_32k,1192878 +memrand_32m,661074461 +memrand_4k,78539 +memrand_4m,1772886 +memrand_512k,11470535 +memrand_64k,23628 +memrand_64m,31898334 +memrand_8k,3031 +memrand_8m,3312286 +memset_10,54 +memset_10k,1396 +memset_10m,2994457 +memset_1k,177 +memset_1m,153277 +memset_256,185 +memset_256_u,98 +memset_4k,624 +memset_4k_uc,879 +mktime,113912 +mmap_a128k,59927 +mmap_a8k,61986 +mmap_ra128k,722800 +mmap_ra8k,165121 +mmap_rt128k,1163371 +mmap_rt8k,249957 +mmap_rz128k,738171 +mmap_rz8k,203993 +mmap_t128k,97652 +mmap_t8k,96908 +mmap_wa128k,1680170 +mmap_wa8k,261424 +mmap_wt128k,2007671 +mmap_wt8k,311290 +mmap_wz128k,2002371 +mmap_wz8k,311724 +mmap_z128k,102086 +mmap_z8k,101052 +mprot_tw128k,344466 +mprot_tw4m,574404 +mprot_twz8k,330209 +mprot_wz128k,332847 +mprot_wz8k,332748 +mprot_z128k,119517 +mprot_z8k,120054 +msync_rait128k,37080 +msync_rait8k,2853 +msync_rat128k,13105 +msync_rat8k,2716 +msync_rit128k,3131 +msync_rit8k,5651 +msync_rt128k,24778 +msync_rt8k,9362 +msync_t128k,4693 +msync_t8k,2625 +msync_ta128k,2636 +msync_ta8k,2572 +msync_tai128k,2644 +msync_tai8k,4146 +msync_ti128k,2662 +msync_ti8k,5482 +msync_wait128k,3102 +msync_wait8k,7133 +msync_wat128k,3184 +msync_wat8k,6931 +msync_wit128k,3081 +msync_wit8k,2740 +msync_wt128k,3223 +msync_wt8k,2881 +mutex_mt,144 +mutex_mts,4911 +mutex_st,122 +mutex_sts,9202 +nanosleep,2485481 +nanosleep_d10,3953472 +nanosleep_d100,3951271 +nanosleep_d1000,2210572 +nanosleep_r,3954572 +nanosleep_rs,3958472 +nanosleep_s,3949971 +open_tmp,204593 +open_zero,151445 +pipe_fmp1,283924 +pipe_fmp4k,286191 +pipe_fmt1,296691 +pipe_fmt4k,301236 +pipe_fst1,57461 +pipe_fst4k,66462 +pipe_pmp1,284091 +pipe_pmp4k,288691 +pipe_pmt1,289157 +pipe_pmt4k,310286 +pipe_pst1,58523 +pipe_pst4k,61311 +pipe_smp1,556072 +pipe_smp4k,637372 +pipe_smt1,559272 +pipe_smt4k,666272 +pipe_sst1,136512 +pipe_sst4k,160314 +pipe_tmp1,953071 +pipe_tmp4k,975071 +pipe_tmt1,960072 +pipe_tmt4k,1034171 +pipe_tst1,380186 +pipe_tst4k,356372 +poll_10,83988 +poll_100,519072 +poll_1000,5216371 +poll_w10,72498 +poll_w100,509572 +poll_w1000,5013471 +posix_spawn,12963869 +posix_spawn_100r,13191269 +posix_spawn_1024n,13134069 +posix_spawn_10r,13144269 +posix_spawn_128n,13085869 +posix_spawn_128nt,12906769 +posix_spawn_1r,13136769 +posix_spawn_256n,13131070 +posix_spawn_32n,13005269 +posix_spawn_32nt,12999870 +posix_spawn_512n,13160469 +posix_spawn_64n,12929869 +posix_spawn_64nt,12952769 +pread_t100k,376036 +pread_t10k,57898 +pread_t1k,28081 +pread_z100k,213193 +pread_z10k,36649 +pread_z1k,21102 +pread_zw100k,266057 +pthread_128,1835678 +pthread_256,1922939 +pthread_32,1670064 +pthread_512,1821556 +pthread_64,1684684 +pwrite_n100k,2793 +pwrite_n10k,2727 +pwrite_n1k,2773 +pwrite_t100k,731172 +pwrite_t10k,100052 +pwrite_t1k,41307 +read_t100k,344686 +read_t10k,151712 +read_t1k,88197 +read_z100k,204443 +read_z10k,36966 +read_z1k,21061 +read_zw100k,215393 +realpath_tmp,956172 +realpath_usr,1035272 +recurse,51762 +recurse_10k,2074771 +recurse_1k,79473 +scasecmp_10,116 +scasecmp_1k,5757 +sched_yield,4604 +sched_yield_s,4520 +select_10,40977 +select_100,113609 +select_1000,710972 +select_w10,53543 +select_w100,99875 +select_w1000,587971 +semop,43232 +setcontext,13034 +setsockopt,24662 +sigaction,22165 +siglongjmp,14707 +signal,176707 +sigprocmask,22645 +socket_i,91494 +socket_u,91335 +socketpair,255926 +stat_tmp,173754 +strchr_10,84 +strchr_1k,2039 +strcmp_10,82 +strcmp_1k,476 +strcpy_10,101 +strcpy_1k,51204 +strftime,4184 +strlen_10,57 +strlen_1k,313 +strtol,123 +system,81260954 +time,160 +times,23091 +unmap_a128k,155834 +unmap_a8k,154014 +unmap_ra128k,341236 +unmap_ra8k,318486 +unmap_rt128k,348286 +unmap_rt8k,302336 +unmap_rz128k,381024 +unmap_rz8k,283857 +unmap_t128k,58877 +unmap_t8k,64734 +unmap_wa128k,477086 +unmap_wa8k,388686 +unmap_wt128k,458086 +unmap_wt8k,340536 +unmap_wz128k,464186 +unmap_wz8k,340986 +unmap_z128k,59748 +unmap_z8k,58011 +usleep,2442472 +usleep_d10,3956771 +usleep_d100,3954171 +write_n100k,2793 +write_n10k,4718 +write_n1k,2731 +write_t100k,735172 +write_t10k,100063 +write_t1k,41868 +writev_n100k,123754 +writev_n10k,122825 +writev_n1k,127825 +writev_t100k,7377804 +writev_t10k,925076 +writev_t1k,287292 diff --git a/Round5/BasicTest/performance/log/lib_micro.log b/Round5/BasicTest/performance/libMicro/log/lib_micro.log similarity index 100% rename from Round5/BasicTest/performance/log/lib_micro.log rename to Round5/BasicTest/performance/libMicro/log/lib_micro.log diff --git a/Round5/BasicTest/performance/libMicro/method.md b/Round5/BasicTest/performance/libMicro/method.md new file mode 100755 index 0000000000000000000000000000000000000000..fb12371a406e5e5b9ae796b58c68c86f43b0d600 --- /dev/null +++ b/Round5/BasicTest/performance/libMicro/method.md @@ -0,0 +1,12 @@ +# 测试方法 + +执行: + +```bash +wget https://codeload.github.com/redhat-performance/libMicro/zip/0.4.1-rh +unzip 0.4.1-rh +yum install python -y +cd libMicro-0.4.1-rh +make CFLAGS=-static CC=${CROSS_COMPILE}gcc ARCH=${ARCH} -j$(nproc) +sh bench.sh +``` diff --git a/Round5/BasicTest/performance/libMicro/result.md b/Round5/BasicTest/performance/libMicro/result.md new file mode 100755 index 0000000000000000000000000000000000000000..3b2418df51c14dc0e345791f8487440b3ea07429 --- /dev/null +++ b/Round5/BasicTest/performance/libMicro/result.md @@ -0,0 +1,357 @@ +# libMicro 测试报告 + +## 概述 + +libMicro 可用于衡量各自系统调用和 lib 库调用的性能,选择了 259 个常用的系统调用来评测操作系统系统调用方面的性能。 + +## 测试环境 + +- 发行版版本:openEuler 23.09 RISC-V testing RC4 +- 内核版本:6.4.0 +- 虚拟机版本:QEMU 8.0.2 + +## 测试方法 + +见 [method.md](./method.md) + +## 测试结果 + +测试成功。 + +| **测试类型,测试结果** | **** | +|--------------------------|-----------| +| atoi | 163 | +| bind | 79754 | +| c\_cond\_1 | 21728 | +| c\_cond\_o1 | 8332 | +| c\_cond\_os1 | 1023 | +| c\_cond\_s1 | 1018 | +| c\_fcntl\_1 | 402460 | +| c\_flock | 40878 | +| c\_lockf\_1 | 424961 | +| c\_mutex\_1 | 10341 | +| c\_mutex\_s1 | 441 | +| chdir\_tmp | 216879 | +| chdir\_usr | 242018 | +| chgetwd\_tmp | 265319 | +| chgetwd\_usr | 285783 | +| clock\_gettime | 206 | +| clock\_nanosleep | 3952824 | +| clock\_nanosleep\_d10 | 3926221 | +| clock\_nanosleep\_d100 | 3957614 | +| clock\_nanosleep\_d1000 | 3945814 | +| clock\_nanosleep\_d10000 | 3954814 | +| clock\_nanosleep\_m | 3938753 | +| clock\_nanosleep\_mr | 3955152 | +| clock\_nanosleep\_ms | 3907653 | +| clock\_nanosleep\_msr | 3952952 | +| clock\_nanosleep\_r | 3941152 | +| clock\_nanosleep\_s | 3959152 | +| clock\_nanosleep\_sr | 3948429 | +| close\_bad | 2060 | +| close\_tmp | 9446 | +| close\_zero | 9811 | +| conn\_connect | 288127 | +| dup | 2494 | +| exec | 15117953 | +| execw | 15233290 | +| execw\_100r | 35259847 | +| execw\_1024n | 42360020 | +| execw\_10r | 17519613 | +| execw\_128n | 18388675 | +| execw\_128nt | 232297628 | +| execw\_128ntv | 12081679 | +| execw\_1r | 15681701 | +| execw\_256n | 21608771 | +| execw\_32n | 16155174 | +| execw\_32nt | 222363356 | +| execw\_32ntv | 11953532 | +| execw\_512n | 28275839 | +| execw\_64n | 16918033 | +| execw\_64nt | 223955224 | +| execw\_64ntv | 12266118 | +| exit\_100 | 881262 | +| exit\_100\_nolibc | 644250 | +| exp | 1683 | +| exp10 | 2569 | +| exp10f | 785 | +| exp10l | 21935 | +| exp2 | 909 | +| exp2f | 526 | +| exp2l | 10942 | +| expf | 780 | +| expl | 10293 | +| fcntl\_ndelay | 11639 | +| fcntl\_tmp | 2313 | +| file\_lock | 161893 | +| fork\_100 | 2705431 | +| getcontext | 12373 | +| getenv | 439 | +| getpeername | 32433 | +| getpid | 2517 | +| getpid\_s | 1897 | +| getrusage | 25122 | +| getsockname | 33109 | +| gettimeofday | 3648 | +| isatty\_no | 6217 | +| isatty\_no\_badfd | 2036 | +| isatty\_yes | 44922 | +| listen | 4690 | +| localtime\_r | 998 | +| log | 1241 | +| log10 | 1608 | +| log10f | 1004 | +| log10l | 12401 | +| log2 | 1323 | +| log2f | 781 | +| log2l | 192767 | +| logf | 779 | +| logl | 11439 | +| longjmp | 130 | +| lrand48 | 1862 | +| lseek\_t8k | 2148 | +| malloc\_10 | 260 | +| malloc\_100 | 254 | +| malloc\_100k | 133846 | +| malloc\_10k | 636 | +| malloc\_1k | 350 | +| memcpy\_10 | 82 | +| memcpy\_10k | 2433 | +| memcpy\_10m | 4274556 | +| memcpy\_1k | 371 | +| memcpy\_1m | 252256 | +| memmove\_10 | 82 | +| memmove\_10k | 4884 | +| memmove\_10m | 3146860 | +| memmove\_1k | 365 | +| memmove\_1m | 265756 | +| memrand | 55353276 | +| memrand\_128k | 48278 | +| memrand\_16k | 5943 | +| memrand\_16m | 8283078 | +| memrand\_1k | 373 | +| memrand\_1m | 390733 | +| memrand\_256k | 96207 | +| memrand\_2k | 95897 | +| memrand\_2m | 816281 | +| memrand\_32k | 1192878 | +| memrand\_32m | 661074461 | +| memrand\_4k | 78539 | +| memrand\_4m | 1772886 | +| memrand\_512k | 11470535 | +| memrand\_64k | 23628 | +| memrand\_64m | 31898334 | +| memrand\_8k | 3031 | +| memrand\_8m | 3312286 | +| memset\_10 | 54 | +| memset\_10k | 1396 | +| memset\_10m | 2994457 | +| memset\_1k | 177 | +| memset\_1m | 153277 | +| memset\_256 | 185 | +| memset\_256\_u | 98 | +| memset\_4k | 624 | +| memset\_4k\_uc | 879 | +| mktime | 113912 | +| mmap\_a128k | 59927 | +| mmap\_a8k | 61986 | +| mmap\_ra128k | 722800 | +| mmap\_ra8k | 165121 | +| mmap\_rt128k | 1163371 | +| mmap\_rt8k | 249957 | +| mmap\_rz128k | 738171 | +| mmap\_rz8k | 203993 | +| mmap\_t128k | 97652 | +| mmap\_t8k | 96908 | +| mmap\_wa128k | 1680170 | +| mmap\_wa8k | 261424 | +| mmap\_wt128k | 2007671 | +| mmap\_wt8k | 311290 | +| mmap\_wz128k | 2002371 | +| mmap\_wz8k | 311724 | +| mmap\_z128k | 102086 | +| mmap\_z8k | 101052 | +| mprot\_tw128k | 344466 | +| mprot\_tw4m | 574404 | +| mprot\_twz8k | 330209 | +| mprot\_wz128k | 332847 | +| mprot\_wz8k | 332748 | +| mprot\_z128k | 119517 | +| mprot\_z8k | 120054 | +| msync\_rait128k | 37080 | +| msync\_rait8k | 2853 | +| msync\_rat128k | 13105 | +| msync\_rat8k | 2716 | +| msync\_rit128k | 3131 | +| msync\_rit8k | 5651 | +| msync\_rt128k | 24778 | +| msync\_rt8k | 9362 | +| msync\_t128k | 4693 | +| msync\_t8k | 2625 | +| msync\_ta128k | 2636 | +| msync\_ta8k | 2572 | +| msync\_tai128k | 2644 | +| msync\_tai8k | 4146 | +| msync\_ti128k | 2662 | +| msync\_ti8k | 5482 | +| msync\_wait128k | 3102 | +| msync\_wait8k | 7133 | +| msync\_wat128k | 3184 | +| msync\_wat8k | 6931 | +| msync\_wit128k | 3081 | +| msync\_wit8k | 2740 | +| msync\_wt128k | 3223 | +| msync\_wt8k | 2881 | +| mutex\_mt | 144 | +| mutex\_mts | 4911 | +| mutex\_st | 122 | +| mutex\_sts | 9202 | +| nanosleep | 2485481 | +| nanosleep\_d10 | 3953472 | +| nanosleep\_d100 | 3951271 | +| nanosleep\_d1000 | 2210572 | +| nanosleep\_r | 3954572 | +| nanosleep\_rs | 3958472 | +| nanosleep\_s | 3949971 | +| open\_tmp | 204593 | +| open\_zero | 151445 | +| pipe\_fmp1 | 283924 | +| pipe\_fmp4k | 286191 | +| pipe\_fmt1 | 296691 | +| pipe\_fmt4k | 301236 | +| pipe\_fst1 | 57461 | +| pipe\_fst4k | 66462 | +| pipe\_pmp1 | 284091 | +| pipe\_pmp4k | 288691 | +| pipe\_pmt1 | 289157 | +| pipe\_pmt4k | 310286 | +| pipe\_pst1 | 58523 | +| pipe\_pst4k | 61311 | +| pipe\_smp1 | 556072 | +| pipe\_smp4k | 637372 | +| pipe\_smt1 | 559272 | +| pipe\_smt4k | 666272 | +| pipe\_sst1 | 136512 | +| pipe\_sst4k | 160314 | +| pipe\_tmp1 | 953071 | +| pipe\_tmp4k | 975071 | +| pipe\_tmt1 | 960072 | +| pipe\_tmt4k | 1034171 | +| pipe\_tst1 | 380186 | +| pipe\_tst4k | 356372 | +| poll\_10 | 83988 | +| poll\_100 | 519072 | +| poll\_1000 | 5216371 | +| poll\_w10 | 72498 | +| poll\_w100 | 509572 | +| poll\_w1000 | 5013471 | +| posix\_spawn | 12963869 | +| posix\_spawn\_100r | 13191269 | +| posix\_spawn\_1024n | 13134069 | +| posix\_spawn\_10r | 13144269 | +| posix\_spawn\_128n | 13085869 | +| posix\_spawn\_128nt | 12906769 | +| posix\_spawn\_1r | 13136769 | +| posix\_spawn\_256n | 13131070 | +| posix\_spawn\_32n | 13005269 | +| posix\_spawn\_32nt | 12999870 | +| posix\_spawn\_512n | 13160469 | +| posix\_spawn\_64n | 12929869 | +| posix\_spawn\_64nt | 12952769 | +| pread\_t100k | 376036 | +| pread\_t10k | 57898 | +| pread\_t1k | 28081 | +| pread\_z100k | 213193 | +| pread\_z10k | 36649 | +| pread\_z1k | 21102 | +| pread\_zw100k | 266057 | +| pthread\_128 | 1835678 | +| pthread\_256 | 1922939 | +| pthread\_32 | 1670064 | +| pthread\_512 | 1821556 | +| pthread\_64 | 1684684 | +| pwrite\_n100k | 2793 | +| pwrite\_n10k | 2727 | +| pwrite\_n1k | 2773 | +| pwrite\_t100k | 731172 | +| pwrite\_t10k | 100052 | +| pwrite\_t1k | 41307 | +| read\_t100k | 344686 | +| read\_t10k | 151712 | +| read\_t1k | 88197 | +| read\_z100k | 204443 | +| read\_z10k | 36966 | +| read\_z1k | 21061 | +| read\_zw100k | 215393 | +| realpath\_tmp | 956172 | +| realpath\_usr | 1035272 | +| recurse | 51762 | +| recurse\_10k | 2074771 | +| recurse\_1k | 79473 | +| scasecmp\_10 | 116 | +| scasecmp\_1k | 5757 | +| sched\_yield | 4604 | +| sched\_yield\_s | 4520 | +| select\_10 | 40977 | +| select\_100 | 113609 | +| select\_1000 | 710972 | +| select\_w10 | 53543 | +| select\_w100 | 99875 | +| select\_w1000 | 587971 | +| semop | 43232 | +| setcontext | 13034 | +| setsockopt | 24662 | +| sigaction | 22165 | +| siglongjmp | 14707 | +| signal | 176707 | +| sigprocmask | 22645 | +| socket\_i | 91494 | +| socket\_u | 91335 | +| socketpair | 255926 | +| stat\_tmp | 173754 | +| strchr\_10 | 84 | +| strchr\_1k | 2039 | +| strcmp\_10 | 82 | +| strcmp\_1k | 476 | +| strcpy\_10 | 101 | +| strcpy\_1k | 51204 | +| strftime | 4184 | +| strlen\_10 | 57 | +| strlen\_1k | 313 | +| strtol | 123 | +| system | 81260954 | +| time | 160 | +| times | 23091 | +| unmap\_a128k | 155834 | +| unmap\_a8k | 154014 | +| unmap\_ra128k | 341236 | +| unmap\_ra8k | 318486 | +| unmap\_rt128k | 348286 | +| unmap\_rt8k | 302336 | +| unmap\_rz128k | 381024 | +| unmap\_rz8k | 283857 | +| unmap\_t128k | 58877 | +| unmap\_t8k | 64734 | +| unmap\_wa128k | 477086 | +| unmap\_wa8k | 388686 | +| unmap\_wt128k | 458086 | +| unmap\_wt8k | 340536 | +| unmap\_wz128k | 464186 | +| unmap\_wz8k | 340986 | +| unmap\_z128k | 59748 | +| unmap\_z8k | 58011 | +| usleep | 2442472 | +| usleep\_d10 | 3956771 | +| usleep\_d100 | 3954171 | +| write\_n100k | 2793 | +| write\_n10k | 4718 | +| write\_n1k | 2731 | +| write\_t100k | 735172 | +| write\_t10k | 100063 | +| write\_t1k | 41868 | +| writev\_n100k | 123754 | +| writev\_n10k | 122825 | +| writev\_n1k | 127825 | +| writev\_t100k | 7377804 | +| writev\_t10k | 925076 | +| writev\_t1k | 287292 | diff --git a/Round5/BasicTest/performance/libMicro/src/processor.py b/Round5/BasicTest/performance/libMicro/src/processor.py new file mode 100755 index 0000000000000000000000000000000000000000..5b0a10182a12cc8e87157263e294fa22c9e5ed3a --- /dev/null +++ b/Round5/BasicTest/performance/libMicro/src/processor.py @@ -0,0 +1,32 @@ +import re +import sys +import os + +fin = open(sys.argv[1], encoding="UTF-8") +fout = open(os.path.splitext(os.path.split(sys.argv[1])[1])[0] + ".csv", "w") +startline = re.compile( + r"(\s*)prc(\s*)thr(\s*)nsecs/call(\s*)samples(\s*)errors cnt/samp" +) +resline = re.compile(r"(\w+)\s+\d+\s+\d+\s+([\d.]+)\s+\d+\s+\d+\s+\d+") +fout.write("测试类型,测试结果\n") +line = fin.readline() + +startline_match_count = 0 +resline_match_count = 0 + +while line: + matchObj = startline.match(line) + if matchObj: + startline_match_count += 1 + # fout.writelines([matchObj.group(1),",",matchObj.group(2),","]) + line = fin.readline() + matchObj = resline.match(line) + if matchObj: + resline_match_count += 1 + fout.writelines([matchObj.group(1), ",", matchObj.group(2), "\n"]) + line = fin.readline() +fin.close() +fout.close() + +print("startline_match_count", startline_match_count) +print("resline_match_count", resline_match_count) diff --git a/Round5/BasicTest/performance/stream/README.md b/Round5/BasicTest/performance/stream/README.md new file mode 100755 index 0000000000000000000000000000000000000000..c845affa490b55bec2055a3a6a22dc82fc189547 --- /dev/null +++ b/Round5/BasicTest/performance/stream/README.md @@ -0,0 +1,14 @@ +# stream + +stream 是通过对数组的 copy,scale,add,triad 操作来测试 CPU 的内存访问带宽和浮点运算能力。Copy 为最简单的操作,即从一个内存单元中读取一个数,并复制到另一个内存单元,有 2 次访存操作。Scale 是乘法操作,从一个内存单元中读取一个数,与常数 Scale 相乘,得到的结果写入另一个内存单元,有 2 次访存。Add 是加法操作,从两个内存单元中分别读取两个数,将其进行加法操作,得到的结果写入另一个内存单元中,有 2 次读和 1 次写共 3 次访存。Triad 是前面三种的结合,先从内存中读取一个数,与 scale 相乘得到一个乘积,然后从一个内存单元中读取一个数与之前的乘积相加,得到的结果再写入内存,所以,有 2 次读和 1 次写共三次访存操作。 + +## 文件树 + +```txt +stream +├── log +│   └── stream.log +├── method.md #测试方法 +├── README.md #测试说明 +└── result.md #测试结果 +``` diff --git a/Round5/BasicTest/performance/log/stream.log b/Round5/BasicTest/performance/stream/log/stream.log similarity index 95% rename from Round5/BasicTest/performance/log/stream.log rename to Round5/BasicTest/performance/stream/log/stream.log index 746b01f7a26126a4395d52d5ae523069bf909c3e..6af0c95131c81f6e8369207523c19b39d715333f 100644 --- a/Round5/BasicTest/performance/log/stream.log +++ b/Round5/BasicTest/performance/stream/log/stream.log @@ -1,4 +1,3 @@ -[root@openeuler STREAM]# ./stream_c.exe ------------------------------------------------------------- STREAM version $Revision: 5.10 $ ------------------------------------------------------------- diff --git a/Round5/BasicTest/performance/stream/method.md b/Round5/BasicTest/performance/stream/method.md new file mode 100755 index 0000000000000000000000000000000000000000..c1b4c8630440f5b636882af274ede3d98c366187 --- /dev/null +++ b/Round5/BasicTest/performance/stream/method.md @@ -0,0 +1,13 @@ +## 测试方法 + +执行: + +```bash +git clone https://gitee.com/thesamename/STREAM.git +cd STREAM +sudo dnf install -y gcc gfortran +sed -i "s/CC =.*/CC = gcc/" Makefile +sed -i "s/FC =.*/FC = gfortran/" Makefile +make +./stream_c.exe +``` \ No newline at end of file diff --git a/Round5/BasicTest/performance/stream/result.md b/Round5/BasicTest/performance/stream/result.md new file mode 100755 index 0000000000000000000000000000000000000000..1dbfc36dda3a36dd65072e8d6def790a3f24638c --- /dev/null +++ b/Round5/BasicTest/performance/stream/result.md @@ -0,0 +1,54 @@ +# stream 测试报告 + +## 概述 + +stream 是通过对数组的 copy,scale,add,triad 操作来测试 CPU 的内存访问带宽和浮点运算能力。Copy 为最简单的操作,即从一个内存单元中读取一个数,并复制到另一个内存单元,有 2 次访存操作。Scale 是乘法操作,从一个内存单元中读取一个数,与常数 Scale 相乘,得到的结果写入另一个内存单元,有 2 次访存。Add 是加法操作,从两个内存单元中分别读取两个数,将其进行加法操作,得到的结果写入另一个内存单元中,有 2 次读和 1 次写共 3 次访存。Triad 是前面三种的结合,先从内存中读取一个数,与 scale 相乘得到一个乘积,然后从一个内存单元中读取一个数与之前的乘积相加,得到的结果再写入内存,所以,有 2 次读和 1 次写共三次访存操作。 + +## 测试环境 + +- 发行版版本:openEuler 23.09 RISC-V testing RC4 +- 内核版本:6.4.0 +- 虚拟机版本:QEMU 8.0.2 + +## 测试方法 + +见 [method.md](./method.md) + +## 测试结果 + +测试通过。QEMU 结果如下。 + +```txt------------------------------------------------------------- +STREAM version $Revision: 5.10 $ +------------------------------------------------------------- +This system uses 8 bytes per array element. +------------------------------------------------------------- +Array size = 10000000 (elements), Offset = 0 (elements) +Memory per array = 76.3 MiB (= 0.1 GiB). +Total memory required = 228.9 MiB (= 0.2 GiB). +Each kernel will be executed 10 times. + The *best* time for each kernel (excluding the first iteration) + will be used to compute the reported bandwidth. +------------------------------------------------------------- +Number of Threads requested = 4 +Number of Threads counted = 4 +------------------------------------------------------------- +Your clock granularity/precision appears to be 1 microseconds. +Each test below will take on the order of 69911 microseconds. + (= 69911 clock ticks) +Increase the size of the arrays if this shows that +you are not getting at least 20 clock ticks per test. +------------------------------------------------------------- +WARNING -- The above is only a rough guideline. +For best results, please be sure you know the +precision of your system timer. +------------------------------------------------------------- +Function Best Rate MB/s Avg time Min time Max time +Copy: 13540.9 0.012536 0.011816 0.013200 +Scale: 3638.8 0.045413 0.043971 0.048376 +Add: 4373.3 0.057630 0.054878 0.061684 +Triad: 874.0 0.280158 0.274607 0.291367 +------------------------------------------------------------- +Solution Validates: avg error less than 1.000000e-13 on all three arrays +------------------------------------------------------------- +``` diff --git a/Round5/BasicTest/performance/unixbench/README.md b/Round5/BasicTest/performance/unixbench/README.md new file mode 100755 index 0000000000000000000000000000000000000000..3f0480c6f4dbdae0b5779facc81546f32943806f --- /dev/null +++ b/Round5/BasicTest/performance/unixbench/README.md @@ -0,0 +1,19 @@ +# unixbench + +Unixbench 是一个类 unix 系统下的开源性能测试工具,被广泛用于测试 Linux 系统主机的综合性能,测试结果不仅依赖硬件配置(CPU/内存/硬盘),还取决于操作系统、库甚至编译器的差异。既可以评估单进程性能,也可以评估多进程性能。 + +## 与上游测试方式不同之处 + +- `unixbench` 直接拉取 GitHub 主线最新源码。 +- 未修改最大线程数。 + +## 文件树 + +```txt +unixbench +├── log +│   └── unixbench.log +├── method.md #测试方法 +├── README.md #测试说明 +└── result.md #测试结果 +``` diff --git a/Round5/BasicTest/performance/log/unixbench.log b/Round5/BasicTest/performance/unixbench/log/unixbench.log similarity index 100% rename from Round5/BasicTest/performance/log/unixbench.log rename to Round5/BasicTest/performance/unixbench/log/unixbench.log diff --git a/Round5/BasicTest/performance/unixbench/method.md b/Round5/BasicTest/performance/unixbench/method.md new file mode 100755 index 0000000000000000000000000000000000000000..711802a9c8103a15c482c4c5805ea048325942ed --- /dev/null +++ b/Round5/BasicTest/performance/unixbench/method.md @@ -0,0 +1,10 @@ +# 测试方法 + +执行: + +```bash +git clone https://github.com/kdlucas/byte-unixbench +cd byte-unixbench/UnixBench +make -j$(nproc) +./Run -c $(nproc) +``` diff --git a/Round5/BasicTest/performance/unixbench/result.md b/Round5/BasicTest/performance/unixbench/result.md new file mode 100755 index 0000000000000000000000000000000000000000..f3da661f10c009b0b0ce655f494ca53227b2b251 --- /dev/null +++ b/Round5/BasicTest/performance/unixbench/result.md @@ -0,0 +1,70 @@ +# UnixBench 测试报告 + +## 概述 + +Unixbench 是一个类 unix 系统下的开源性能测试工具,被广泛用于测试 Linux 系统主机的综合性能,测试结果不仅依赖硬件配置(CPU/内存/硬盘),还取决于操作系统、库甚至编译器的差异。既可以评估单进程性能,也可以评估多进程性能。 + +## 测试环境 + +- 发行版版本:openEuler 23.09 RISC-V testing RC4 +- 内核版本:6.4.0 +- 虚拟机版本:QEMU 8.0.2 + +## 测试方法 + +见 [method.md](./method.md) + +### 与上游测试方式不同之处 + +- `unixbench` 直接拉取 GitHub 主线最新源码。 +- 未修改最大线程数。 + +## 测试结果 + +测试通过。测试结果详见 [log](./log) 目录下的日志文件。 + +QEMU 平台的详细测试结果如下: + +```txt +======================================================================== + BYTE UNIX Benchmarks (Version 5.1.3) + + System: openeuler: GNU/Linux + OS: GNU/Linux -- 6.4.0-10.1.0.20.oe2309.riscv64 -- #1 SMP Sat Oct 7 06:19:28 UTC 2023 + Machine: riscv64 (riscv64) + Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8") + 22:45:16 up 41 min, 1 user, load average: 1.55, 0.64, 0.62; runlevel 2023-10-10 + +------------------------------------------------------------------------ +Benchmark Run: Tue Oct 10 2023 22:45:17 - 23:15:13 +4 CPUs in system; running 4 parallel copies of tests + +Dhrystone 2 using register variables 8043208.4 lps (10.2 s, 7 samples) +Double-Precision Whetstone 283.2 MWIPS (9.2 s, 7 samples) +Execl Throughput 52.3 lps (29.9 s, 2 samples) +File Copy 1024 bufsize 2000 maxblocks 26589.1 KBps (30.0 s, 2 samples) +File Copy 256 bufsize 500 maxblocks 7676.1 KBps (30.0 s, 2 samples) +File Copy 4096 bufsize 8000 maxblocks 78912.7 KBps (30.0 s, 2 samples) +Pipe Throughput 34760.0 lps (10.3 s, 7 samples) +Pipe-based Context Switching 6028.5 lps (10.4 s, 7 samples) +Process Creation 132.1 lps (30.4 s, 2 samples) +Shell Scripts (1 concurrent) 119.5 lpm (61.0 s, 2 samples) +Shell Scripts (8 concurrent) 21.1 lpm (65.5 s, 2 samples) +System Call Overhead 160542.9 lps (10.3 s, 7 samples) + +System Benchmarks Index Values BASELINE RESULT INDEX +Dhrystone 2 using register variables 116700.0 8043208.4 689.2 +Double-Precision Whetstone 55.0 283.2 51.5 +Execl Throughput 43.0 52.3 12.2 +File Copy 1024 bufsize 2000 maxblocks 3960.0 26589.1 67.1 +File Copy 256 bufsize 500 maxblocks 1655.0 7676.1 46.4 +File Copy 4096 bufsize 8000 maxblocks 5800.0 78912.7 136.1 +Pipe Throughput 12440.0 34760.0 27.9 +Pipe-based Context Switching 4000.0 6028.5 15.1 +Process Creation 126.0 132.1 10.5 +Shell Scripts (1 concurrent) 42.4 119.5 28.2 +Shell Scripts (8 concurrent) 6.0 21.1 35.1 +System Call Overhead 15000.0 160542.9 107.0 + ======== +System Benchmarks Index Score 45.8 +```