Parallel and Distributed Computation of a Fingerprint Access Control System

This work evaluates the runtime performance of a single-mode biometric recognition system for fingerprint-based access control to secure premises. To speed up the computation time in this system, we resorted to parallel programming, targeting more loops in the verification module. Our approach would therefore be to parallelize all loops that are computationally intensive during the verification of fingerprints in the database. On this, we exploited Microsoft's Task Parallel Library, specifically exploiting the for and for each loop. On the test set performed in sequential and parallel versions in the different data sizes, namely 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, and 600, we can state that the results obtained by the sequential and parallel implementations of our performance test programs allowed us to determine the best approach. Therefore, it is very clear that the sequential program is too greedy in terms of computation time compared to the parallel program which minimizes the computation time.


INTRODUCTION Problem
Each technological progress opens the horizon to new needs. Applications are becoming very demanding in terms of computing time and memory space, especially real-time and simulation applications. Parallelism has always been a possibility to meet this demand for performance (Fryza, Svobodova, Adamec, Marsalek, & Prokopec, 2012).
The real problems that arise, as far as verification in a student access control system in an institution is concerned, especially when we have a mass of information in the database, are slow, high computation time, which makes verification tedious (Williams-Young, De Jong, Van Dam & Yang, 2020).
Thus, in order to motivate the continuation of this work, questions of the kind listed below will not be ruled out: ✔ What are the most efficient methods we can apply to reduce the computation time in an access control system? ✔ How can we optimise the runtime computation problem in a fingerprint-based access control system?
These issues are the real problems that we will examine in the following.

Assumptions
To solve these problems, the optimal solution we propose in this work is to exploit parallel programming, with the aim of improving the capabilities of the parallel computing verification module through the implementation of parallel loops.
More precisely, we will design a parallel computation verification module based on Microsoft's Task Parallel Library, exploiting more precisely the loop for and loops for each.

Objective
The general objective of this work is to design a tool that will optimize the computation time of an access control management system.

Interest of the subject
The interest of such an approach is to make a major contribution to the scientific community, by providing them with a logical approach to optimizing the runtime performance of an access control system for premises secured by fingerprints.

Some general information
Parallel processing is a form of information processing that allows the exploitation of concurrent events at runtime. These events are located at several levels: at the program level, at the procedure level (coarsegrained parallelism), at the instruction block level (medium-grained parallelism) or within an instruction (fine-grained parallelism) (Reumont-Locke, 2015) Parallelism is the fact of making several processors cooperate with the aim of accelerating the resolution of a single problem, improving computing performance, increasing the size of the problems to be solved, producing machines with a good cost/performance ratio (Tavara, Schliep, & Basu, 2021).
The introduction of parallelism within a program can be done at the level of procedures or even loops of the procedure (Ocaña, & de Oliveira, 2015). It requires the decomposition of the program into tasks, the search for dependency relationships between these tasks by constructing a directed graph, whose vertices represent the tasks and edges represent the dependencies between the tasks, called a "dependency graph", and the parallel programming of independent tasks (Abdellatif, M. (2016)).

Presentation of the work
This work is in the context of parallel application programming which requires high computational capacities. Its objective is to study the execution time performance of an access control system for premises secured by fingerprints (Miao, Tian, Peng, Hossain & Muhammad, 2017) To do so, we proceed as follows (Bopatriciat Boluma Mangata et al., 2022): ✔ We take our fingerprint verification program, in its sequential performance test version, on a set of six hundred individuals. ✔ We run this sequential version on the different data sizes, namely 50, 100,150,200,250,300,350,400,450,500,550, and 600. The aim here is to evaluate the execution times of each data size by responding to the sequential test program. ✔ We parallelize our test program, namely the fingerprint verification program, using the parallelism of the for and foreach loops of the Task Parallel Library. ✔ We run this parallel version on the different data sizes, namely 50, 100,150,200,250,300,350,400,450,500,550, and 600. The aim here is to evaluate the execution times of each data size by responding to the parallel test program. ✔ We interpret the results obtained from the sequential and parallel implementations of our performance test programs to determine the best approach.

SYSTEM IMPLEMENTATION AND ARCHITECTURE Implementation
In this last part, we are interested in the tools used for the realization of our application as well as the main interfaces of the application.

Hardware environment
In order to carry out our research project, we have used the following materials (Bopatriciat Boluma Mangata et al., 2021): ✔ Three laptops (LAPTOP) from the HP EliteBook brand.
Here are the characteristics of this machine: These computers contain a biometric application in C# that allows instructions to be given to the Arduino card via the serial port and a database replicated in three different instances representing our three sites.

Hardware architecture of the system
The material architecture of the project is as follows (Bopatriciat Boluma Mangata et al., 2021): ✔ Personal Digital, a fingerprint reader, communicating through the USB port ; ✔ A computer, containing a biometric application in C# that allows instructions to be given to the Arduino card via the serial port and a database replicated in three different instances representing our three sites. ✔ The Arduino card, which is programmed to analyse and generate electrical signals, in order to carry out automatic door opening and closing tasks (access control). ✔ TOWER PROTM Micro Servo 9g SG90, a stepper motor that will allow us to make the opening and closing movements of the doors.

RESULTS OBTAINED
Here is a representation of some of the graphical interfaces of our application:

Interpretations of the results obtained
The table below represents the different values of execution time of the sequential version on the different data sizes, namely 50, 100,150,200,250,300,350,400,450,500,550, and 600. The following graph is intended to evaluate the execution times of each data size when responding to the sequential test program (Melnykov, Chen & Maitra, 2012)   The following graph is intended to evaluate the execution times of each data size when responding to the parallel test program (Li, Peng, Su & Jiang, 2020). The table below represents the different values of execution times of the sequential and parallel versions on the different data sizes, namely 50, 100,150,200,250,300,350,400,450,500,550, and 600. The aim is to evaluate the execution times of each data size by responding to the sequential and parallel test program to determine the best approach (Wan & Zou, 2017). The graph below allows us to interpret the results obtained by the sequential and parallel implementations of our performance test programs to determine the best approach (Dall'Olio, Curti, Fonzi, Sala, Remondini, Castellani & Giampieri, 2021). It is very clear that the sequential program is too greedy in terms of computation time compared to the parallel program which minimizes the computation time (Rosenberg, Mininni, Reddy & Pouquet, 2020)

CONCLUSION
We have come to the end of our work which allows us to evaluate the execution time performance of a single mode biometric recognition system for access control to premises secured by fingerprints.
To speed up the computation time in this system, we resorted to parallel programming, targeting more loops in the verification module.
Our approach was therefore to parallelize all loops that are computationally intensive during the verification of fingerprints in the database.
For this, we exploited Microsoft's Task Parallel Library, specifically exploiting the loop for and loops for each.
On the test set performed in sequential and parallel versions in the different data sizes, namely 50, 100,150,200,250,300,350,400,450,500,550, and 600, we can state that the results obtained by the sequential and parallel implementations of our performance test programs allowed us to determine the best approach. Therefore, it is very clear that the sequential program is too greedy in terms of computation time compared to the parallel program which minimizes the computation time.