← Retour au portfolio

Crible d'Ératosthène parallèle

Systèmes 2 — L3 Informatique, UBO — 1 mois

C pthreads Parallélisme

Description

Parallélisation de l'algorithme du crible d'Ératosthène en C à l'aide de la bibliothèque pthreads. L'objectif est de calculer tous les nombres premiers jusqu'à une borne N donnée, en répartissant le travail sur plusieurs threads pour exploiter les cœurs du processeur.

Captures d'écran

Screenshot 1

Exécution du programme

Screenshot 2

Comparaison de performance

Concepts techniques

Threads POSIX

Création, synchronisation et terminaison de threads avec pthreads.

Partage de mémoire

Tableau partagé entre les threads avec gestion des accès concurrents.

Répartition du travail

Découpage de l'intervalle [2, N] en segments traités en parallèle.

Mesure de performance

Benchmark du temps d'exécution selon le nombre de threads.

Ce que j'ai appris

Ce projet m'a fait manipuler la programmation concurrente bas niveau : synchronisation avec mutex, conditions de course, performance des programmes parallèles. J'ai aussi mesuré concrètement les gains de performance et les limites de la parallélisation (loi d'Amdahl).