Installing XCOMPUTE-SERVER#
XCOMPUTE-SERVER is built to run on recent Linux/x86-64 systems. Packages are built to directly install on Debian-based systems like Ubuntu, but compressed tarfiles are available to attempt installation on non-Debian Linux systems.
Prerequisites#
XCOMPUTE Account#
If you have not done so already, use your email address to sign up for an XCOMPUTE account. You will need it later to obtain a cryptographic license to enable use of XCOMPUTE-SERVER.
Hardware Requirements#
The CPU must be an x86-64 running v3 or v4 microarchitecture. V3 supports CPU features like AVX2, MOVBE, and FMA. V4 supports CPU features like AVX512. On Linux systems, to check the microarchitecture version, such as the AVX instructions provided by the CPU:
grep flags /proc/cpuinfo | head -1 | grep avx
At least one GPU (or equivalent co-processor) is required on each server host with hardware and software support for OpenCL v1.2 or later. Double-precision (FP64) support is required for both CPU and GPU, driving performance for many numerical methods.
Support for OpenCL is provided by the GPU hardware vendor and bundled with GPU support software.
NVIDIA CUDA or AMD ROCm distribute an Installable Client Driver (ICD) providing OpenCL support. The list of hardware supporting OpenCL is listed by:
clinfo -l
Without the -l
flag, the clinfo
command lists detailed OpenCL features of the hardware. If it is not already installed, it is available from most package managers such as: sudo apt install clinfo
or equivalent.
For details installing OpenCL for Nvidia, AMD, or Intel, see Appendix A: Installing OpenCL Drivers below.
Software Requirements#
Currently, XCOMPUTE-SERVER is provided as a Debian package for recent Debian/Ubuntu systems, specifically Ubuntu 20.04 or later, or Debian 11 or later. A compressed tarfile is also provided for those who want to attempt installation on Fedora or other Linux/Unix variants; using the tarfile will require moving some files or providing symlinks to locations expected by the specific variant. XCOMPUTE-SERVER has minimal runtime library requirements, but require modern GLIBC and POSIX implementations.
You can check the Linux distro and version by the following:
egrep 'ID=|VERSION_ID=' /etc/os-release
Download Package#
Login to your XCOMPUTE account. On the Download page, review the End-User License Agreement (EULA), if you have not done so, and select a version of XCOMPUTE-SERVER that is appropriate for your server host. (Note that XCOMPUTE-SERVER comes in two editions: Standard and Educational.)
License Key and Fingerprint#
As your XCOMPUTE-SERVER download completes, you will be asked whether to continue to the subscription page for XCOMPUTE-SERVER. Unless you already have an unassigned license key, select “OK” to continue. Complete the purchase of the XCOMPUTE-SERVER subscription. You will be notified by email of a new license key, including the a 32-byte fingerprint to identify the key.
The licenses that you have available to you will be listed on your user profile account page. Each has the license type (e.g., XCOMPUTE-SERVER-STD), license key fingerprint, and (if assigned) machine ID.
Alongside the package, the generated license and key file acts as a unique network identifier and can only be used on one machine. These files must be copied into a specific location to activate the software. See configuration details.
Selecting a package#
XCOMPUTE-SERVER is currently available in two forms. On the download page, they are given generic names:
Debian packages (
.deb
) for Ubuntu, Debian, and other Debian-derived systems, e.g.,xcompute-server-std_25.1-latest-linux-u20_amd64.deb
.Compressed tarfiles (
.tar.xz
) for other Linux systems:xcompute-server-std_25.1-latest-linux-u20_amd64.tar.xz
.
These packages were built against Ubuntu 20.04, 22.04, and 24.04,
the last several long-term support (LTS) releases of Ubuntu.
The specific release is denoted in the name by u20
, u22
, and u24
.
The downloaded file will have the full version ID in the filename.
For example, xcompute-server-std_25.1-0319.7eb02f19-u24_amd64.deb
is a Debian package
with version ID 25.1-0319.7eb02f19
and built on Ubuntu 24.04.
For non-Ubuntu or Ubuntu non-LTS releases,
one of the most significant factors is finding the appropriate version of libc.so.6
(found on Debian/Ubuntu systems as /lib/x86_64-linux-gnu/libc.so.6
).
Host-native binary executable programs on Linux depend on the versions of C library functions provided.
Specifically, this means the GNU C Library (GlibC).
The Debian packages are managed by the Debian package management system, and thus may utilize pre- and post-install scripts as well as pre- and post-remove scripts.
The content of the of compressed tarfiles is the same the Debian packages, but pre/post-install/remove scripts are not executed. Thus, they require additional manual intervention.
In both cases, the packages require administrator privileges on the host system.
Installation: Ubuntu/Debian#
If a Debian package is selected for download, its name will have the form:
xcompute-server-std_25.1-...-amd64.deb
The package can be installed using apt
, aptitude
, or dpkg
.
example,
sudo apt install ./xcompute-server-std_24.1-1023.0aba1702-u20_amd64.deb
Note that for apt
, the ./
in front of the package filename is mandatory.
Otherwise it will try to download the package in the Debian or Ubuntu online repositories, but not find it.
When installed, the XCOMPUTE-SERVER software itself will reside under /opt/xcompute/xcserver
.
The user xcompute
is created with home directory at /var/opt/xcompute/xcserver
.
Configuration#
The installation process will generate messages like the following:
Creating system user XCOMPUTE system user ...
Config file compute.cfg is newly installed. Check its attributes in:
/var/opt/xcompute/xcserver/compute.cfg
Config file server.cfg is newly installed. Check its attributes in:
/var/opt/xcompute/xcserver/server.cfg
log directory created: /var/opt/xcompute/xcserver/log
These messages inform you that:
a user
xcompute
has been added to the host as a system user; that is, it has no login shell and is used for a system service.new configuration files have been installed or changed.
a log directory has been set.
The messages relating to configuration files are highlighted in a different color
so that they stand out.
A new compute.cfg
will have default values for computation that you can use until you feel the need to tune them.
A new server.cfg
file will show several empty fields, including admin=
and fingerprint=
.
These must be filled in before XCOMPUTE-SERVER can be used.
The admin
field should be set to email address of the adminstrator or primary user of the host machine.
The fingerprint
will be as described above and available in the user account profile page.
Optionally, you can set the input and output directories that will be used for project files provided to or synthesized by XCOMPUTE-SERVER.
For example,
admin=myexample@example.com # your registered email address (required)
fingerprint=auth/e2718281828459045235360287471352 # your assigned fingerprint (required)
input=/home/projectdisk1 # load directory for project (recommended)
output=/home/projectdisk1 # save directory for project (recommended)
Starting the service#
As an installed Ubuntu/Debian package,
XCOMPUTE runs as a service under the management of systemd
via the systemctl
command .
Checking the status of the service can be done without admin privilege.
systemctl status xcompute
To start it,
sudo systemctl start xcompute
The start
subcommand itself produces no messages.
To see if it was successful, use the status
subcommand.
For example:
$ systemctl status xcompute
● xcompute.service - XCOMPUTE Service
Loaded: loaded (/etc/systemd/system/xcompute.service; linked; vendor preset: enabled)
Active: active (running) since Sat 2025-03-29 18:32:35 PDT; 18min ago
Main PID: 233561 (xcompute-server)
Tasks: 13 (limit: 18988)
Memory: 21.4M
CGroup: /system.slice/xcompute.service
└─233561 /opt/xcompute/xcserver/bin/xcompute-server
The output should show Active: active (running)
.
Additionally, as it starts up, the running xcompute-server
process will write messages to logfiles in
/var/opt/xcompute/xcserver/log
.
Normal informational messages are written to xcserver.log
, error messages to xcserver.err
.
If the service does not start, the latter is a good place to look for clues.
For example,
$ cd var/opt/xcompute/xcserver/log
$ tail xcserver.err
Cannot authenticate without a fingerprint. Aborting.
Authentication Failed.
A valid certificate is required to launch xcompute-server...
See https://xplicitcomputing.com/help.html for details
If it starts successfully, xcserver.log
will show
the software version (e.g., 25.1-...
),
license certificate loading,
launching XCOMPUTE-SERVER,
and CPU and OpenCL resources that are available.
For example, the last few lines of the start-up may include:
Model name: Intel(R) Core(TM) i9-9900 CPU @ 3.10GHz
CPU(s): 16
NUMA node0 CPU(s): 0-15
...
compute platform: NVIDIA CUDA
OpenCL 3.0 CUDA 12.4.131 (FULL_PROFILE)
...
Adding Users#
[DESCRIBE] User fingerprints.
[DESCRIBE] Guests.
Appendix A: Installing OpenCL Drivers#
OpenCL 1.2+ must be installed on your desired compute platform to run xcompute-server
.
An Installable Client Driver (ICD) is required to map the hardware to the OpenCL context.
It is recommended to install ‘clinfo’ first as to always know the OpenCL platform and device state (but it is also bundled with xcompute-server).
sudo apt install clinfo ocl-icd-libopencl1
Once clinfo is installed, often check the OpenCL status:
clinfo
The initial output of clinfo
may look something like this:
Number of platforms 1
Platform Name NVIDIA CUDA
Platform Vendor NVIDIA Corporation
Platform Version OpenCL 3.0 CUDA 11.4.158
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_global_int32_base_atomics ...
Note that the correct vendor platform(s) and device(s) appear. If they do not, don’t panic!
Processor vendors (Intel, AMD, NVIDIA, etc) provide the ICD “drivers” for most modern CPUs and GPUs, often available for download on their website and/or through package mananagers and ppa’s.
OpenCL drivers are vendor-specific. If you’ve got a dedicated GPU, you’ll probably want to use that for compute. If you’ve got a many-core CPU and a light-weight VGA adapter, you’ll probably want CPU for compute. Sometimes both works well. There are other types of devices that also support OpenCL (such as FPGA) though those installers aren’t included here (see Xilinx, etc).
AMD’s GPU ICD#
Find and download the latest AMD-GPU-PRO package: https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-20-30
Navigate to the folder and install from command line with the following options:
./amdgpu-pro-install -y --opencl=rocm
If deploying on a headless compute-only server, it is recommended to include the --headless
option to omit graphics drivers.
Following installation, it is necessary to add user xcompute
(and/or $LOGNAME
) to the video
and render
groups to enable GPU access:
sudo usermod -a -G video xcompute
sudo usermod -a -G render xcompute
NVIDIA’s GPU ICD#
For new Ubuntu versions with NVIDIA, if you have not previously installed the driver and CUDA packages, ‘clinfo’ may not show your hardware. The remedy requires a two-step process:
Install the Ubuntu CUDA package:
sudo apt install nvidia-cuda-toolkit
Add the Ubuntu PPA (personal package archive) for graphics drivers, and then install the NVIDIA driver.
sudo apt-add-repository ppa:graphics-drivers/ppa
sudo apt update; sudo apt upgrade
sudo apt install nvidia-driver-NNN
For Ubuntu 20.04, NNN = 470 has worked. (For Ubuntu 18.04, NNN = 396 has worked.) However, this may be card and OS-dependent. A good initial approach is to install the vendor-recommended graphics adapter driver version, and then match the OpenCL driver.
Drivers can be downloaded via https://www.nvidia.com/drivers or installed through a package manager for the corresponding NNN driver number, such as:
sudo apt install nvidia-opencl-icd-NNN
Remove old/bad drivers and reinstall:
sudo apt purge nvidia*
followed by
sudo apt install nvidia-NNN
Intel’s CPU ICD#
Please see https://software.intel.com/en-us/articles/opencl-drivers for more information.
Generally, Mesa compatibility drivers are strongly not recommended for compute.
Often changes to GPU drivers will require reboot for changes to take effect.