In today's data-driven world, the ability to process large amounts of data quickly and efficiently is crucial. One way to achieve this is by using a GPU-cluster, a group of computers that work together to perform complex calculations. In this project, I assisted in setting up a GPU-cluster consisting of 18 computers, utilizing Flatcar Linux and Kubernetes. The cluster consisted of 9 dual-GPU computers with NVIDIA Quadro K620 GPUs and 9 CPU computers for more general tasks. Utilizing CoreOS Ignition files, which are JSON files that describe the desired state of the system, I was able to set up the operating system and install Kubernetes onto the worker nodes, bootstrapping the entire cluster.
Jonas Claes, a fellow student, was the one responsible for the confiuration of the cluster itself. However, being very curious by nature, I decided to be a close companion, learning from what Jonas was doing and understanding the steps that were needed to create a Kubernetes cluster with a master and workers. For practice purposes, I set up a MicroK8s cluster with two workers on my home server, which is a Ubuntu distribution running a Proxmox server. I created several virtual machines to emulate a real cluster environment.
The detailed setup of the real GPU-cluster can be found at the website of Jonas Claes (https://www.jonasclaes.be).
Hashtopolis is an open-source distributed password cracking tool that utilizes a central server to distribute cracking tasks to multiple connected clients, or "agents." The Hashtopolis server is responsible for managing the cracking task and distributing the workload to the connected agents.
When setting up the Hashtopolis server, the administrator first configures the server's settings, such as the location of the hashlists and other cracking tools to be used. The administrator then sets up the agents, which are typically individual computers or clusters that have been configured to connect to the server and perform cracking tasks.
Once the server and agents are set up, the administrator can create a new cracking task and specify the target hash, the type of hash, and the cracking method to be used. The server then distributes the task to the connected agents, who begin attempting to crack the password using the specified method and hashlists. As each agent completes its task, it sends the results back to the server, which keeps track of the progress and updates the task's status.
In your case, we set up a GPU-cluster to handle the processing power and used the Hashtopolis server and agents to perform the cracking tasks. The Hashtopolis server distributed the cracking task to the agents, which used the GPU-cluster to perform the computationally expensive cracking process. Once the password is cracked, the agent willd sent the results back to the server, which will then inform us that the task is done.