International Essays

Supercomputación instantánea: Lanzamiento de Wolfram Compute Services

Publicación original

Escale sus cálculos

Supongamos que ha realizado un cálculo en Wolfram Language y ahora quiere escalarlo. Quizás 1000 veces o más. Pues bien, hoy hemos lanzado una manera sumamente sencilla de hacerlo. Tan solo envuelva el cálculo escalado en
RemoteBatchSubmit
y se enviará a nuestro nuevo sistema Wolfram Compute Services. Luego, en un minuto, una hora, un día, o el tiempo que tome, le avisará que ha finalizado y podrá obtener sus resultados.
Durante décadas, a menudo he necesitado realizar cálculos grandes y complejos (usualmente para ciencia), con grandes volúmenes de datos, millones de casos, irreducibilidad computacional desenfrenada, etc. Probablemente tengo más capacidad de cálculo en mi casa que la mayoría de las personas, actualmente alrededor de 200 núcleos. Pero muchas noches dejo toda esa capacidad funcionando, toda la noche, y aun así quiero mucho más. Pues bien, desde hoy existe una solución fácil para todos: simplemente envíe su cálculo a Wolfram Compute Services para que se realice básicamente en cualquier escala.
Durante casi 20 años, hemos contado con funciones incorporadas como
ParallelMap
y
ParallelTable
en Wolfram Language que permiten paralelizar \bsubcálculos de manera inmediata. Pero, para que esto realmente nos permita escalar, debemos contar con la capacidad de cálculo. Y ahora, gracias a nuestro nuevo Wolfram Compute Services, esto es algo que todos pueden obtener de inmediato.
Las herramientas subyacentes que hacen que Wolfram Compute Services sea posible han existido en Wolfram Language durante varios años. Pero lo que Wolfram Compute Services hace ahora es reunir todo para proporcionar una experiencia todo-en-uno extremadamente simplificada. Por ejemplo, supongamos que estamos trabajando en un cuaderno y desarrollando un cálculo, y finalmente proporcionamos la entrada que queremos escalar. Normalmente esa entrada tendrá muchas dependencias en las primeras partes del cálculo, pero no es algo que deba preocuparnos. Simplemente hay que tomar la entrada que deseamos escalar y proporcionarla a RemoteBatchSubmit. Wolfram Compute Services se hará cargo de todas las dependencias de manera automática, etc.
Y otra cosa: RemoteBatchSubmit, como todas las funciones en Wolfram Language, trabaja con expresiones simbólicas, las cuales pueden representar cualquier cosa, desde tablas numéricas hasta imágenes, grafos, interfaces de usuario, videos, etc. Eso significa que los resultados obtenidos pueden ser usados inmediatamente, por ejemplo, en un Wolfram Notebook, sin necesidad de importar, etc.
¿Entonces, en qué tipos de máquinas podemos ejecutar? Wolfram Compute Services ofrece varias opciones, adecuadas para distintos cálculos y presupuestos. Existe la opción más básica de 1 núcleo y 8 GB, que puede utilizarse simplemente para “trasladar un cálculo fuera de una máquina propia”. Podemos elegir una máquina con mayor memoria, actualmente hasta unos 1500 GB, o una máquina con más núcleos, actualmente hasta 192. Pero si buscamos aún mayor paralelismo a gran escala, Wolfram Compute Services también puede encargarse de eso, ya que
RemoteBatchMapSubmit
puede asignar una función sobre cualquier número de elementos, ejecutándose en cualquier cantidad de núcleos y a través de múltiples máquinas.

Un ejemplo sencillo

Bien, este es un ejemplo muy sencillo que, de hecho, proviene de una investigación científica que realicé hace poco. Definamos una función PentagonTiling que agregue pentágonos no superpuestos a un conjunto de manera aleatoria:
PentagonTiling[steps_Integer]:=Module{unit,init,res},​​unit=Polygon[N@CirclePoints[5]];init=
[◼]
AddCandidates

[◼]
InitializePolygonAggregation
[{unit},{{1}},unit];DiscretizeGraphicsGraphicsNest
[◼]
RandomAddPolygon
,init,steps["Tiling"]
Para 20 pentágonos, puedo ejecutar esto rápidamente en mi máquina:
In[]:=
PentagonTiling[20]
Out[]=
¿Pero qué sucede con 500 pentágonos? Bueno, la geometría computacional se vuelve complicada y tomaría tanto tiempo que no querría ocupar mi propia máquina haciéndolo. Pero ahora tenemos otra opción: ¡utilizar Wolfram Compute Services!
Y todo lo que tengo que hacer es enviar mi cálculo a RemoteBatchSubmit:
In[]:=
RemoteBatchSubmit[PentagonTiling[500]]
Out[]=
RemoteBatchJobObject
Provider:
Wolfram Batch »
Job type: Single
Job UUID: 1cf0b642-8a88-4fc5-b0e2-59ce2d16c25d
Input: PentagonTiling[500]
Submitted at: Tue 18 Nov 2025 12:08:32 GMT-6

Inmediatamente se crea un trabajo (con todas las dependencias necesarias gestionadas de manera automática), y el trabajo se pone en cola para su ejecución. Unos minutos después, recibo un correo electrónico:
Sin saber cuánto tiempo va a tomar, me pongo a hacer otra cosa.Un rato después, tengo curiosidad por revisar cómo va mi trabajo, así que hago clic en el enlace del correo electrónico y este me lleva a un panel de control en el cual puedo ver que mi trabajo se está ejecutando correctamente:
Me pongo a hacer otras cosas y entonces, de repente, recibo un correo electrónico:

Paralelismo a gran escala

¡Todo es programable!

Y hay más por venir...