## 2 Materials and Methods
### HPCC Configuration  
Normally, the master node of an HPCC infrastructure is the one that contains the servers of the network services since it is the device in charge of the administration of the local network, users, and applications to be executed; that is why, as observed in Table 1, the computing nodes have the client services and the master node the servers.  
The services in charge of managing the network resources allow communication at the transport layer level between the HPCC nodes. Usually, the services that the infrastructure must have include a domain name system (DNS), a dynamic host control protocol (DHCP), a network file system (NFS), a secure shell (SSH), the web, and a firewall [21]. The  
\begin{table}
\begin{tabular}{c c c c} \hline
**Device** & **Interface** & **IP Address** & **Network Services** \\ \hline Master & Wlp4s1 & 10.2.49.21/16 & NFS Server, DNS, DHCP, SSH server, CUDA, OpenMPI, Python, OpenCV, Tensorflow, Keras, and Horovod \\ node01 & enp0s31f6 & 192.168.0.254/24 & NFS client, SSH server, CUDA 11.7, and OpenMPI \\ node02 & enp0s31f6 & 192.168.0.2/24 & NFS client, SSH server, CUDA 11.7, and OpenMPI \\ \hline \end{tabular}
\end{table}
Table 1: The proposed HPCC IP addressing and service assignment table.  
Figure 2: The HPCC network diagram.  
configuration of the network services in an HPCC is a critical process that must be carried out in the proper order to guarantee the correct operation of the system. The configuration should start with configuring the physical network and continue with configuring the IP addresses, DNS and DHCP, NFS, SSH, and the firewall.  
Another of the fundamental parts that exists within HPC is the middleware, which is essentially the supplementary software that connects two or more software together [28]. With the help of middleware, it is possible to integrate applications with parallel programming environments.  
In addition to the previous services, applications such as OpenMPI and MPICH were installed, which were the applications that allowed tasks to be executed in parallel within the HPCC; these were mainly in charge of distributing the processes in each of the nodes and used programming languages such as Python, Java, Fortran, C, C++, etc. [27].  
OpenMPI provides a set of libraries and tools that allow developers to write parallel programs using MPI. These programs can be used to solve a wide range of scientific and engineering problems, including simulations, data analysis, and ML.  
The software for the HPCC should be optimized for distributed computing and ML. Popular DL frameworks such as TensorFlow, PyTorch, and Caffe should be used to implement the CNN models. The software should be designed to take advantage of the distributed architecture of the HPC by using techniques such as data parallelism and model parallelism. In this case, Horovod was used to implement the CNN models to classify images of weeds using this HPCC and distributed DL. The combination of HPC and DL for weed classification was a good option if we wanted to obtain excellent results in a shorter time.  
Figure 3 represents the minimum logical configuration of the proposed HPCC.