Skip to content
Raphael Baier edited this page Nov 12, 2020 · 4 revisions

Relevance

To create a distributed compiler, a distributed compuation platform is first required, that connects storages and can distributed general purpose jobs. This Prototype aims to do just that. It provides a server backend and a client frontend in a modular approach, allowing for dynamic message exchange. Furthermore modules can be activated and deactivated at will allowing for different configurations of runners, dispatchers and schedulers. The repository also include a simple example for a premake5 generator that can create compile commands for hivemind given a suitable input project

Information

Hivemind works with a (very) simple language

RUN <any shell command> ; runs a shell command on any of the available nodes
RUN <any shell command>
RUN <any shell command>
WAIT ; Waits for all above commands to finish

The Frontend is created with TkInter: media/hivemind-client-frontend.png

Progress:

  • Client can connect with server
  • Client and server can exchange Messages async
  • Server emits jobs, client executes them
  • Server creates networks share, client connects to it
  • Client has a frontend that shows status and loaded folder
  • Client can schedule jobs on the Server
  • Server keeps track of individual workspace sessions to allow for application based execution
  • Client works with workspaces to keep track of progress of the currently running job
  • Client copies output folder when Taks is done

WARNING WARNING WARNING

Do NOT under any circumstance run the server or the client on an open untrusted network. The traffic is not encrypted, not verified and the environments are not isolated! it is basically the perfect platform for an attacker. run this in your local lan only!

Clone this wiki locally