HomePublicationsSoftwareProfessionalFamilyRanch
C++ 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.
  FreeBSD Version Windows Version