SimhiveSimhive · docs · página del pool

Cómo funciona el pool

No hay ningún servidor que simule. Simhive divide cada sim en lotes entre los PCs de los miembros, mide lo que entrega cada máquina en iteraciones de SimulationCraft y usa esa puntuación solo cuando el pool está saturado.

No hay ningún servidor que simule. Simhive en sí es un pequeño intermediario: lleva la lista de máquinas, reparte los lotes y guarda la puntuación. La potencia de cálculo son los PCs de los propios miembros. Todos ejecutan la misma app de Simhive, y esta hace dos cosas.

  • Cuando simulas, tu trabajo se corta en lotes (un Droptimizer de 200 objetos se convierte en unas docenas de lotes) y se reparte entre todas las máquinas online; las más rápidas reciben lotes más grandes. Cada máquina simula su lote con SimulationCraft y devuelve los números; tu Simhive los une en un solo informe. Un Droptimizer que a solas tarda 20 minutos, en diez máquinas tarda un par.
  • Cuando no, tu PC toma lotes para los demás, con los hilos que permitas, nunca mientras WoW está abierto (salvo que tú lo digas), nunca para otra cosa que SimulationCraft sobre texto plano. Tu propia máquina también ayuda con tus propias sims, como cualquier otra.

Nadie tiene que dejar un PC encendido. La app no hace nada mientras está cerrada, y un miembro que solo simula y nunca presta sigue siendo atendido; el último de la fila cuando hay mucha gente, nada más.

Límites #

Una sim puede ser larga (una carrera de mazmorra de 30 minutos no es problema), pero no infinita: como máximo 1800 s de combate, 200.000 iteraciones por perfil, un error objetivo no más fino de 0,05 %, 20 objetivos, 1000 profilesets y un presupuesto total de segundos simulados que rechaza la combinación que no terminaría en un tiempo razonable. Cada máquina corta un lote a los 20 minutos. Estas reglas se comprueban en el pool y otra vez en cada máquina; ningún cliente puede saltárselas.

Qué se mide, y cómo #

  • La unidad son iteraciones de SimulationCraft de un combate de cinco minutos. Cada lote que devuelve una máquina dice cuántas iteraciones ejecutó y cuánto duraba el combate; una iteración de una ruta de mazmorra de 35 minutos cuenta siete veces más que una de Patchwerk, así que prestar tu tarde a sims de rutas se acredita por el trabajo, no por la cantidad. Ese número se apunta al miembro dueño de la máquina como aportado y al miembro de quien era la sim como usado. Las iteraciones son lo único que reporta cada lote y que nada puede inflar: una máquina rápida que devuelve un lote en 2 s y una lenta que necesita 20 s entregaron las mismas iteraciones. La rápida solo recibe más lotes, y por eso gana más por hora. El número de núcleos, la frecuencia o lo que una máquina diga de sí misma nunca entran en la puntuación.
  • Guardia. Una máquina que está online y lista mientras el pool no tiene nada que repartir gana un pequeño crédito: el 5 % de lo que habría simulado a su velocidad medida. Premia estar ahí a las 3 de la madrugada sin premiarlo tanto como el trabajo real.
  • La velocidad (it/s) se muestra en la sim de referencia: un lote pequeño que cada máquina ejecuta al conectarse y una vez al día después, de modo que el número significa lo mismo en un móvil y en una máquina de 14 núcleos, y se mantiene estable entre sims. Al lado, la tasa de la máquina en sus últimos lotes reales, una media móvil que oscila con la carga (una iteración de una pasada precisa a diez objetivos cuesta varias veces una de un solo objetivo). Los lotes se dimensionan y el crédito se otorga según la tasa de sims reales; ninguna de las dos es la puntuación. Hasta que una máquina ha sido probada o ha hecho un lote real, muestra «sin medir».
  • El benchmark de CPU. Una vez al día, cuando no tiene nada que hacer y no estás jugando, cada máquina ejecuta una sim fija en un hilo — el mismo perfil, la misma semilla y las mismas 1.000 iteraciones en todas, cronometradas por el propio SimulationCraft. Eso da su velocidad por núcleo, y la tabla del benchmark la reúne por modelo de CPU: cómo rinde el chip de un móvil frente al de un PC, medido con SimulationCraft y no deducido de la frecuencia. Tu app muestra el número de cada máquina y su puesto en la tabla. Como la velocidad, nunca entra en la puntuación.
  • Puntuación = aportado + guardia, en una ventana móvil de 30 días; los días más antiguos se caen. Tus propias máquinas simulando tus propios trabajos son neutrales: nada aportado, nada usado.

Qué hace la puntuación, y qué no #

Fuera de las horas punta no hace nada: quien simula recibe todo el pool. Solo cuando hay más trabajos en cola de los que el pool puede ejecutar a la vez, la puntuación los ordena. El peso de cada miembro es su puntuación más un margen gratuito de 150.000 iteraciones (más o menos un Droptimizer, para que un recién llegado no se quede atascado detrás de todos), y los lotes van a los trabajos en espera en proporción a peso × tiempo esperado. Quien más aporta es atendido antes, pero nadie espera para siempre. La puntuación nunca limita cuánto puedes simular, nunca bloquea a nadie y no hay nada que comprar.

Tu situación está en el panel Pool de tu app: puntuación, aportado, usado, guardia, puesto. La clasificación ordena a los miembros por lo que aportaron; nadie ve lo que otro simuló ni usó.

Una sola build de SimulationCraft para todos #

El pool fija un commit de SimulationCraft, que avanza cada noche, y cada máquina obtiene exactamente esa build de un canal público de builds, con checksum verificado, nunca del pool. Un Droptimizer repartido entre diez máquinas tiene que dar una sola respuesta, así que, por diseño, nadie puede quedarse en otra build.