2 minute read

Background

Machine learning algorithms often require significant computational resources. These systems are typically large, noisy, and primarily run on Linux servers. As a result, most developers work on remote servers. Setting up a seamless remote development environment is crucial for productivity.

Here are the key components to configure:

  • SSH
  • File transfer with the server
  • Remote UI
  • Machine learning environment
  • Remote development tools
  • Additional configurations

Note: If you’re in mainland China, it’s advisable to set up a proxy to bypass the Great Firewall. This ensures smooth access to required resources during setup, such as downloading packages. For details on setting up a proxy, refer to Set Up VPS.

Disclaimer: This guide is intended solely for educational and research purposes.


SSH

SSH is the foundation for connecting to your remote server. Follow this guide for passwordless SSH.

Rename Your SSH Server

Edit ~/.ssh/config to define an alias:

Host my_server
    HostName example.com   # IP or domain name
    User root              # Username

Now, connect using:

ssh my_server

Advanced SSH Configurations


File Transfer with the Server

Refer to Transfer Files for detailed instructions on using scp or sshfs.


Machine Learning Environment

1. Basic Tools

Install essential utilities:

sudo apt install git vim tmux htop

Create a script for automated setup. A ready-made script will be published on my GitHub.

2. Development Frameworks

Popular machine learning frameworks include:

3. Python Environment

Remote servers often use Python. To manage environments efficiently, use tools like Miniconda or Anaconda.

Why use a virtual environment?

  • Isolate your setup from the system environment to avoid conflicts.
  • Simplify portability across servers.

Basic conda Commands:

conda create -n myenv python=3.8
conda activate myenv
conda install numpy
conda deactivate

For more, see the Conda Command Reference.


Remote Development Tools

1. Jupyter Notebook

Set up Jupyter for interactive coding and visualization. For more, refer to Jupyter Configuration.

GPU Settings: Add this line to your ~/.bashrc for GPU control:

export CUDA_VISIBLE_DEVICES=0,1

2. TensorBoard

TensorBoard helps monitor and debug your algorithms. Access it through a browser after setup.

3. PyCharm

PyCharm integrates seamlessly with remote servers for editing, running, and debugging code. For setup, see this PyCharm Remote Development Guide.

4. VS Code

VS Code allows remote file editing but lacks built-in remote execution. Refer to Remote Development with VS Code.


View Remote UI on Local Machine

  • On Linux: Use X11 forwarding:
    ssh -X user@server
    

    Test it by running xclock on the remote server. A clock UI should appear on your local machine.

  • On Windows: Install and run an X11 server like Xming.

Others

To Be Continued…

Comments