documentation:performance
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| documentation:performance [16:43 15.11.2013] – [Benchmark models] Walter | documentation:performance [20:25 18.02.2014] (current) – [Hardware] Walter | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~NOTOC~~ | + | ===== Performance and scalability ===== |
| - | + | ||
| - | ===== Introduction: | + | |
| The performance and scalability of simulations in Morpheus heavily depend on the type of (multi-scale) model that is being simulated. It is therefore difficult to make general statements on the computational efficiency. However, we can test the performance on a set of " | The performance and scalability of simulations in Morpheus heavily depend on the type of (multi-scale) model that is being simulated. It is therefore difficult to make general statements on the computational efficiency. However, we can test the performance on a set of " | ||
| - | We have tested the performance of ODE lattices, reaction-diffusion (PDE) models | + | We have tested the performance of ODE lattices, reaction-diffusion (PDE) models, cellular Potts models |
| - | === Performance measurements === | + | ==== Performance measurements |
| To quantify performance, | To quantify performance, | ||
| - | * **Execution time** in terms of the ([[http:// | + | * **Execution time** in terms of the [[http:// |
| * **Memory usage** in terms of the physical memory (RAM) used by the simulation, using the resident set size (RSS) from the ''/ | * **Memory usage** in terms of the physical memory (RAM) used by the simulation, using the resident set size (RSS) from the ''/ | ||
| - | === Scaling | + | ==== Scalability |
| - | We investigated the scalability with respect to problem size to see how performance in terms of the execution time ([[http:// | + | We investigated the scalability with respect to problem size to see how performance in terms of the execution time and memory usage (RAM) scales with increasing population size or lattice size. |
| We calculate and plotted both the execution time and memory usage in: | We calculate and plotted both the execution time and memory usage in: | ||
| - | * **Absolute** terms: | + | * **Absolute** terms: time in seconds (sec) and memory in megabytes (MB). |
| - | * **Relative** terms: | + | * **Relative** terms: time / memory per cell/lattice site in millisecond (msec) |
| Performance in absolute sense provides a sense of the problems sizes that are practically manageable within certain time and memory constraints. | Performance in absolute sense provides a sense of the problems sizes that are practically manageable within certain time and memory constraints. | ||
| Line 26: | Line 24: | ||
| Performance in relative sense shows the scalability of the simulation for problem sizes. Ideally, the performance per cell or lattice site stays constant or decreases with increasing problem sizes. | Performance in relative sense shows the scalability of the simulation for problem sizes. Ideally, the performance per cell or lattice site stays constant or decreases with increasing problem sizes. | ||
| - | === Scalability of multi-threading | + | ==== |
| We have also measured the scalability with respect to the number of openMP threads to see how the performance scale with the number of concurrent threads. | We have also measured the scalability with respect to the number of openMP threads to see how the performance scale with the number of concurrent threads. | ||
| - | We measured the execution time ([[http:// | + | We measured the execution time for each of the simulation run on in 1, 2, 4, 6 threads. Comparison of these execution times shows the speed-ups that can be achieved by adding concurrent threads. |
| ----- | ----- | ||
| Line 36: | Line 34: | ||
| ===== Methods ===== | ===== Methods ===== | ||
| - | === Benchmark models === | + | ==== Benchmark models |
| The models used in performance tests are available as [[examples: | The models used in performance tests are available as [[examples: | ||
| Line 45: | Line 43: | ||
| The models are run without analysis and visualization tools and execution time is measured from '' | The models are run without analysis and visualization tools and execution time is measured from '' | ||
| - | === Hardware === | ||
| - | All simulations were performed on a [[http:// | + | ==== Hardware ==== |
| - | ++++ Hardware specification | | + | |
| + | All simulations were performed on a [[http:// | ||
| | # of Cores | 4 | | | # of Cores | 4 | | ||
| | # of Threads | 8 (hyperthreading) | | | # of Threads | 8 (hyperthreading) | | ||
| Line 59: | Line 57: | ||
| ===== Results ===== | ===== Results ===== | ||
| + | ==== Benchmark tests ==== | ||
| ^ ODE | {{: | ^ ODE | {{: | ||
| | Cells | 25 | 100 | 400 | 2500 | 10000 | 40000 | | | Cells | 25 | 100 | 400 | 2500 | 10000 | 40000 | | ||
| Line 69: | Line 68: | ||
| | Cells | 8 | 50 | 200 | 800 | 5000 | | | Cells | 8 | 50 | 200 | 800 | 5000 | | ||
| + | ----- | ||
| + | ==== Performance statistics ==== | ||
| ^ ^ Problem size \\ (absolute) ^ Problem size \\ (relative) ^ ^ Multi-threading ^ | ^ ^ Problem size \\ (absolute) ^ Problem size \\ (relative) ^ ^ Multi-threading ^ | ||
| Line 76: | Line 77: | ||
| ^ CPM \\ {{: | ^ CPM \\ {{: | ||
| ^ CPM + PDE \\ {{: | ^ CPM + PDE \\ {{: | ||
| + | |||
documentation/performance.1384530231.txt.gz · Last modified: 16:43 15.11.2013 by Walter