Calcul à haut débit (HTC)

Veuillez noter que cette fonctionnalité est actuellement en version bêta et n'est pas activée par défaut. Veuillez contacter l'architecte de solutions ou le responsable de compte de votre organisation pour activer l'accès.

Marché

Redimensionner Calcul à haut débit (HTC) est un produit Rescale basé sur une API permettant d'exécuter un grand nombre (par exemple, des centaines à des millions) de tâches simultanées petites et découplées (par exemple, des cœurs à un chiffre vers des instances à un chiffre et aucun MPI multi-nœuds).

Calcul haute performance (HPC) utilise des clusters pour résoudre des tâches de calcul avancées. Les tâches volumineuses sont divisées en sous-tâches et résolues en parallèle sur plusieurs nœuds. grappe. Un HPC grappe est un ensemble de machines (nœuds) homogènes et interconnectées. Chaque nœud exécute une copie d'un programme préinstallé fonctionnant sur des données représentant une partie d'une tâche. Pour arriver à une solution globale, les nœuds d'un cluster HPC doivent communiquer entre eux et doivent donc être à proximité (même centre de données, même rack). Les calculs HPC sont étroitement couplés et échouent en cas de défaillance de nœuds individuels.

L’objectif du HPC est de réduire le temps d’obtention des résultats d’un calcul individuel et de maximiser les opérations par seconde. La durée de vie d’un cluster HPC cloud à la demande est aussi courte que possible.

Capture d'écran 2023 08 28 à 4.17.46:XNUMX:XNUMX

Calcul à haut débit (HTC) utilise plusieurs nœuds sur de longues périodes pour résoudre plusieurs tâches de calcul. Chaque tâche exécute un programme inclus dans un CONTENANT image stockée dans un registre. Semblable au HPC, le travail de calcul est divisé en plusieurs tâches. Contrairement au HPC, les tâches HTC sont réservées à un seul utilisateur. charge de travail peut facilement être de l’ordre de 1,000 10,000 à XNUMX XNUMX.

Organisation du calcul dans HTC

Les emplois HTC sont organisés selon une structure hiérarchique, au sein d'un espace de travail en utilisant HTC, la hiérarchie est présentée dans le diagramme ci-dessous et est la suivante :

Projet: Un espace de travail peut contenir un ou plusieurs projets. Bien que ce ne soit pas une exigence, les projets sont généralement des entités à durée de vie semi-longue permettant d'organiser diverses instanciations de charges de travail d'un ou de plusieurs utilisateurs.

Tâche: Un projet peut contenir une ou plusieurs tâches. Une tâche est généralement censée être éphémère et encapsule une « exécution » de la charge de travail d'un utilisateur.

Emploi: Une tâche contient de nombreux travaux. Le travail est l'unité de base du travail. Les emplois sont indépendants les uns des autres.

L'objectif de HTC est de maximiser le nombre de tâches terminées en une semaine ou un mois, plutôt que d'optimiser le temps nécessaire à une seule tâche. C'est la partie « débit » de HTC.

Capture d'écran 2023 08 28 à 4.12.20:XNUMX:XNUMX

Organisation des données dans HTC

Chaque projet dispose d'un stockage « partagé » auquel toutes les tâches peuvent accéder. Chaque tâche dispose également d'un stockage alloué dédié uniquement à la tâche. Les tâches d'une tâche donnée ne peuvent accéder qu'aux données du stockage de cette tâche et non au stockage associé à d'autres tâches. De même, les tâches d'un projet donné ne peuvent accéder qu'aux données partagées du projet dans lequel réside leur tâche.

En général, les utilisateurs ont tendance à utiliser le stockage de projet pour les fichiers d'entrée partagés au sein d'une tâche. Le stockage des tâches est généralement utilisé pour les fichiers d'entrée spécifiques à une tâche et les fichiers de sortie des tâches de cette tâche.

Le stockage des projets et des tâches est actuellement soutenu par stockage d'objets. Le stockage d'objets dans plusieurs fournisseurs de cloud et régions est rendu disponible via l'API HTC afin que les données puissent être colocalisées à proximité du calcul qui les consomme et les produit.

L'API Rescale HTC

Le diagramme suivant représente toutes les ressources exposées par l'API Rescale HTC. Les sections suivantes les décrivent plus en détail. La documentation complète de l'API HTC bêta peut être trouvée ici.

Accéder à l'API HTC

L'accès à l'API HTC doit d'abord être activé sur un espace de travail Rescale donné par un architecte de solution Rescale. Une fois l'accès accordé, une clé API Rescale doit être utilisée pour s'authentifier, voir ici pour générer ou accéder à une clé API dans votre espace de travail compatible HTC.

Authentification avec l'API HTC

Cette clé API Rescale est une clé API utilisée pour accéder aux API HTC sur la plateforme Rescale via l'API publique Rescale. Avec cette clé, vous pouvez ensuite générer un jeton de porteur utilisateur de l'API HTC, ce jeton de porteur est utilisé pour accéder au reste des API HTC. Vous spécifiez la clé API Rescale dans l'en-tête d'autorisation d'une requête HTTPS de la manière suivante pour obtenir un jeton de porteur via le /auth/jeton/point de terminaison:

curl -H « Autorisation : jeton » https://htc.rescale.com/api/v1/auth/token 

Dans la charge utile, une tokenValue de support temporaire est fournie. Ce jeton est utilisé pour tous les accès ultérieurs à l'API HTC. Chaque jeton de porteur expire 6 heures après son émission, les nouveaux jetons de porteur doivent donc être récupérés avec la clé API Rescale à l'expiration.

Pour utiliser le jeton du porteur pour authentifier les appels API HTC, vous le désignez dans l'en-tête :

curl -H « Autorisation : Porteur » https://htc.rescale.com/api/v1/htc/…

Gérer des projets

Les projets HTC sont utilisés pour gérer le calcul et les données sur plusieurs charges de travail. Les projets peuvent être créés, mis à jour avec les nouvelles régions et limites disponibles, et peuvent recevoir des fichiers dans le magasin de projets. Les différents points de terminaison de l'API liés au projet sont documentés ici.

Les projets sont créés par les administrateurs de l'espace de travail et ne peuvent généralement pas être gérés par les utilisateurs HTC disposant d'un accès administratif.

Registres de conteneurs de projet

Chaque projet a son propre CONTENANT enregistrement. Les images du registre de conteneurs du projet sont accessibles par toutes les tâches HTC exécutées dans les tâches de ce projet. Le registre de conteneurs est en fait le catalogue d'applications disponible pour ce projet.

Un projet peut avoir plusieurs référentiels où chaque référentiel peut contenir plusieurs images de conteneurs, à condition qu'elles aient des balises uniques. Les tâches spécifient le nom du référentiel et toutes les balises d'image souhaitées dans la définition pour désigner le conteneur qui doit s'exécuter pour une tâche.

Il n'est actuellement pas possible de partager des images de conteneurs dans des registres entre projets.

Gérer les tâches

Une tâche HTC contient généralement la ou les charges de travail d'un seul utilisateur. Tout utilisateur au sein d'un espace de travail peut créer des tâches dans un projet particulier, comme indiqué ici.

Soumission et gestion des travaux

Les tâches HTC sont soumises par « lots » à une tâche en utilisant ce Point de terminaison API. Chaque lot de tâches se compose des composants de haut niveau suivants :

nom du travail: Le nom partagé par ce lot de tâches
taille du lot: Le nombre de tâches dans ce lot. Toutes les tâches d'un lot partagent la même définition de tâche
htcJobDefinition: Tous les paramètres partagés entre les tâches de ce lot sont les suivants :
Nom de l'image: L'image du conteneur à utiliser, elle peut également inclure une balise pour un référentiel d'images de conteneur donné
maxVcpus : nombre maximum de processeurs virtuels devant être utilisés par chaque tâche 
mémoire maximale : Le nombre maximal de MiB de mémoire DRAM que chaque tâche pourra utiliser
maxDiskGiB : Gio maximum d'espace disque éphémère que chaque tâche pourra utiliser
commandes: La commande à exécuter lorsque le conteneur est exécuté
execTimeoutSeconds : le nombre maximum de secondes pendant lesquelles un conteneur sera autorisé à s'exécuter avant sa fermeture forcée
architecture: Architecture du processeur utilisée pour exécuter la tâche ; les options actuelles sont X86 ou AARCH64
priorité: Si les emplois doivent fonctionner en priorité à la demande ou en économie à la demande