
El acoplamiento es un trabajo de rendimiento. Las GPU tienen sentido cuando se preparan entradas limpias y se ejecutan muchas réplicas en paralelo. En esta guía se muestra cómo ejecutar el acoplamiento de una GPU, procesar miles de ligandos por lotes y realizar un seguimiento coste por cada 10 000 ligandos.
En la mayoría de los arrendatarios de GPU, su trabajo se ejecuta dentro de una imagen. Dos rutas que funcionan bien:
A) Usa una plantilla CUDA y monta herramientas de acoplamiento (simple)
B) Traiga su propia imagen (la más rápida de reutilizar)
NVIDIA_VISIBLE_DEVICES=TodosNVIDIA_DRIVER_CAPABILITIES=Computación, utilidad/trabajo, y espera (o inicia el lote).Tú sí no necesita Docker‑in-Docker en general, ya que su proveedor pasa el controlador del host a su contenedor.
Diseño del directorio
/trabajo
├── receptor/
│ ├── proteína.pdbqt
│ ── grid/ # mapas y configuración
├── ligandos/
│ ├── L000001.pdbqt
│ ├── L000002.pdbqt
│ ──...
── empleos/
── (sale aquí)
Receptor
Ligandos
Este esqueleto ejecuta los ligandos en pequeños fragmentos, mantiene la GPU alimentada y escribe registros que puede analizar más adelante. Sustituya el DOCK_CMD con la llamada exacta de la herramienta (AutoDock-GPU, Vina-GPU, Uni-Dock, etc.).
#! /usr/bin/env bash
establecer -euo pipefail
LIG_DIR=$ {1: -ligandos}
OUT_DIR=$ {2: -trabajos}
N_PAR=$ {3: -8} # procesos simultáneos por GPU (ajuste)
mkdir -p «$OUT_DIR»
# Edita esto según tu comando de acoplamiento. Ejemplos de marcadores de posición:
# autodock_gpu --lrigid receptor/protein.pdbqt --receptor de archivos/grid/maps.fld\
<ligand.pdbqt># --lfile --center_x... --centro_y... --center_z... --tamaño_x... --tamaño_y... --tamaño_z... \
<out.pdbqt># --exhaustividad 8 --out --log <out.log>
DOCK_CMD () {:;}
exportar -f DOCK_CMD
ls «$LIG_DIR» /*.pdbqt | awk '{print NR, $0}' | mientras lee idx lig; do
base=$ (nombre base «$lig» .pdbqt)
out="$OUT_DIR/$BASE»
mkdir -p «$out»
(
DOCK_CMD «$lig» «$out» >"$out/run.log» 2>&1 || echo «FAIL $base» >> «$OUT_DIR/failures.txt»
) y
# acelerador simple
if (($ (jobs -rp | wc -l) >= N_PAR)); luego espera -n; fi
terminado
espera
echo «Listo. Salidas en $OUT_DIR/»
Afinación N_PAR
nvidia-smi para memoria y utilización.Si tu instancia tiene Sin GPU, lanza un lote por GPU y fija cada grupo de procesos:
# GPU 0
CUDA_VISIBLE_DEVICES=0 ligandos bash dock_batch.sh jobs/gpu0 8 &
# GPU 1
CUDA_VISIBLE_DEVICES=1 ligandos bash dock_batch.sh jobs/gpu1 8 &
espera
Mantenga las salidas separadas por GPU para facilitar la auditoría.
Registra solo lo que importa:
entradas: N_ligandos, receptor, cuadrícula (centro/tamaño), exhaustividad/semilla
hardware: modelo de GPU/VRAM, CUDA, controlador
código: versión de la herramienta de acoplamiento + banderas
métricas: ligandos/hora, fallas, wall_hours
Coste por cada 10 000 ligandos
cost_por_10k = precio_por_hora × horas_pared × (10_000/ N_ligandos)
Informe ligandos/hora y coste por 10 000 por GPU. Mantén la línea de comandos completa en tus métodos.
ZOOM DE GPU
Reduzca el N_PAR, reduzca la exhaustividad o cambie a una GPU con VRAM más grande.
Todos los trabajos fallan rápidamente
Cuadrícula defectuosa o indicadores incompatibles. Vuelva a ejecutar un único ligando con un registro detallado y compárelo con una ejecución de CPU que se sepa que es correcta.
Puntuaciones o poses raras
Diferencias de preparación de entrada (protonación/tautómeros/cargas). Normaliza tu preparación y prueba en una pequeña colección seleccionada.
GPU inactiva
N_PAR es demasiado bajo o la herramienta tiene etapas de CPU previas y posteriores largas. Paralelice las cuadrículas de preparación o previas a la etapa.
hardware:
gpu: "<model>(<VRAM>GB)»
conductor: "<NVIDIA driver>»
<CUDA version>cuda: "»
software:
imagen: "<your docking image or CUDA template>»
<ver><ver>herramienta: «Autodock-GPU <ver>| Vina-GPU | Uni-Dock»
entradas:
receptor: «proteína.pdbqt»
cuadrícula: {centro: [<x>,<y>,<z>], tamaño: [<sx>,<sy>,<sz>]}
<path>ligandos: «N=<... > de»
correr:
lote:
script: "dock_batch.sh»
N_PAR: <int>
banderas: «<exhaustiveness, seed, etc.>»
salidas:
ligandos_por_hora: «<... >»
wall_hours: «<... >»
cost_por_10k: «<... >»
fallas: "<count>(<file path>)»
Inicia una instancia de GPU con una plantilla preparada para CUDA (p. ej., Ubuntu 24.04 LTS/CUDA 12.6) o tu propia imagen de GROMACS. Disfrute de una facturación flexible por segundo con plantillas personalizadas y la posibilidad de iniciar, detener y reanudar las sesiones en cualquier momento. ¿No está seguro de los requisitos de FP64? Póngase en contacto con el servicio de asistencia para que le ayuden a seleccionar el perfil de hardware ideal para sus necesidades informáticas.