Depuis quelques temps, je m'amuse à améliorer un petit script Perl qui a pour fonction de trouver des nombres premiers. Il utilise la méthode brute de tester tous les nombres premiers comme diviseurs potentiels avant de déclarer si, oui ou non, un nombre peut être déclaré premier. Rien de bien original en somme. Pourtant, une particularité de mon programme me laisse à penser que je pourrais bientôt conjecturer quelque chose pour compléter le théorème fondamental de l'arithmétique. Bref, on en reparlera le moment venu.

Aujourd'hui, j'ai pensé à utiliser les six coeurs de mon processeur pour trouver plus vite ces fameux nombres qui m'obsèdent. Ce soir, j'ai trouvé tous les nombres premiers jusqu'au environ de 24 000 000. Alors que pour scanner une distance d'un million, dans ce voisinage des plus de 10 000 000, il me faut un peu plus de deux heures de calcul. J'ai pour le même temps, en répartissant un programme de recherche par coeur de mon processeur, scanné 2 500 000. Du bon boulot :-)

Non seulement ça "justifie" l'investissement en processeur, mais également c'est une excellente école sur la mise en place de calcul parallèle et l'optimisation des algorithmes. Bref, je suis heureux. Objectif : les 50 000 000 pour dimanche soir.

Pizza