     
 |
I write a lot of software in my spare time, a
small portion of which will be posted here. Only those projects
that I find most interesting will be posted. Note that I make no
effort to ensure that this software will compile on any platform
other than my own. The software below will be dependent only on
the Boost libraries (most of which are on the standards track
for C++), unless otherwise stated.
| Throughput |
| |
This software models the throughput of a
single queue with multiple producer and consumer
threads. As the number of producer and consumer
threads are varied (independently), performance
is measured and recorded. The threads themselves
execute both work and I/O, based on normal (or
gaussian) distributions (that is, on each
iteration, each thread is given an amount of
work and I/O to perform, with the acutal amounts
coming from a normally distributed random
variable). The parameters of all distributions
are controllable via a configuration file. The
results of the test are then sent to GNU plot,
for a graphical view. This program outputs a
detailed profile file, that shows exactly where
each thread spent its time. Obviously, this
software depends on GNU plot (and, as stated
above, Boost). It is very interesting to see the
differences in throughput when this code is
executed on a multi-core vs. a single core
processor. Finally, thanks to the boost library,
the same code executes on both windows and
FreeBSD. The tarballs below contain identical
code, but makefiles specific to the platform.
The tarballs also contain a configuration file,
and three output files.
|
|
|
|