diff --git a/doc/concepts/recipe.rst b/doc/concepts/recipe.rst index a3c091246c7b62f564f3bbbbca0ca3997d51607c..7548c9246630632a8c195b6a486fd8644eb7a22a 100644 --- a/doc/concepts/recipe.rst +++ b/doc/concepts/recipe.rst @@ -113,16 +113,15 @@ The steps of building a simulation from a recipe are: .. Note:: An example of how performance considerations impact Arbor's architecture: you will notice cell kind and cell description are separately added to a recipe. - Consider the following conversation between an Arbor simulation, recipe and hardware back-end: - - | Simulator: give me cell 37. - | Recipe: here you go, it's of C++ type s3cr1ts4uc3. - | Simulator: wot? What is the cell kind for cell 37? - | Recipe: it's a foobar. - | Simulator: Okay. - | Cell group implementations: which one of you lot deals with foobars? - | Foobar_GPUFTW_lolz: That'd be me, if we've got GPU enabled. - | Simulator: Okay it's up to you then to deal with this s3cr1ts4uc3 object. + + It might seem like overkill to have a separate call that returns the cell + kind, when one could determine the kind by requesting the cell description, + then querying the kind of the result. + + Some phases of model construction, however, only require the cell kind, and + not the full cell description, which can be quite expensive to + assemble; for example, a Purkinje cell model can have very complex geometry, + a rich collection of ion channels, and thousands of synapses. General best practices ----------------------