Applications existantes : les pièges à éviter

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Sommaire

Description

Lorsque vous avez une application existante et que vous désirez l'exécuter sur un superordinateur dans le but d'obtenir des résultats plus rapidement, il y a plusieurs pièges dont vous devez vous méfier. Le but de cette page est d'en lister quelques-uns et de les expliquer.

Supposer que l'application fonctionne sur Linux

Le premier piège est de supposer que votre application peut fonctionner sur un superordinateur. C'est souvent le cas, mais il faut d'abord le vérifier. La raison principale qui peut empêcher une application de fonctionner sur un superordinateur est le système d'exploitation. Tous les superordinateurs de Calcul Québec utilisent un système d'exploitation basé sur Linux. Si votre application fonctionne sous Windows uniquement, il sera plus ardu de la faire fonctionner sur l'un de nos serveurs. Ce sera parfois possible, mais il faut vous attendre à devoir surmonter plusieurs obstacles avant que ça fonctionne. Il sera alors souvent préférable d'utiliser une autre application mieux adaptée à nos infrastructures. Nous vous recommandons de vous familiariser à Linux avant de commencer à utiliser nos serveurs.

Supposer que l'application utilise correctement les disques durs

L'une des différences majeures entre un superordinateur et un ordinateur conventionnel est son système de fichier parallèle. En termes techniques, alors que les systèmes de fichiers parallèles offrent des débits bien supérieurs aux unités de stockage sur disque conventionnel, leur latence est généralement plus élevée. En termes simples, les petites écritures et lectures de quelques octets seront bien moins performantes sur un système de fichiers parallèle, alors que les grosses opérations de plusieurs méga-octets seront bien plus performantes. Une application qui n'a pas été conçue pour utiliser un tel système de fichiers risque non seulement de voir ses performances dégradées, mais risque de dégrader les performances des calculs des autres utilisateurs.

Le même constat s'applique pour le nombre et la taille des fichiers. Afin d'optimiser l'utilisation d'un système de fichiers parallèle, il vaut beaucoup mieux écrire quelques fichiers de plusieurs centaines, voire plusieurs milliers de méga-octets, que plusieurs centaines ou milliers de fichiers de quelques kilooctets.

Pour davantage de conseils, visitez notre page Utiliser l'espace de stockage. Vous pouvez trouver des astuces concernant les deux systèmes de fichiers parallèles utilisés à Calcul Québec (Lustre et GPFS) sur leurs pages respectives.

Supposer que l'application s'exécutera plus rapidement sur un superordinateur

En règle générale, une application typique ne fonctionnera pas plus rapidement en utilisant davantage de processeurs. Au mieux, elle fonctionnera aussi rapidement, au pire elle fonctionnera plus lentement et gaspillera des ressources. Afin de s'exécuter plus rapidement, une application doit avoir été conçue afin d'exploiter la puissance de plusieurs processeurs en parallèle. Le mieux qu'il soit possible de faire avec une application série est d'exécuter la même application pour des jeux de paramètres différents, en parallèle. Vous pourrez réaliser ceci, soit en utilisant la syntaxe appropriée dans vos scripts de soumission, soit en utilisant un gestionnaire de processus tel que GNU parallel.

Supposer que votre application parallèle s'exécutera plus rapidement sur davantage de processeurs

Dans presque tous les cas, exécuter une application en parallèle implique un surcoût lié à la communication et à la synchronisation des processus ou des fils d'exécution. Typiquement, une application gagnera en performance à faible nombre de processeurs, puis le gain plafonnera, diminuera à grand nombre de processeurs. Une application peut potentiellement devenir non-fonctionnelle à grand nombre de processeurs. La définition de faible ou grand nombre de processeurs dépendra explicitement de l'algorithme utilisé et de la façon dont il a été implémenté. Il n'y a pas de règle générale pour prédire à combien de processeurs la performance de votre application sera la meilleure. Cela dépendra de multiples facteurs : de l'application elle-même, de ses goulots d'étranglement (mémoire, disque, réseau, cpu), ainsi que de l'architecture du supercalculateur sur laquelle elle s'exécute. La seule règle valable est ainsi de tester l'accélération de votre application en fonction du nombre de processeurs, sur le serveur de calcul que vous comptez utiliser.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager