1. Introduction

1.1. What is Noodles

Training Noodles (or simply Noodles) is a simple and powerful tool to help training multiple programs on multiple servers.

1.2. Why Created This Tool

When I was doing research, the work is still preliminary most of the time. I have limited time and limited servers to run the experiments. I don’t want to use some black box tools or frameworks which have steep learning curves. Besides, the research direction may change suddenly so that a tool may no longer suite my needs.

So I created this tool aiming for simplicity and reproducibility. One spec file is enough to run everything I need. And if something goes wrong? I can easily reproduce everything without the tool just by looking at the spec file.

1.3. Features

What can Noodles do? Basically everything one can do on a terminal. Noodles not only helps to automatically deploy Linux commands on different servers but also helps to manage their execution dependencies. The main benefits of Noodles are the following:

  • Automatically deploys experiments to available servers

  • No need to change any existing code

  • Considers CPU usage, GPU usage, memory usage, disk usage, and more

  • Uses only SSH protocol

  • Relies on minimal dependencies

  • Allows fast prototyping

The fact that Noodles only uses SSH protocol means that Noodles doesn’t assume the type of a server, it can be a local machine, self-hosted server, Amazon EC2 instance or Google Compute Engine instance.