XCOMPUTE-SERVER#
XCOMPUTE-SERVER is built and distributed for Linux x86-64 systems:
Installable packages Ubuntu/Debian using *.deb
Manual install for other Linux/Unix using *.tar.gz
This guide will help administrators set up a server host for their team.
Prerequisites#
XCOMPUTE Account#
If you have not done so already sign up for an XCOMPUTE account. You will need it to purchase a license to enable use of XCOMPUTE-SERVER.
Hardware Requirements#
Recommended CPU#
XCOMPUTE-SERVER requires an x86-64 CPU running v3 or v4 microarchitecture. V3 supports CPU features like AVX2, MOVBE, and FMA. V4 supports CPU features like AVX512. To check the microarchitecture version such as the AVX instructions provided by the CPU:
grep flags /proc/cpuinfo | head -1 | grep avx
Recommended GPU#
At least one GPU (or OpenCL 1.2+ processor) is required on each server host. Double-precision (FP64) support is required for both CPU and GPU, driving performance for many numerical methods.
OpenCL drivers are provided by the GPU hardware vendor and bundled with GPU support software. See below section to install drivers for Nvidia, AMD, or Intel.
NVIDIA CUDA and 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.
Recommended Storage#
A dedicated high-speed SSD is recommended for storing your project filesystem (as defined by the input/output paths). Depending on the performance and redudancy requirements, a RAID 0 or RAID 10 configuration may be warranted. Capacities might range from 1TB to 1PB, and/or utilize a mapped NAS.
Recommended Network#
Better results are expected from high-speed low-latency wired networks supporting TCP/IP. LAN subnets should have 1+ Gbps, while WAN should be 100+ Mbps for best experience.
Software Requirements#
XCOMPUTE-SERVER has minimal runtime dependencies, but needs a few low-level libraries:
GLIBC 2.33+
OpenSSL 3
OpenCL drivers
You can check the Linux distro and version by the following:
egrep 'ID=|VERSION_ID=' /etc/os-release
Selecting a package#
Select the version of XCOMPUTE-SERVER that is appropriate for your server host. Remember, by using our software, you (and your organization) are legally bound by the EULA and Terms of Service.
If it’s for your job, startup, or revenue generation, you must purchase a commercial XCOMPUTE-SERVER-STD (Standard Edition) license.
If you are a student or teacher, or are evaluating the software via non-commercial use, XCOMPUTE-SERVER-EDU (Educational Edition) license may be sufficient.
XCOMPUTE-SERVER-EDU is available on the following platforms:
Debian packages (
.deb) for Ubuntu 24+ / Debian 12+:xcompute-server-edu_linux-u24-x86_64.deb.Debian packages (
.deb) for Ubuntu 22 / Debian 11:xcompute-server-edu_linux-u22-x86_64.deb.Compressed tarfiles for Linux GLIBC 2.38+ on x86_64:
xcompute-server-edu_linux-u24-x86_64.tar.xz.Compressed tarfiles for Linux GLIBC 2.34+ on x86_64:
xcompute-server-edu_linux-u22-x86_64.tar.xz.
XCOMPUTE-SERVER-STD is available on the following platforms:
Debian packages (
.deb) for Ubuntu 24+ / Debian 12+:xcompute-server-std_linux-u24-x86_64.deb.Debian packages (
.deb) for Ubuntu 22 / Debian 11:xcompute-server-std_linux-u22-x86_64.deb.Compressed tarfiles for Linux GLIBC 2.38+ on x86_64:
xcompute-server-std_linux-u24-x86_64.tar.xz.Compressed tarfiles for Linux GLIBC 2.34+ on x86_64:
xcompute-server-std_linux-u22-x86_64.tar.xz.
The specific release is denoted in the name by 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-LTS releases, one of the most significant factors is finding the appropriate version of libc.so.6
(found on Debian 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 2.34+ to meet C++20 standards).
The Debian packages are managed by the Debian package management system, and thus 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 installation steps.
In both cases, installation require administrator privileges on the host OS.
Download Package#
Login to your XCOMPUTE account. On the Download page, review the End-User License Agreement (EULA).
Purchase a License#
As your XCOMPUTE-SERVER download completes, you will be asked whether to continue to the subscription page.
Unless you already have an available license key, select “OK” to continue.
Complete the purchase of the XCOMPUTE-SERVER monthly subscription, initiating key-generation.
You will be emailed a license notice, identified by a 32-byte RSA fingerprint.
Available licenses are listed on your user profile account page. It lists the license type (e.g., XCOMPUTE-SERVER-STD), license key fingerprint, and (if assigned) machine ID. See configuration details.
Alongside the package, the generated license can only be used on one machine. See configuration details.
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-u24_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.
Setup#
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
xcomputehas 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=YOUR_XCSERVER_FINGERPRINT # your assigned fingerprint (required)
input=/mnt/FAST_SSD/ # load directory for project (dedicated SSD recommended)
output=/mnt/FAST_SSD/ # save directory for project (dedicated SSD recommended)
Please see xcompute configuration for details.
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:
$ 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)
...
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.