Benchmarks

The benchmark script scripts/benchmark-hoomd.py runs a suite of I/O benchmarks that measure the time it takes to write a file, read frames sequentially, and read frames randomly. This script only runs on linux and requires that the user have no-password sudo access (set this only temporarily). It flushes filesystem buffers and clears the cache to provide accurate timings. It is representative of typical use cases, storing position and orientation in a hoomd schema GSD file at each frame. The benchmark runs at fixed file sizes with varying N (and varying number of frames) in order to test small block and large block I/O.

SSD

Samsung SSD 840 EVO 120GB

Size

N

Open (ms)

Write (MB/s)

Read (MB/s)

Random (MB/s)

Random (ms)

128 MiB

32^2

2.063

45.23

64.77

50.13

0.545

128 MiB

128^2

1.091

175

304.1

226.3

1.93

128 MiB

1024^2

15.56

177.7

366.2

463.8

60.4

1 GiB

32^2

3.119

54.15

73.57

35.79

0.764

1 GiB

128^2

1.703

227

305.2

188.3

2.32

1 GiB

1024^2

8.414

175.8

425.5

474.5

59

16 GiB

32^2

5.401

58.3

70.02

26.22

1.04

16 GiB

128^2

5.286

134.5

330.7

152.4

2.87

16 GiB

1024^2

8.054

130

406.7

465.5

60.1

NFS

10Gb Ethernet connection (Intel X520) through several 10Gb switches into a 100Gb campus backbone into a modern multi-petabyte Isilon fileserver, mounted with NFSv3.

Size

N

Open (ms)

Write (MB/s)

Read (MB/s)

Random (MB/s)

Random (ms)

128 MiB

32^2

16.34

42.24

84.79

39.24

0.697

128 MiB

128^2

11.14

172.2

192.6

142.7

3.07

128 MiB

1024^2

10.16

163.5

161.1

186.3

150

1 GiB

32^2

18.54

56.64

76.98

18.41

1.49

1 GiB

128^2

10.93

227.6

197.1

70.84

6.18

1 GiB

1024^2

17.35

253.5

166.8

155.6

180

128 GiB

32^2

146.9

55.34

75.62

2.111

13

128 GiB

128^2

29.95

265.3

353.5

27.03

16.2

128 GiB

1024^2

34.83

319.3

225.9

116.7

240

HDD

RAID 1 (mdadm) on two ST3000NM0033-9ZM178 drives.

Size

N

Open (ms)

Write (MB/s)

Read (MB/s)

Random (MB/s)

Random (ms)

128 MiB

32^2

36.43

12.92

59

11.63

2.35

128 MiB

128^2

29.68

72.22

175.5

48.23

9.07

128 MiB

1024^2

10.82

94.69

161.7

167.6

167

1 GiB

32^2

52.85

43.03

59.43

4.943

5.53

1 GiB

128^2

24.22

115.5

174

33.65

13

1 GiB

1024^2

31.61

123.6

153.7

151.8

184

128 GiB

32^2

113.3

46.26

58.36

2.085

13.1

128 GiB

128^2

90.05

141.8

146.6

21.82

20

128 GiB

1024^2

51.49

139.4

139.6

140.8

199