Install Determined Using Linux Packages¶
Determined releases Debian and RPM packages for installing the Determined master and agent as systemd services on machines running Linux.
We support installing the Determined master and agent using Debian packages on Ubuntu 16.04 or 18.04, or using RPM packages on Red Hat 7-based Linux distributions (e.g., Red Hat Enterprise Linux, CentOS, Oracle Linux, and Scientific Linux).
Determined uses a PostgreSQL database to store experiment and trial metadata. You may either use a Docker container or your Linux distribution’s package and service.
If you are using an existing PostgreSQL installation, we recommend
max_connections is at least 96, which is sufficient
Running PostgreSQL in Docker¶
Pull the official Docker image for PostgreSQL. We recommend using the version listed below.
docker pull postgres:10
This image is not provided by Determined AI; please see its Docker Hub page for more information.
Start PostgreSQL as follows:
docker run \ -d \ --restart unless-stopped \ --name determined-db \ -p 5432:5432 \ -v determined_db:/var/lib/postgresql/data \ -e POSTGRES_DB=determined \ -e POSTGRES_PASSWORD=<Database password> \ postgres:10
If the master will connect to PostgreSQL via Docker networking, exposing port 5432 via the
-pargument isn’t necessary; however, you may still want to expose it for administrative or debugging purposes. In order to expose the port only on the master machine’s loopback network interface, pass
-p 127.0.0.1:5432:5432instead of
Installing PostgreSQL via
Install PostgreSQL 10.
On Debian distributions:
sudo apt install postgresql-10
On Red Hat distributions, first configure the PostgreSQL yum repository as described here in order to then install version 10:
sudo yum install postgresql-server -y sudo postgresql-setup initdb sudo systemctl start postgresql.service sudo systemctl enable postgresql.service
Configure a system account that Determined will use to connect to PostgreSQL. For example, to use the default
postgresuser but update its password:
sudo -u postgres psql postgres postgres=# \password postgres
Finally, create a database for Determined’s use.
postgres=# CREATE DATABASE determined;
Master and Agent¶
Download the appropriate Debian or RPM package file, which will have the name
VERSIONreplaced by an actual version, such as 0.15.3). The agent package is similarly named
Install the master package on one machine in your cluster, and the agent package on each agent machine.
On Debian distributions:
sudo apt install <path to downloaded package>
On Red Hat distributions:
sudo rpm -i <path to downloaded package>
Configuring and Starting the Cluster¶
Ensure that an instance of PostgreSQL is running and accessible from the machine where the master will be run.
Edit the YAML configuration files at
/etc/determined/master.yaml(for the master) and
/etc/determined/agent.yaml(for each agent) as appropriate for your setup. Ensure that the user, password, and database name correspond to your PostgreSQL configuration.
db: host: <PostgreSQL server IP or hostname, e.g., 127.0.0.1 if running on the master> port: <PostgreSQL port, e.g., 5432 by default> name: <Database name, e.g., determined> user: <PostgreSQL user, e.g., postgres> password: <Database password>
Start the master.
sudo systemctl start determined-master
The master can also be run directly with the command
determined-master, which may be helpful for experimenting with Determined (e.g., testing different configuration options quickly before writing them to the configuration file).
Optionally, configure the master to start on boot.
sudo systemctl enable determined-master
Verify that the master started successfully by viewing the log.
journalctl -u determined-master
You should see logging indicating that the master can successfully connect to the database, and the last line should indicate
http server startedon the configured WebUI port (8080 by default). You can also validate that the WebUI is running by navigating to
http://<master>:8080with your web browser (or
https://<master>:8443if TLS is enabled). You should see
No Agentson the right-hand side of the top navigation bar.
Start the agent on each agent machine.
sudo systemctl start determined-agent
Similarly, the agent can be run with the command
Optionally, configure the agent to start on boot.
sudo systemctl enable determined-agent
Verify that each agent started successfully by viewing the log.
journalctl -u determined-agent
You should see logging indicating that the agent started successfully, detected compute devices, and connected to the master. On the Determined WebUI, you should now see slots available, both on the right-hand side of the top navigation bar, and if you select the
Clusterview in the left-hand navigation panel.
Managing the Cluster¶
To configure a service to start running automatically when its machine
boots up, run
sudo systemctl enable <service>, where the service is
determined-agent. You can also use
systemctl enable --now <service> to enable and immediately start a
service in one command.
To view the logging output of a service, run
To manually stop a service, run
sudo systemctl stop <service>.