Internet of Things (IoT) is a field that is making tremendous progress and it is believed that there would be nearly 25billion connected devices by the end of 2020. As this number is increasing exponentially, it is of paramount importance to scale from small to large deployments. The concept of scaling the IoT sensors above the leaf level is explored. IoT is being used everywhere right from smart homes, cities, and buildings, etc. We handle the scaling between them by a rather new parallel technology of a novel gateway that has been proposed in the year 2015 from edge nodes. These devices are also being considered for the purpose of prototype nodes in Exascale systems in the future and for complex machine learning tasks.
Within IoT we can categorize the types of devices as edge devices and gateways. Edge devices are the simplified devices that are used within an IoT system in massive quantities. An edge device is a limited resource device typically designed to perform a single function. These devices collect data and transmit data to one or more gateways. The device may also perform a given task delegated to them from the gateway.
The second primary device group is gateways. Gateways are also termed as middlemen between an edge device and the Internet. Each gateway device is responsible for the collection of data from a certain set of edge devices and for using the collected data to perform a designated task or tasks as well as reporting “findings” to a higher level aggregation infrastructure like the cloud. On a practical comparison, it is quite evident that gateways are much more powerful devices than the edge devices. The value added by implementing parallelism on the GPU acceleration further added to the gateway is observed.
The algorithm focusses on two main aspects namely, is it possible to achieve a non-trivial increase in the validation of devices and can the number of edge devices increases without increasing the number of gateways by using data-parallel computations?
The answer to these questions has been addressed by the model in which we perform a data generation for a set of 50 devices and calculating the time needed to perform the linear regression on the model using the GPU tools. The execution for such a small number of devices proves that sequential execution proves to work better than the parallel implementation. AAS we increase the number of devices exponentially we observe that 25% speedup is observed while implementing the parallel workflow.
Enabling the gateway in the transport layer to perform parallel computations significantly improves the performance and further helps in connecting more number of edge nodes to a single gateway. It also allows the gateway to monitor the health of the edge nodes connected to them by comparing the data received and analysis performed.
We have a continuous stream of input and output in the case of IoT devices which makes it more suitable for parallel applications. If we have a continuous stream of inputs we can feed them to processors or threads in parallel and obtain the outputs desired. Even if there would be a change in the instruction type it would be easy to handle the instruction in parallel so that the system is not confusing (when running in serial).
We have two main workflow models that have been discussed and addressed here. Bounded and Unbounded streams of data. Bounded means that it has a defined start and end whereas the unbounded has a defined start but no defined end. The application of parallelism in these models of IoT has also proven to be quite fruitful as the processing and traversing of data is quite simple due to the indexing method followed and the speed of parallel search algorithms. All the above-mentioned functionalities make parallel computing most desirable for data collection, processing, and providing value to IoT based sensors. By the use of the model explained for increasing the number of edge nodes per gateway we also achieved the goal of introducing scalability to IoT.