International Essays

Supercalcul instantané : lancement des services de calcul Wolfram

Article original

Mettez vos calculs à l’échelle

Supposons que vous ayez effectué un calcul en Wolfram Language. Et que vous souhaitiez maintenant le mettre à l’échelle. Peut-être 1000x ou plus. Eh bien, aujourd’hui nous avons publié une manière extrêmement simplifiée de le faire. Il suffit d’envelopper le calcul mis à l’échelle dans
RemoteBatchSubmit
et il sera envoyé à notre nouveau système de services de calcul Wolfram. Ensuite, dans une minute, une heure, une journée, ou plus, il vous indiquera que l’exécution est terminée, et vous pourrez en récupérer les résultats.
Depuis des décennies, j’ai souvent eu besoin d’effectuer de grands calculs exigeants (généralement pour la science). Avec de grands volumes de données, des millions de cas, une irréductibilité computationnelle omniprésente, etc. J’ai probablement plus de capacité de calcul qui traîne dans ma maison que la plupart des gens. Ces jours-ci, c’est environ l’équivalent de 200 cœurs. Mais bien des nuits, je laisse toute cette capacité de calcul fonctionner, toute la nuit, et j’en veux encore beaucoup plus. Eh bien, à compter d’aujourd’hui, il existe une solution simple, pour tout le monde : il suffit d’envoyer de manière transparente votre calcul aux services de calcul Wolfram pour qu’il soit exécuté, pratiquement à n’importe quelle échelle.
Depuis près de 20 ans, nous disposons de fonctions intégrées telles que
ParallelMap
et
ParallelTable
dans Wolfram Language, permettant de paralléliser immédiatement des sous-calculs. Mais pour que cela vous permette réellement de les mettre à l’échelle, il faut disposer de la puissance de calcul. Ce que, grâce à nos nouveaux services de calcul Wolfram, tout le monde peut obtenir immédiatement, désormais.
Les outils sous-jacents qui rendent possibles les services de calcul Wolfram existent dans Wolfram Language depuis plusieurs années. Mais ce que font désormais les services de calcul Wolfram, c’est de tout rassembler afin d’offrir une expérience tout-en-un extrêmement rationalisée. Par exemple, supposons que vous travailliez dans un notebook et que vous construisiez progressivement un calcul. Et qu’à la fin vous fournissiez l’entrée que vous souhaitez mettre à l’échelle. En général, cette entrée comporte de nombreuses dépendances par rapport à des parties antérieures de votre calcul. Mais vous n’avez à vous soucier de rien de tout cela. Il vous suffit de prendre l’entrée que vous souhaitez mettre à l’échelle et de la transmettre à RemoteBatchSubmit. Les services de calcul Wolfram se chargeront automatiquement de toutes les dépendances, etc.
Et une autre chose : comme toute fonction de Wolfram Language, RemoteBatchSubmit traite des expressions symboliques, qui peuvent représenter n’importe quoi : des tableaux numériques aux images, en passant par des graphes, des interfaces utilisateur, des vidéos, etc. Cela signifie donc que les résultats que vous obtenez peuvent être utilisés immédiatement, par exemple dans votre notebook Wolfram, sans aucune importation, etc.
D’accord, alors sur quels types de machines pouvez-vous travailler ?  Eh bien, les services de calcul Wolfram vous offrent une multitude d’options, adaptées à différents types de calculs et à différents budgets. Il existe l’option la plus basique avec 1 cœur et 8 Go que vous pouvez utiliser simplement pour « déplacer un calcul en dehors de votre propre machine ». Vous pouvez choisir une machine avec une mémoire plus importante, actuellement jusqu’à environ 1500 Go. Ou bien vous pouvez choisir une machine avec davantage de cœurs, actuellement jusqu’à 192. Mais si vous recherchez un parallélisme à une échelle encore plus grande, les services de calcul Wolfram peuvent également gérer cela. En effet,
RemoteBatchMapSubmit
peut appliquer une fonction à n’importe quel nombre d’éléments, en s’exécutant sur n’importe quel nombre de cœurs, répartis sur plusieurs machines.

Un exemple simple

Voici donc un exemple très simple qui se trouve provenir de certains travaux scientifiques que j’ai réalisés il y a quelque temps. Définissez une fonction PentagonTiling qui ajoute aléatoirement des pentagones non superposés à un cluster :
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"]
Pour 20 pentagones, je peux exécuter ceci rapidement sur ma machine :
In[]:=
PentagonTiling[20]
Out[]=
Mais qu’en est-il avec 500 pentagones ? Eh bien, la géométrie computationnelle devient difficile et cela prendrait trop de temps et je ne voudrais pas monopoliser ma propre machine pour le faire. Mais il existe désormais une autre option : utiliser les services de calcul Wolfram !
Et tout ce que j’ai à faire est de soumettre mon calcul à 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

Une tâche est immédiatement créée (avec toutes les dépendances nécessaires automatiquement prises en charge). Et la tâche est mise en file d’attente pour l’exécution. Puis, quelques minutes plus tard, je reçois un e-mail :
Ne sachant pas combien de temps cela va prendre, je pars faire autre chose. Mais un peu plus tard, je suis curieux de vérifier comment ma tâche se déroule. Je clique donc sur le lien dans l’e-mail et cela m’amène vers un tableau de bord dans lequel je peux voir que ma tâche s’exécute correctement :
Je pars faire autre chose. Puis, soudain, je reçois un e-mail :

Un parallélisme à grande échelle

J’obtiens le résultat suivant :

Tout est programmable !

Et ce n’est pas tout...