# Parallelization of the Bison Algorithm Applied to Data Classification
## 5 Results  
This sections shows the results of the experiments. First, we run the experiments measuring the execution time to calculate the speedup for datasets 1000, 2000, 3000, 4000, and 5000. Afterwards, we run experiments to measure the execution time to calculate the \begin{table}
\begin{tabular}{r r r r} \hline \hline
**Dataset Name** & **Number of Folds** & **Number of Instances** & **Size in GB** \\ \hline
1000 & 1000 & 552,000 & 0.5 \\
2000 & 2000 & 1,104,000 & 1.0 \\
3000 & 3000 & 1,656,000 & 1.5 \\
4000 & 4000 & 2,208,000 & 2.0 \\
5000 & 5000 & 2,760,000 & 2.5 \\
8000 & 8000 & 4,416,000 & 4.0 \\
16,000 & 16,000 & 8,832,000 & 8.0 \\
32,000 & 32,000 & 17,664,000 & 16.0 \\
64,000 & 64,000 & 35,328,000 & 32.0 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Generated datasets. scaleup for datasets 1000, 2000, 4000, 8000, 16,000, and 32,000. The parameters for the Bison Algorithms were set to number of bisons = 100 and the number of iterations = 100. Table 3 shows the results in terms of the performance measures for the classification task. Accuracy, precision, recall, and F1-Score are listed. As can be seen, very good results for each measure are achieved. Also, the increasing dataset size does not influence any of the measures negatively. In terms of execution time and speedup for the 1000 dataset, the execution time and speedup are provided in Table 4 and Figure 3. As can be seen, an exponential trend for the execution time is achieved, with the speedup showing closer alignment to the ideal speedup (shown as the red-dashed line) up to 64 nodes. For more than 64 nodes we can see that the speedup drifts off from the ideal speedup. Similar trends can be observed for the execution time and speedup for the 2000 dataset. The execution time and speedup are provided in Table 5 and Figure 4. \begin{table}
\begin{tabular}{r r r} \hline \hline
**Number of Nodes** & **Execution Time (s)** & **Speedup** \\ \hline
1 & 25,946.03 & 1.00 \\
2 & 13,571.13 & 1.91 \\
4 & 6632.55 & 3.91 \\
8 & 3197.00 & 8.11 \\
16 & 1592.43 & 16.29 \\
32 & 814.96 & 31.83 \\
64 & 418.65 & 61.97 \\
128 & 270.63 & 95.87 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Execution time and speedup for the 1000 dataset. Figure 3: Execution time and speedup for the 1000 dataset. The execution time and speedup are provided in Table 8 and Figure 7 for the 5000 dataset. What we can see is that with increasing dataset sizes, the speedup slightly improves, as expected. Last but not least, the scaleup results are are provided in Table 9 and Figure 8. Scaleup evaluates how well our parallel implementation of the Bison Algorithm handles increasing dataset sizes as more processing nodes (executors) are added. It basically measures the algorithm's ability to handle proportionally larger dataset sizes when the processing nodes are scaled up. As can be seen from the table and the figure, we observe a stable scaleup for up to dataset size of 32,000-fold using 64 processing nodes (scaleup = 0.96), with a scaleup declining for the 64,000-fold dataset using 128 processing nodes (scaleup of 0.85). The scaleup using four nodes and eight nodes is slightly higher than 1.0, with values of  
Figure 5: Execution time and speedup for the 3000 dataset. Figure 6: Execution time and speedup for the 4000 dataset. \begin{table}
\begin{tabular}{r r r} \hline \hline
**Number of Nodes** & **Execution Time (s)** & **Speedup** \\ \hline
1 & 129,357.60 & 1.00 \\
2 & 64,471.76 & 2.00 \\
4 & 33,343.78 & 3.87 \\
8 & 17,415.78 & 7.42 \\
16 & 8620.33 & 15.00 \\
32 & 4139.66 & 31.24 \\
64 & 2129.46 & 60.74 \\
128 & 1237.78 & 104.50 \\ \hline \hline \end{tabular}
\end{table} 
Table 8: Execution time and speedup for the 5000 dataset. As well as evaluating the classification measures, such as accuracy, precision, recall, and F1-Score, this study compared the performance of the Bison Algorithm on several dataset sizes using speedup and scaleup as performance measures.