Sometimes the results of a performance analysis may depend on the computers used and/or specific features of software/libraries. In such cases it is extremely important to describe the experimental/simulation set up in details. It enables others to repeat those experiments as well as check whether the results are rigorous, statistically sound, and unbiased. Unfortunately, "Simulation Setup" is the shortest section in many research papers where authors try to save space by cutting down as much as details.
Here are some tips on what to include (in addition to describing the experimental/simulation setup) based on my experiences:
Type of Simulation
Type of Simulation
- Are the results based on Experimentation, Emulation, or Simulation? If simulations also mention further details like whether it is Discrete Event, Montacarlo, Stochastic, or Deterministic simulation.
- Are the results for Steady, Dynamic, Starting/ramp-up, or Terminating state(s)?
Number of Experiments/Simulations
- No of samples
- Sampling methods
- Confidence intervals, accuracy levels
- Random number generation, whether a different seed is used for every run, what seeds were used (particularly if you use a widely available simulator/emulator)
- CPU - Clock speed, no of cores, cache sizes, CPU model (specific model no in addition to saying, e.g., Intel I7, Xeon, Itanium or AMD Opteron), and special instructions used (e.g., MMX, SSE, AVX)
- Memory - capacity, speed
- Accelerators used, e.g., GPUs or Intel Phi (only when they have an impact)
- Sensors and actuators attached (only when they have an impact)
- Operating system - type, version, special features, other services that were running, load on the node, performance enhancements/optimizations
- Network connections - link speed, type of connection (e.g., Ethernet, WiFi, Bluetooth, ADSL, Dial-up, T1, 3G, HSPA+, 4G, etc.), latency, intermediate nodes (firewalls, proxies), etc. (only when they have an impact)
- Cluster setup - interconnection network (e.g., ring, torus, mesh), type of connections (e.g., Ethernet or Infiniband) (only when they have an impact)
- A detailed list of tools used, e.g., math libraries, topology generators, workload generators, etc.
- Their version numbers, what specific features/options were enabled/disabled
- Specific parameters, e.g., packet/workload generation model, packet loss rate, packet size, inter-packet gap, job arrival time distribution, probability that one node connects to another, node churn rate, etc.
- Compiler and compiler options, e.g., gcc, g++, Intel compilers, with/without optimizations, special flags
- Cluster middleware (only when they have an impact)