Memory bandwidth benchmark
mbw [options]arraysize_in_MiB
mbw determines available memory bandwidth by copying large arrays of data in memory.
Quiet; suppress informational messages.
Suppress printing the average of each test.
Select number of loops per test
Select tests to be run. If no -t parameters are given the default is to run all tests. -t0: memcpy() test, -t1: dumb (b[i]=a[i] style) test, -t2: memcpy() with arbitrary block size
Block size in bytes for -t2.
Show quick help.
mbw will allocate two arraysize arrays in memory and copy one to the other. Reported 'bandwidth' is the amount of data copied over the time this operation took.
Obviously mbw needs twice arraysize MiBytes (1024*1024 bytes) of physical memory - you'd better switch off swap or otherwise make sure no paging occurs. Needless to say that it should not be run on a busy system.
Multiple thread support. Better configurability, including using getopt() for parsing arguments.