Vue d'ensemble

Ray 2.3, publié le 15 février 2023, introduit les graphes compilés et améliore les performances globales du framework de calcul distribué.

Fonctionnalités principales

Graphes compilés

Les graphes compilés (CompiledDAG) optimisent les pipelines de tâches en pré-compilant le graphe d'exécution, réduisant la latence entre les étapes.

python
import ray

ray.init()

@ray.remote
def transformer(donnees):
    return [x * 2 for x in donnees]

@ray.remote
def agreger(resultats):
    return sum(resultats)

# Pipeline de tâches distribuées
lots = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
futures = [transformer.remote(lot) for lot in lots]
resultats = ray.get(futures)
print(resultats)  # [[2,4,6], [8,10,12], [14,16,18]]

Améliorations de performance

Le runtime Ray bénéficie d'optimisations de la sérialisation des objets et de la gestion mémoire, réduisant l'overhead pour les tâches à grain fin.

python
import ray
import numpy as np

@ray.remote
class Compteur:
    def __init__(self):
        self.n = 0

    def incrementer(self):
        self.n += 1
        return self.n

# Acteur distribué
compteur = Compteur.remote()
futures = [compteur.incrementer.remote() for _ in range(100)]
print(ray.get(futures[-1]))  # 100

Sources