Guide to Remote Compilation#

SiliconCompiler supports a remote compilation model, allowing you to leverage cloud resources for access to pre-configured tool installations, elastic compute, and potentially NDA-protected PDKs or IPs on private servers.

Note

Our public server only supports open-source tools and PDKs. During periods of high traffic, your job may be queued, which could result in processing delays. When you run a remote job, SiliconCompiler will remind you that your design is being uploaded to a public service.

Step 1: Configure Your Remote Server#

All remote server settings are managed through a credentials.json file located in your home directory ($HOME/.sc/ on Linux/macOS or C:\Users\<USERNAME>\.sc\ on Windows).

While you can create this file manually, the recommended method is to use the interactive sc-remote command.

Method 2: Manual Configuration#

If you prefer, you can create the credentials.json file manually in the appropriate directory. The file must contain the following JSON structure:

{
  "address": "your-server-address",
  "username": "your-username",
  "password": "your-password-or-key"
}

For a public server, simply leave the username and password fields as empty strings (“”).

Step 2: Verify the Connection#

After configuration, run sc-remote without any arguments to test the connection to your server.

sc-remote

A successful connection will typically display a status message or an empty list of your remote jobs, confirming that your configuration and credentials are correct.

Step 3: Run a Remote Job#

To send a compilation job to the configured remote server, simply add the -remote flag to your sc command.

sc -target asic_demo -remote

The job will be packaged, sent to the remote server for processing, and the results will be streamed back to your local machine.

Troubleshooting#

  • Local Changes Not Reflected: Any modifications you make to local, built-in tool scripts, PDKs, or libraries will not be used in a remote job. The remote server uses its own pre-configured environment.

  • Network and Filesystem Issues: Jobs run in isolated environments on the server. Code that relies on specific network or local filesystem calls may not work as expected.

  • Reporting Issues: If you encounter problems with the remote workflow, please open an issue on the SiliconCompiler repository’s issue page.

For Developers: Custom Servers#

If you are interested in deploying your own custom server, we provide a minimal example development server that can be used as a starting point: sc-server using the remote API.