Julia creators aimed to combine speed with ease of use, with the goal of making it easier to innovate and solve machine learning problems that are more difficult with other languages. Yet, speed—especially for the complicated big data projects that Julia was meant to tackle—will always be dependent on the compute power of available machines.
Below is a tutorial showing how you can dramatically reduce runtimes by remotely deploying your Julia projects using an application called Galileo. Galileo can be used to run code on a more powerful machine, in the cloud, or simply on a friend or colleague’s computer so you can free up your own machine. This is by far the fastest way that we have found to deploy our Julia scripts to remote machines.
Here are the steps to follow (after installing the Galileo app and Docker):
Open Galileo from your desktop or applications.
2. Use Galileo to select and request access to another Galileo-enabled machine. Access can be approved manually, by the remote machine’s operator, or automatic approval can be set up.
3. Create a Dockerfile for the project. Galileo is built on top of Docker. The Dockerfile specifies the Julia packages that must be imported for the code to run and specifies the entry point and the arguments that need to be passed to your Julia code. Docker will be running in the background. (This process of containerization is incredibly simple, code-wise, since Julia is also an adopter of Docker images.)
4. Grab your project file and drag and drop into Galileo.
You will see that the project is packaged and fired off to the other machine.
5. The results are then packaged up and sent back to you as an output file, generated from the run.
Instead of tying up your own machine or restricting yourself to its capabilities, you can employ Galileo’s stupid simple solution to run your code elsewhere. Instead of using a Linux terminal to actually deploy the code, you can simply drag it and drop it. This is an incredible gain in time and energy. The advantage is amplified for any project that is mildly complex or scientific—precisely the kinds of projects that Julia was designed to tackle.