### Making a timer dummy cell for benchmarking

Posted:

**Thu Jun 07, 2018 10:02 am**I would like to make a special "artificial cell" for benchmarking the spike/event delivery subsystems in simulators.

The artificial cell takes two parameters:

1. spike frequency: used to generate a poisson sequence of spikes

2. integration speed: describes how quickly a cell is updated relative to real time. i.e.

a value of 1 means one cell operates at real time, and a value of 10 means that one

cell can be integrated 10 times faster than real time.

This type of cell would make it easy to write benchmarks that investigate strong/weak scaling of

models with user-supplied spiking rates and cell overheads.

How would you go about implementing the second feature, i.e. setting the integration speed?

I can imagine putting something like the following in a VERBATIM block in NMODL:

This approach would work best if dt is a full min_delay, to reduce the timer overheads.

The artificial cell takes two parameters:

1. spike frequency: used to generate a poisson sequence of spikes

2. integration speed: describes how quickly a cell is updated relative to real time. i.e.

a value of 1 means one cell operates at real time, and a value of 10 means that one

cell can be integrated 10 times faster than real time.

This type of cell would make it easy to write benchmarks that investigate strong/weak scaling of

models with user-supplied spiking rates and cell overheads.

How would you go about implementing the second feature, i.e. setting the integration speed?

I can imagine putting something like the following in a VERBATIM block in NMODL:

Code: Select all

```
// get starting time
start = clock();
// generate your spikes in here, so that the time taken to generate
// them is counted in the elapsed time interval
// convert dt from ms to clock ticks
ticks = CLOCKS_PER_SEC*dt*1e-3 / rate;
// wait until the number of ticks have elapsed.
while (clock()-start < ticks );
```