
Doce gigas de RAM sonaban de sobra hasta que probé correr mi primer modelo completo de MaxEnt en R con todas las capas bioclimáticas cargadas al mismo tiempo: la máquina se congeló a medio proceso y tuve que reiniciar sin guardar nada. Ese día entendí que el modelado de nicho no perdona el hardware barato, y desde entonces la pregunta que más me llega por la comunidad de rstats en español —desde quien recién instala R hasta quien ya tiene media tesis corriendo— es siempre la misma: qué computadora hace falta para correr MaxEnt en R sin que todo se trabe.
Antes de esto probé aprender Python primero, porque me parecía más moderno y con más futuro para este tipo de trabajo. No sirvió de mucho: terminé de vuelta en R porque ahí vive la comunidad de modelado de nicho y la mayoría de tutoriales de MaxEnt que necesitaba. Eso no resolvió nada del lado del hardware, pero sí me enseñó que no hay atajo posible: la computadora igual tiene que aguantar el peso, sin importar en qué lenguaje programes. Voy a responder esto con las preguntas que de verdad me hacen, en el orden en que suelen aparecer.
¿Cuántos gigas de RAM hacen falta para que MaxEnt no se cuelgue?
Dieciséis gigas de RAM son el piso real para trabajar con modelado de nicho, no el ideal de folleto que ponen en la publicidad de laptops. Los paquetes que usamos para manejar objetos raster (terra o raster, según cuál tengas instalado) cargan las capas completas en memoria para que el procesamiento sea rápido. Con ocho gigas o menos, R empieza a escribir archivos temporales en el disco duro apenas la sesión se llena, y ahí es cuando un modelo que debería tardar minutos se convierte en una espera eterna frente a la pantalla. Si el presupuesto estira a treinta y dos gigas, mejor: se puede tener el navegador abierto con quince pestañas mientras el modelo corre atrás, un lujo que con dieciséis todavía se paga con el ventilador a todo volumen.
Configurar el Java Heap Space antes de instalar nada más
MaxEnt no corre directamente en R: es un algoritmo escrito en Java, y R tiene que hablar con la máquina virtual de Java a través del paquete rJava para que cualquier modelo funcione. El problema es que Java, por defecto, trae un límite de memoria bajísimo para lo que necesita la ecología. Si no le das permiso explícito para usar más recursos con algo como el parámetro -Xmx (asignándole varios gigas, según cuánta RAM libre haya), da igual si la computadora es una bestia por dentro: el modelo va a seguir tronando. Nathalie Fallas, colega de la comunidad de R en línea, me preguntó una vez por qué a ella esto no le pasa en QGIS. La respuesta corta es que QGIS no depende de arrancar una máquina virtual de Java por debajo del capó; ella ya lo maneja mejor que a MaxEnt, así que se ahorra ese dolor de cabeza entero.

El disco duro es el cuello de botella que nadie revisa
Mucha gente prioriza el procesador más caro sin fijarse en la velocidad del disco, y ahí es donde se frustra igual. Cuando R se queda sin RAM, empieza a escribir en el disco duro; con un SSD decente ese intercambio es fluido, pero con un disco mecánico viejo el resultado es ver el procesador al diez por ciento, la RAM al noventa, y la computadora completamente pegada mientras el disco trata de escribir gigas de temporales. Si el presupuesto alcanza para NVMe en vez de un SSD normal, la diferencia se nota en cada corrida, y sobra para no gastarlo todo en luces de colores que no aportan nada al modelo.
El peso de las capas que se descargan también entra en esta cuenta. Las bioclimáticas de WorldClim (la versión 2.1, la que casi todo el mundo usa) vienen en resoluciones de diez, cinco, dos coma cinco y hasta cero coma cinco minutos de arco, y mientras más fina la resolución, más pesado el archivo y más tarda todo en procesarse. Si el disco anda corto, conviene arrancar con la resolución más gruesa disponible y subir solo si el modelo realmente lo pide; no hace falta empezar por la más pesada para sentir que se está haciendo ciencia en serio. Lo que representa cada una de esas variables bioclimáticas en términos biológicos es tema para otro día.
Y ojo con la conexión: la vez que abrí una capa recién descargada y la pantalla devolvió un rectángulo completamente blanco, de punta a punta, no era un problema de la computadora sino de una descarga que se cortó a medio camino, algo bastante común si se bajan estos archivos pesados con una conexión lenta en cualquier rincón de la región. Desde entonces reviso el peso del archivo apenas termina de bajar, antes de perder tiempo corriendo un modelo con datos corruptos. También dejé de recomendar la versión gratuita de RStudio Cloud (ahora Posit Cloud) para este tipo de trabajo: la memoria que dan de entrada no aguanta ni una corrida real con las capas completas, así que se termina peleando con el límite del servicio en vez de con el propio modelo.

Procesador y núcleos: la verdad sobre la paralelización
Para quien no viene de ciencias de la computación, la palabra "paralelización" suena a un tema de la NASA, pero es simplemente poner a trabajar varios núcleos del procesador al mismo tiempo. Un procesador con hartos hilos permite correr varias réplicas del modelo en simultáneo, en lugar de que MaxEnt haga una validación cruzada tras otra en fila. Si hay que elegir entre gastar más en el procesador o subir la RAM, la recomendación es ir por la RAM: MaxEnt es más devorador de memoria que calculador puro de física. En MaxEnt en R: ¿Curso de pago o el camino del autodidacta terco? Mi balance tras un año de mapas entro en detalle sobre el ajuste fino del parámetro de regularización (beta), que sí importa muchísimo para la calidad del modelo, pero es un tema aparte del hardware: ahí ninguna computadora te salva de entender qué estás haciendo.
Y no, ningún número de núcleos le va a subir el AUC a un modelo — esa parte depende de los datos de presencia y de cómo se limpiaron, no de cuántos hilos tenga el procesador. El hardware pone el techo de velocidad; la calidad de los datos pone el techo del modelo, y son dos problemas completamente distintos.
¿Se puede aligerar la carga sin comprar hardware nuevo?
Antes de gastar en una laptop nueva, hay un paso que casi nadie prueba primero: el adelgazado espacial de los puntos de presencia (spatial thinning, para quien busque el término en inglés). La idea es sencilla: cuando hay cientos de registros de una especie amontonados en el mismo par de kilómetros —típico si se sale siempre a contar aves por los mismos senderos, como pasa cada fin de semana en la Reserva Biológica Carara— eso no le suma información real al modelo, solo le suma sesgo de muestreo y puntos de más que procesar. El adelgazado espacial filtra esos registros para que quede solo uno por cada cierta distancia mínima entre puntos, usando herramientas como el paquete spThin en R. El resultado no reduce el peso de las capas raster, que siguen siendo las mismas, pero sí reduce la cantidad de puntos que MaxEnt tiene que evaluar en cada réplica, y de paso mejora la calidad del modelo porque corrige ese sesgo de agrupamiento espacial. Es el único ajuste gratuito que de verdad ayuda antes de pensar en comprar RAM.
Sistema operativo: no es lo que más pesa, pero ayuda
Windows sigue siendo la opción más común entre quienes venimos de un trabajo que no tiene nada que ver con programación, y funciona bien siempre que se configure el Java Heap Space como corresponde. En Linux, R corre más liviano, sin discusión, pero cambiar de sistema solo para esto no vale la pena si ya hay comodidad con otro. Plácido Arce, un habitué del foro de modelado de nicho, siempre pregunta si esto cambia si en vez de MaxEnt se corre biomod2 — él prefiere biomod2 por razones que nunca termina de explicar del todo, pero en cuanto a hardware el consumo de memoria es parecido: el cuello de botella sigue siendo RAM y disco, no el paquete que se elija ni el sistema operativo de fondo.

Entonces, ¿qué computadora comprar sin quedar en la quiebra?
Si hubiera que armar una computadora desde cero para este trabajo, la prioridad sería: procesador de al menos seis u ocho núcleos físicos (no hace falta el más caro del mercado, pero conviene evitar los modelos de entrada), dieciséis gigas de RAM como mínimo con treinta y dos como meta si el presupuesto da, y un SSD de al menos quinientos gigas, porque menos que eso se llena rápido solo con las capas de WorldClim y los temporales que R va dejando regados. El sistema operativo importa menos que estos tres puntos juntos; lo importante es aprender a gestionar el Java Heap Space en el que sea que se trabaje.
Al final no se trata de comprar la máquina con más luces, sino la que entiende que R y Java devoran recursos sin disculparse. Ahora se pasa más tiempo en el campo, con los binoculares al cuello, y menos frente a una pantalla trabada; las rutas de archivo que no aparecen y las capas que salen en blanco por falta de memoria molestan bastante menos que antes. Si todavía hay dudas entre meterse de lleno en modelado de nicho con MaxEnt o aprender teledetección con R, el hardware que hace falta cambia bastante entre un camino y otro, y ahí sí conviene leer ¿MaxEnt o Teledetección con R? Mi ruta de aprendizaje tras meses de mapas y errores de código para decidir qué equipo conviene según lo que se quiera hacer.
No hay que dejar que una computadora lenta apague las ganas de responder una pregunta biológica propia. Solo hay que darle a Java el espacio que pide y dejar que los núcleos hagan el trabajo pesado que les corresponde.