Question

Que signifie "logiciel parallèle"? et quelles sont les différences entre " logiciel parallèle " et "logiciel régulier"?

Quels sont ses avantages et inconvénients?

Est-ce que l'écriture " logiciel parallèle " besoin d'un matériel ou d'un langage de programmation spécifique?

Était-ce utile?

La solution

http://fr.wikipedia.org/wiki/Thread_(computer_science)

  

En informatique, un fil de   l'exécution résulte d'une fourchette d'un   programme d'ordinateur en deux ou plus   exécuter simultanément des tâches. le   mise en œuvre de threads et   les processus diffèrent d'un fonctionnement   système à un autre, mais dans la plupart des cas,   un fil est contenu dans un   processus. Plusieurs threads peuvent exister   dans le même processus et partager   des ressources telles que la mémoire, tout en   différents processus ne partagent pas ces   ressources.

La plupart des langages de programmation modernes prennent en charge le multithreading d’une manière ou d’une autre (même le Javascript dans les versions les plus récentes). : -)

Avantages et inconvénients peuvent dépendre de la tâche. Si vous avez beaucoup de traitement à faire, le multithreading peut vous aider à le diviser en plusieurs unités de travail plus petites sur lesquelles chaque processeur peut travailler de manière indépendante en même temps. Toutefois, le code multithread sera généralement plus complexe à écrire et à gérer que le code à thread unique.

Vous pouvez toujours écrire / exécuter du code multithread sur une machine ne disposant que d’un seul processeur. Bien que les tâches ne soient exécutées que par un seul processeur, le système d’exploitation veillera à ce qu’elles se produisent simultanément en changeant rapidement de contexte et en exécutant quelques instructions à la fois pour chaque thread.

Certains matériels spécialisés que vous connaissez peut-être qui effectuent des tâches parallèles sont le GPU que l’on trouve sur la plupart des nouveaux ordinateurs. Dans cette vidéo, Mythbusters montre la différence entre dessiner sur un processeur mono-thread et un GPU multi-thread:
http://www.youtube.com/watch?v=XtGf0HaW7x4& / a>

Autres conseils

  

Sont les "logiciels parallèles" nécessite un matériel spécifié ou une langue de programmation?

Oui et oui.

Le premier est trivialement facile. La plupart des processeurs modernes (Dites n'importe quoi de plus récent que le m6800) ont des caractéristiques matérielles qui permettent de faire plus d'une chose à la fois, mais pas nécessairement les deux à la fois. Par exemple, lorsqu'une interruption de minuterie se déclenche, un processeur peut enregistrer ce qu'il est en train de faire, puis commencer à faire autre chose. Ces tâches sont exécutées simultanément.

Même sans cela, vous pourriez obtenir deux machines avec une sorte de connexion l'une avec l'autre (comme une simple connexion série via un adaptateur modem null) et les deux peuvent travailler sur la même tâche en parallèle.

La plupart des nouveaux processeurs (non seulement modernes, mais récents) sont dotés de ressources informatiques parallèles. Ces processeurs multicœurs peuvent en réalité travailler sur deux tâches ou plus simultanément, une tâche par cœur, et présentent des fonctionnalités spéciales qui en font coopérer un peu plus efficacement pour ces tâches.

Le second, qui nécessite des outils logiciels spéciaux tels qu'un langage activé en parallèle, est en quelque sorte la partie la plus difficile du calcul parallèle. Si vous êtes la seule personne dans la cuisine, il est assez facile de préparer un repas en suivant chaque recette du début à la fin, une après l'autre, jusqu'à ce que tous les plats soient cuits. Si vous voulez accélérer le processus en ajoutant plus de cuisiniers, vous devez faire plus attention à ne pas vous marcher sur les pieds.

La solution la plus simple consiste à utiliser une bibliothèque de threads qui offre certains outils permettant à plusieurs tâches de s’organiser pour ne pas s’embrasser. Ce n’est pas aussi facile que de marquer un programme comme étant parallèle et que le système s’occupe du reste. Vous devez plutôt écrire chaque tâche pour communiquer avec toutes les autres tâches partout où il est possible qu’elles interfèrent.

Les logiciels parallèles peuvent tirer parti de manière native de plusieurs cœurs / unités centrales sur un ordinateur ou parfois sur plusieurs ordinateurs. Les exemples incluent un logiciel de rendu graphique et un logiciel de conception de circuit.

Je ne suis pas sûr des inconvénients autres que les logiciels prenant en charge les multiprocesseurs.

scroll top