Command Line Interface (CLI) executable
The main Cogment module is a multi-platform standalone executable usable through a Command Line Interface, it is referred as the Cogment CLI.
The Cogment CLI includes the following services:
- The Orchestrator, the heart of Cogment which executes the Trials by orchestrating the different user implemented services.
- The Directory is the "directory" of services, where services register and can be found by clients and other services.
- The Trial Datastore able to store and make available the data generated by the Trials.
- The Model Registry which let's user store AI models and makes them available to actor implementations during training and in production.
Compatibility
The Cogment CLI is available for the following OSes:
- Linux with
amd64
architecture (also known asx86_64
), tested on Ubuntu 18.04 and 20.04, should be compatible with most recent distributions, - macOS with
amd64
andarm64
(Apple Silicon) architectures, tested on macOS 12, should be compatible with any macOS version >= 10.15, - Windows with
amd64
architecture, should be compatible with any Windows version >= Windows 10 version 1809.
Installation
Installation script (compatible with linux and macOS)
This installation method is compatible with virtually any Linux distribution, macOS and WSL2 on Windows. It only requires bash
and curl
.
First, download the install script and make sure you can run it using
curl --silent -L https://raw.githubusercontent.com/cogment/cogment/main/install.sh --output install-cogment.sh
chmod +x install-cogment.sh
You can then download and install the latest version to /usr/local/bin
using
sudo ./install-cogment.sh
Other installation methods are available, for example:
- Install version 2.2.0
sudo ./install-cogment.sh --version 2.2.0
- Install prereleased version 2.3.1-beta3, useful because prereleases are not considered by default
sudo ./install-cogment.sh --version 2.2.0
- Download the cogment exec in the current folder, make sure it is executable but skip the installation
./install-cogment.sh --skip-install
- Specify manually the arch and os
./install-cogment.sh --arch amd64 --os Windows
All install options can be listed using
./install-cogment.sh --help
Uninstall is as simple as running:
sudo rm $(which cogment)
Yes, it is possible to install Cogment as a one-line by piping the install script to bash
... at the risk of angering your system admin.
curl --silent -L https://raw.githubusercontent.com/cogment/cogment/main/install.sh | sudo ./install-cogment.sh
Manual installation
If you are a Windows user (and also if you prefer to do a manual install), you can go through those instructions.
- Download the desired version from here for your platform.
- Copy it as
cogment
in a location that already belongs to yourPATH
(e.g./usr/local/bin
) or that you'll add to yourPATH
, and make sure it is executable (e.g. usingchmod +x /usr/local/bin/cogment
).
Docker
A Cogment docker image is available on Docker Hub. It can be retrieved with the following:
docker pull cogment/cogment
The docker version of Cogment is very handy for server deployment, however, because of the nature of docker, users need to take care of port forwarding and volume mounting if needed.
Unsupported platform
If your platform is not supported, add an issue including the details of your platform and do not hesitate to contact us.
Building from source
Building from sources is perfectly possible. Please refer to the build instructions for more information.
Test your installation
Depending on your platform and how you installed Cogment, it might be accessible as cogment
, ./cogment
, cogment.exe
or docker run cogment/cogment
. We will use cogment
for the rest of this page and throughout the documentation.
With a working installation you can run the following in a terminal:
cogment version
You can then list all the commands by typing:
cogment help
or for help on each individual command:
cogment help <command>
Launching a Cogment app
These instructions are only compatible with unix-like environments such as Linux, macOS and WSL2 on Windows.
In order to test that your installation is fully working, run an existing Cogment app, for example one of the steps of the tutorial.
Download or clone the sources for the official Rock-Paper-Scissors (RPS) tutorial from https://github.com/cogment/cogment-tutorial-rps.
To run this example you will need to have the following installed on top of Cogment:
- python 3.7 or later,
- virtualenv.
Once it is done, run the following in the directory you retrieved:
cd 5-human-player
./run.sh build
./run.sh services_start
The first call to ./run.sh
command will copy the cogment.yaml, and every referenced proto file, to each module directory, create virtualenvs, and install the python dependencies.
The second will start Cogment and the different services for this app. In another terminal you can connect to it and play a few games of RPS against a simple AI agent.
./run.sh client_start
Congratulations, you have a working installation of Cogment! We recommend you head to the Cogment tutorial to learn how to implement this RPS app from scratch.
Troubleshooting
pipe creation failed (24): Too many open files
error on macOS
On macOS, it is possible that Cogment tries to open too many file handles. In this case, you'll get an error similar to pipe creation failed (24): Too many open files
.
You can access the current limit and update it using ulimit -n
. The default version should be something like 256, in most cases we found that Cogment requires 2048. You can set the limit with the following command:
$ ulimit -n 2048
This command changes the limit in the current shell session. This stackexchange question discusses different ways to make the change persist.
For debugging purposes, you can inspect the open file handles using lsof
. E.g. lsof -c cogment | wc -l
will count the number of open file handles by Cogment processes.