• Aucun résultat trouvé

Threads Programmation multicore Mod`eles de multithreading

N/A
N/A
Protected

Academic year: 2022

Partager "Threads Programmation multicore Mod`eles de multithreading"

Copied!
11
0
0

Texte intégral

(1)

Threads

Programmation multicore Mod `eles de multithreading

(2)

Cores, Processeurs, Multithreading

Il y un continuum entre ces diff ´erentes alternatives

Le SE peut g ´en ´eralement traiter un “hardware thread” comme un CPU 4 processeurs dual-core

'

1 octa-core

(3)

Motivations

M ˆemes que communication entre processus:

Pour profiter du parall ´elisme

Pour des raisons de modularit ´e

Efficacit ´e du partage d’information Mais aussi

Un thread est plus “l ´eger” qu’un processus

Des fois il n’y a pas de processus (e.g. `a l’int ´erieur du noyau)

Eviter de se bloquer sur une op ´eration (responsiveness)´

(4)

Exemples d’usage

Serveur web: beaucoup de requ ˆetes ind ´ependantes

Cr ´eer un processus pour chaque requ ˆete est inefficace

Utiliser un seul thread emp ˆeche de profiter du parall ´elisme D ´ecoupler les t ˆaches ind ´ependantes:

S’occuper de l’interface utilisateur

Chercher des donn ´ees

Faire de la correction orthographique

R ´eorganiser les donn ´ees pour optimiser les acc `es futurs

(5)

Parall ´elisme vs concurrence

Termes cousins mais distincts

Parall ´elisme: acc ´el ´erer l’ex ´ecution d’une t ˆache en la divisant en

´el ´ements ex ´ecutables en m ˆeme temps

Concurrence: D ´ecomposition en plusieurs t ˆaches ind ´ependantes

Types de parall ´elisme

parall ´elisme de donn ´ees: les donn ´ees du calcul sont r ´eparties entre les sous-t ˆaches qui font toutes plus ou moins la m ˆeme op ´eration

parall ´elisme de t ˆaches: chaque t ˆache fait une op ´eration distincte

(6)

Programmation multithreaded

Avenir peu brillant pour la performance single-threaded Moins difficile d’augmenter le nombre de processeurs Plus de travail pour nous

Diviser le travail en sous-t ˆaches ind ´ependantes

Equilibre entre la quantit ´e de travail des t ˆaches´

R ´epartition des donn ´ees pour ´eviter les conflits

Synchronisation

Tester, v ´erifier, d ´eboguer

(7)

Loi d’Amdahl

Les portions de code s ´equentielles sont d ´eterminantes

N

, nombre de processeurs;

S

, portion d’ex ´ecution s ´equentielle

speedup

≤ 1

S +

1−SN

75% d’ex ´ecution en parall `ele sur 1024 processurs

⇒ 3.99x

(8)

Threads noyau et threads utilisateur

Threads utilis ´ees par une application viennent d’une librairie Threads du noyau viennent... du noyau

Les deux sont en partie ind ´ependants

One-to-one: un thread de l’application = un thread du noyau

Many-to-one: un seul thread noyau partag ´e

Many-to-many: N threads application, M threads noyau

One-to-many: usage interne de threads noyau

(9)

POSIX threads ( Pthreads)

Cr ´eer un nouveau thread:

err = pthread_create (&tid, attr, func, arg);

Terminer un thread:

pthread_exit (retval);

Attendre la fin d’un thread:

err = pthread_join (tid, &retval);

Demande de terminaison:

err = pthread_cancel (tid);

(10)

D ´etails s ´emantiques

fork

et

exec

: que faire avec les autres threads?

M ´emoire thread-local

Int ´eractions avec la conversion user-thread

kernel-thread Gestion des signaux

(11)

Signaux POSIX

Utilis ´es pour notifier les processus d’ ´ev ´enements particuliers

Examples: SIGFPE, SIGCHILD, SIGSTOP, ...

Un signal handler r ´epond `a un signal

Par d ´efaut, tuer le processus

Peut ˆetre bloqu ´e, ou ignor ´e

Peut appeler une fonction au choix du programme

Signal rec¸u de mani `ere asynchrone, comme une interruption Quel thread rec¸oit quels signaux? [ + user/kernel thread? ]

Références

Documents relatifs

Les concepteurs de Java ont choisi la m´ethode des moniteurs de Hoare (1974), assez fruste mais fonctionnant : lors de la d´efinition des processus, le programmeur d´ecide que

Une exp´ erience par coloration a montr´ e qu’une rivi` ere souterraine alimente une r´ esurgence dans la vall´ ee. La rivi` ere souterraine a un d´ ebit tr` es sensible aux

Ecrire en Java la gestion d’un tas, repr´esent´e par un tableau : cr´eer, ins´erer, minimum, supprimer (le minimum), modifier une valeur.. Vous programmerez ceci en TP, et

Les donn´ ees d’une sous-cat´ egorie C 0 v´ erifient les conditions suivantes. identit´

On fixe une cat´ egorie C et on prend comme objets les couples (R, M ) d’une monade R sur C et d’un R-module M. Que peut-on prendre comme morphismes pour faire une cat´

Perdre ses photos de vacances : ¸ca n’a pas de

Programme des enseignements – Syst` emes d’information et conception d’entrepˆ ots de donn´ ees – Les principes et la d´ emarche du Data Mining (fouille de donn´ ees)

Objectifs : Maˆıtriser les structures de base de l’informatique (tableaux, listes, files, piles) et les op´ erations ´ el´ ementaires sur ces structures et introduction au