Configuration Instructions to Run Desmond on GPUs

Running Desmond on GPUs achieves exceptional throughput on commodity Linux clusters with both typical and high-end networks and improves computing speed by 100x on general-purpose GPU (GPGPU) compared to single CPU. See Desmond performance data for supported cards for more information.

 

To run Desmond on GPUs, there are several steps to configure the system:

1. Disable ECC memory

Run the following command to disable ECC memory on your GPUs:

nvidia-smi -e 0

Reboot the machines. Check the output of the nvidia-smi to ensure all GPUs have ECC memory diabled.

 

2. Set Compute Mode

Set the compute mode of the GPU to  ""Exclusive Process"":

nvidia-smi -c 3

On some systems, you may need to set the compute mode for each card individually:

nvidia-smi -c 3 -i 0
nvidia-smi -c 3 -i 1
...

To enable this options automatically, add the above lines to /etc/rc.local.

 

3. Enable Persistence Model

Enable persistence mode for faster startup of the CUDA runtime:

nvidia-smi -pm 1

This line can also be added to /etc/rc.local to ensure it is set on boot.

Ensure that /dev/nvidiactl is created and the kernel module is loaded.

 

Add the line below to /etc/rc.local as well.

modprobe nvidia

 

Ensure that users can read and write to the /dev/nvidia* devices:

chmod 666 /dev/nvidia*

 

 

4. Set up and configure the software

 

After installing the Schrödinger software, ensure that the GPU cards are recognized by the software by running the following command: 

$SCHRODINGER/utilities/query_gpgpu -a

 

Note: Using GPUs in combination with FEP jobs requires a batch queueing system. For other jobs it is highly recommended.

 

5. Configure schrodinger.hosts file

Single Host Configuration

To make use of GPU cards for Desmond calculations, the schrodinger.hosts file must be configured for each host.

 

Queueing System Host Configuration

For each queueing system, there are numerous ways to configure the queue and make resource requests.