coNCePTuaL 1.4

A network correctness and performance testing language.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!

What's new in coNCePTuaL 1.4:

  • The language now supports list comprehensions and tagged message receives.
  • The dot_ast backend includes a new --compress option to draw a program's AST with "uninteresting" nodes elided.
  • Two new performance benchmarks are included in the distribution.
  • The median absolute deviation has been added to the set of statistics that can be gathered.
Read full changelog
send us
an update
BSD License 
2.2/5 21
Scott Pakin
ROOT \ System \ Benchmarks
coNCePTuaL software is a tool designed to facilitate rapidly generating programs that measure the performance and/or test the correctness of networks and network protocol layers.

coNCePTuaL centers around a simple, domain-specific progamming-language; a few lines of coNCePTuaL code can produce programs that would take significantly more effort to write in a conventional programming language.

One of coNCePTuaL's goals is to raise network benchmarking from an art to a science. To that end, coNCePTuaL programs log not only measurement data but also a wealth of information about the experimental setup, making it easy for someone else to reproduce your performance tests.


numreps is "Number of repetitions" and comes from "--reps" or "-r" with default 100.

For numreps repetitions plus 2 warmup repetitions {
task 0 resets its counters then
task 0 sends a 1 megabyte message to task 1 then
task 1 sends a 1 megabyte message to task 0 then
task 0 logs elapsed_usecs/2 as "One-way latency (us)" and
the median of (total_bytes/elapsed_usecs)*1E6/1M as "Bandwidth (MB/s)"

The data is stored in an easy-to-parse comma-separated value (CSV) format with the first row of column headers taken right from the program. The second row of headers indicates how the data in each column were aggregated.

What's important, however, is all of the other information in the log file. coNCePTuaL log files are intended to function as a laboratory notebook, including not only the results of an experiment but also a precise description of the setup that led to those results. How many processors are in my system? How fast are they? What compiler and compiler options were used to compile simple? What command-line parameters were passed to the program? It's all in the log file.

The log files also lists the complete program source code so there's no ambiguity about what was measured. You can look at a coNCePTuaL log file a year in the future and still know exactly what the measurements represent´┐Ża lot more useful than a performance test which spits out only 397.2 and requires you to recall what that refers to.

Last updated on January 12th, 2012

#network correctness #performance testing #coNCePTuaL #network #correctness #performance

Add your review!