C'est une erreur de penser de parallélisme que seulement environ raw de nombreux calculs de puissance. Erlang est plus proche de la façon dont un cluster ordinateur fonctionne que, disons, un GPU classique ou d'un superordinateur.
Dans les Gpu modernes et vieux style de supercalculateurs, la performance est tout au sujet de vectorisé arithmétique, à des fins spéciales de calcul de matériel, à faible latence et la communication entre les unités de traitement. Parce que la communication de la latence est faible, et chaque unité de calcul est très rapide, l'idéal modèle d'utilisation est à la charge de la machine RAM avec des données et à les traiter tous à la fois. Ce traitement peut impliquer beaucoup de transmission de données entre les nœuds, comme il arrive dans le traitement de l'image ou de la 3D, là où il y a beaucoup de CPU des tâches à faire pour transformer les données de formulaire de saisie pour le format de sortie. Ce type de machine est un mauvais choix quand vous avez fréquemment à aller vers un disque réseau, ou certains autres lente canal d'e/S pour les données. Cela tourne au ralenti au moins un cher, processeur spécialisé, et probablement aussi étouffe les données pipeline de traitement si rien d'autre ne se fait, soit.
Si votre programme nécessite une utilisation intensive de la lenteur de canaux I/O, un meilleur type de machine est avec beaucoup de bon marché des processeurs indépendants, comme une grappe. Vous pouvez exécuter Erlang sur une seule machine, dans ce cas, vous obtenez quelque chose comme un cluster à l'intérieur de cette machine, ou vous pouvez facilement exécuter sur un matériel réel de cluster, dans ce cas, vous avez un groupe de clusters. Ici, la communication surcharge encore tourne au ralenti des unités de traitement, mais parce que vous avez de nombreuses unités de traitement en cours d'exécution sur chaque bit de matériel informatique, Erlang peut passer à l'un des autres processus instantanément. S'il arrive que l'ensemble de la machine est assis là à attendre sur les I/O, vous avez toujours les autres nœuds du matériel du cluster qui peuvent fonctionner indépendamment. Ce modèle se décompose lors de la communication de la surcharge est si élevé que chaque noeud est en attente sur une autre nœud, ou I/O, dans ce cas, vous avez besoin rapidement d'e/S ou plus de nœuds, qui Erlang naturellement prend avantage de la situation.
La Communication et les systèmes de contrôle sont les applications idéales de Erlang, car chaque individu tâche de traitement ne prend que peu de CPU et seulement de temps en temps besoin de communiquer avec les autres nœuds de traitement. La plupart du temps, chaque processus fonctionne de manière indépendante, chacun prenant une petite fraction de la puissance du PROCESSEUR. La chose la plus importante ici est la possibilité de gérer plusieurs milliers de ces efficacement.
Le cas classique où vous devez absolument classique supercalculateur est la prévision du temps. Ici, vous divisez l'atmosphère jusqu'en cubes et faire de la physique, des simulations pour savoir ce qui se passe dans chaque cube, mais vous ne pouvez pas utiliser un cluster parce que l'air se déplace entre chaque cube, de sorte que chaque cube est en constante communication avec ses 6 voisins adjacents. (L'Air ne passe pas par les bords ou les coins d'un cube, étant infiniment fine, afin de ne pas en parler à l'autre 20 voisins cubes.) L'exécuter sur un cluster, de savoir si l'exécution Erlang ou un autre système, et il devient instantanément I/O bound.