El problema: duplicar recursos sin reducir la espera a la mitad
Una empresa quiere reducir la respuesta de su IA. Si un dispositivo tarda doce milisegundos, dos deberían tardar seis. Pero deben intercambiar resultados, esperarse y combinar la respuesta. Ese tiempo puede consumir toda la ventaja. La pregunta es concreta: ¿cuánto trabajo hace falta para que repartir el modelo acelere la misma operación?
Construiremos un cálculo divisible, un balance temporal y un umbral. Sin reconstruir cada ecuación, pueden seguirse tres preguntas: qué dividimos, qué viaja y cuánto ahorramos. Todos los tiempos son parámetros hipotéticos de un modelo aritmético ejecutado en Python. No usamos dos GPU ni medimos redes; no son resultados de productos o instalaciones EL-AI.
Dividir un modelo no es replicarlo
El paralelismo de datos usa copias en ejemplos distintos; entrenar exige coordinar actualizaciones. El de modelo distribuye partes de una misma operación. Estudiamos el reparto de matrices, llamado paralelismo tensorial. Un tensor es un arreglo multidimensional; una matriz tiene dos dimensiones. Procesar más solicitudes por segundo no equivale a reducir la espera individual.
Tomemos una red mínima: vector fila x, matriz A con cuatro valores intermedios, ReLU que cambia negativos por cero y matriz B con dos salidas. No es un modelo lingüístico entrenado; muestra dónde surge comunicación. Dimensiones: x de 1 × 2, A de 2 × 4, B de 4 × 2. Los números carecen de unidades físicas.
Separamos dos primeras y dos últimas columnas de A, y las filas correspondientes de B. El dispositivo 1 calcula ReLU([1,1]) y contribuye [1,1]; el segundo calcula ReLU([0,4]) y contribuye [−4,8]. Sumados dan [−3,9], la salida original. Si ambos necesitan la salida completa, deben recibirla. Una operación colectiva all-reduce combina contribuciones y entrega el resultado a todos.
La suma no atraviesa libremente una función no lineal: ReLU(2 − 3) es cero, pero ReLU(2) + ReLU(−3) es dos. El reparto de filas y columnas cambia puntos de comunicación obligatoria. El ejemplo entero verifica equivalencia algebraica; precisión y orden de sumas flotantes pueden introducir diferencias. Hay que comprobar calidad además de velocidad.
Un balance temporal con unidades explícitas
Modelamos una fase mayor. S es tiempo indivisible y C divisible en un dispositivo. En dos idénticos, el ideal sería C/2. La eficiencia local η = 0,8 supone el 80% de esa eficiencia ideal y da C/(2η). No es probabilidad ni utilización de GPU del panel: resume forma del cálculo e implementación, excluyendo comunicación contada aparte.
Q cuenta comunicaciones serializadas; ℓ es su coste fijo, V los bytes por camino crítico efectivo y B bytes efectivos por segundo. H es tiempo total de comunicación. V no tiene por qué coincidir con tamaño lógico del tensor: puede haber fragmentos o rondas. Q y V dependen de la configuración. Suponemos comunicaciones iguales, sin solapamiento, competidores ni colas.
| Parámetro hipotético | Valor |
|---|---|
| S | 0.8 ms |
| C | 12 ms |
| η | 0.8 |
| Q | 4 |
| ℓ | 0.03 ms |
| V | 2 000 000 bytes |
| B | 10 GB/s = 10¹⁰ bytes/s |
Usamos GB decimales: diez mil millones de bytes por segundo, no gigabits ni gibibytes. Cada envío tarda 0,2 ms más 0,03 ms de inicio; cuatro cuestan H = 0,92 ms. El cálculo requiere 12/(2 × 0,8) = 7,5 ms. T₁ = 12,8 ms y T₂ = 9,22 ms: aceleración 1,388, no dos. Evalúan las hipótesis de la tabla, no una tarjeta real.
Derivar el punto de equilibrio
Para decidir exigimos T₂ menor que T₁. S aparece en ambos y se cancela. Quedan ahorro de cálculo y H. Reordenando: el tiempo ahorrado debe superar la comunicación añadida.
Con η = 0,8, el factor es 0,375 y el umbral 0,92/0,375 = 2,45333 ms. Allí los tiempos coinciden; C debe superarlo. Con C = 1 ms, uno tarda 1,8 ms y dos 2,345: más recursos aumentan espera. Si η no supera 0,5, el denominador no es positivo: repartir no ahorra cálculo y comunicación positiva impide acelerar en este modelo.
Bajar banda a 1 GB/s manteniendo C = 12 ms da H = 8,12 y T₂ = 16,42 ms: incluso el trabajo mayor empeora. A 50 GB/s, H = 0,28 y T₂ = 8,58 ms. Banda infinita elimina V/B, no cuatro inicios. Mensajes grandes dependen de banda; muchos pequeños pueden depender de coste fijo. Agruparlos puede ayudar y también retrasar disponibilidad.

Latencia, productividad y eficiencia son distintas
Aceleración es T₁/T₂; eficiencia paralela con dos dispositivos es la mitad, aproximadamente 0,694. No significa desperdiciar 30,6% de energía: comparamos tiempos y recursos, no potencia. Ambos quedan ocupados juntos. Si cabe en una tarjeta y las solicitudes son independientes, dos réplicas pueden aumentar capacidad. Compararlas exige carga, colas y restricciones de memoria ausentes aquí.
S también importa: se cancela en el equilibrio por ser común, pero reduce beneficio relativo. Con S = 100 ms, C = 12 y 10 GB/s, los tiempos son 112 y 108,42 ms: aceleración 1,033. Optimizar una parte pequeña apenas afecta al usuario. Si distribuir añade trabajo serial, debe sumarse a T₂ y empeora el umbral; no puede cancelarse como común.
Solapar no hace desaparecer la comunicación
Puede comunicarse mientras se calcula otra parte. Imaginemos dos bloques perfectamente solapables de duración C/(2η) y H. El total no baja del mayor: cota optimista S + max[C/(2η),H], 8,3 ms frente a 9,22. No es predicción: cálculos dependientes esperan resultados y tráfico puede competir por memoria o ejecución.
Aumentar lote puede mejorar eficiencia, pero cambia datos transmitidos y espera para agrupar ejemplos. No basta aumentar C si también cambian V y η. Pasar de dos a cuatro dispositivos cambia algoritmo colectivo, topología, mensajes y dimensiones locales. La figura varía solo C para aislar una causa, no promete esa curva a toda carga real.
De la derivación a mediciones verificables
El código no usa bibliotecas distribuidas: calcula red completa y partes con listas enteras, verifica igualdad y evalúa fórmulas. El fragmento imprime [−3,9] y seis casos del JSON. La curva es determinista, sin semilla. No cronometramos Python para llamarlo tiempo de GPU; sería otra comparación engañosa.
Validar hardware exige fijar modelo, precisión, entradas, dispositivos, enlaces, controladores y versiones. Separar inicio y calentamiento, esperar finalización asíncrona real y observar trazas. Media, mediana y percentiles responden preguntas distintas; menor media puede ocultar colas largas. El protocolo hace comprobable el análisis, pero no se ejecutó.
Megatron-LM, arXiv versión 4 del 13 de marzo de 2020, describe particiones coordinadas y comunicaciones Transformer. Sus experimentos también varían tamaño del modelo: no miden nuestro trabajo fijo y no trasladamos porcentajes a este ejemplo.
PyTorch documenta all-reduce y herramientas de perfilado. Orienta observación real; no demuestra que la fórmula modele todos los backend ni que llamadas asíncronas eliminen dependencias.
La misma fórmula orienta una pregunta a la red
Invertimos la pregunta: con trabajo fijo, ¿qué banda efectiva mínima conviene? Aislamos V/B. Aquí C y ℓ se expresan en segundos, V en bytes y B en bytes por segundo. La cota corresponde a comunicación efectiva, no a la velocidad anunciada del puerto.
D es tiempo disponible por transferencia tras el inicio. Con C = 0,012 s, D = 0,001095 s: banda superior a 1,82648 GB/s. Si D no es positivo, ninguna banda finita basta; iniciar ya consume el margen. Un enlace teóricamente más ancho no resuelve todo. Debe medirse el recorrido completo con iguales mensajes y algoritmo.
También aislamos η: si C supera H, debe superar C/[2(C − H)]. Con C = 12 ms y H = 0,92 ms da 0,54152; con C = 1 ms da 6,25, imposible suponiendo eficiencia máxima uno. Eliminar toda ineficiencia local no bastaría. Son perspectivas del mismo balance que descartan optimizaciones incapaces de cambiar la decisión incluso perfectas.
Respuesta a la pregunta inicial
Dos dispositivos aceleran solo si el cálculo ahorrado supera costes añadidos. Con nuestras hipótesis hacen falta más de 2,45333 ms divisibles; a 12 ms la aceleración es 1,388. Banda, inicio, eficiencia y dependencias cambian el umbral. Dividir puede permitir que un modelo quepa sin acelerarlo, otro objetivo. Conviene distinguir capacidad, respuesta y coste, y medir el recorrido relevante para usuarios.
Bibliografía y reproducibilidad
PyTorch — Distributed communication package: all_reduce and profiling collective communication.
from experiment import run
r = run()
print(r['matrix']['full'])
for case in r['cases']:
print(round(case['one_ms'], 6), round(case['two_ms'], 6),
round(case['speedup'], 6))
Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 4 de octubre de 2026.

