  Severe constraints on memory and computation characterizing the
Internet-of-Things (IoT) units may prevent the execution of Deep Learning
(DL)-based solutions, which typically demand large memory and high processing
load. In order to support a real-time execution of the considered DL model at
the IoT unit level, DL solutions must be designed having in mind constraints on
memory and processing capability exposed by the chosen IoT technology. In this
paper, we introduce a design methodology aiming at allocating the execution of
Convolutional Neural Networks (CNNs) on a distributed IoT application. Such a
methodology is formalized as an optimization problem where the latency between
the data-gathering phase and the subsequent decision-making one is minimized,
within the given constraints on memory and processing load at the units level.
The methodology supports multiple sources of data as well as multiple CNNs in
execution on the same IoT system allowing the design of CNN-based applications
demanding autonomy, low decision-latency, and high Quality-of-Service.
