Curriculum and Labs for Engineering Education

cancel
Showing results for 
Search instead for 
Did you mean: 

Challenge mathématiques #1 : Crible d’Ératosthène (octobre 2012)

Bonjour,

Nous vous proposons de relever un petit défi de programmation LabVIEW. L'objectif est de proposer un code LabVIEW le plus rapide possible réalisant un calcul donné. Chaque premier mercredi du mois, nous vous proposerons un nouveau sujet. Vous aurez alors jusqu'au dernier jour du mois pour proposer votre code. Tous les codes proposés seront testés sur une même machine avec une version de LabVIEW à jour afin de mettre tout le monde sur un pied d'égalité. Les informations de la machine de référence seront fournies bientôt.

Les résultats seront publiés sur cette page.

Le sujet : Crible d'Ératosthène

Votre code doit :

Ouvrir un fichier texte dans le même répertoire que votre application

Placer les résultats suivant sur des lignes différentes dans le fichier texte :

  • une ligne avec le nombre de nombres premiers qu'il y a jusqu'à 5 000 000
  • les valeurs des nombres premiers qui sont aux indices suivants : 129, 817, 2679, 34612 et 125897 (une valeur par ligne)
  • une ligne avec la somme des 10 000 premiers nombres premiers
  • une ligne avec le temps total d'exécution

Fermer le fichier

Le gagnant sera celui dont le code s'exécutera le plus vite sur la machine de référence.

On mesure bien le temps total comprenant l'ouverture et l'écriture dans le fichier texte.

Il est possible de fournir un exécutable mais le code source devra être fourni afin de vérifier que les calculs sont bien effectués.

Il n'y a aucune difficulté technique. Le truc c'est d'aller le plus vite possible !

N'hésitez pas à poser vos questions si vous souhaitez plus de détails.

PS :

Il n'y a aucune difficulté. Les valeurs attendues sont :

Nombre de premiers inf. à 5 000 000 : 348 513

Valeurs des nombres premiers aux indices proposés :

727

6 277

24 083

409 987

1 667 917 

Somme : 496 165 411

temps d'éxécution

Bonne chance à toutes et à tous.

Les résultats (provisoires) :

Bonjour,

Tout d'abord, merci de votre participation. Désolé pour le retard, mais j'ai été beaucoup en déplacement ces derniers jours.

J'ai effectué les tests sur mon PC avec LabVIEW 2012 (32 bits) en version française à jour. La machine de test est un Dell Latitude E6410, 4 coeurs, 8 GO de RAM, Win 7 64 Bits Français. Il me manque un code, en espérnat que luc puisse me le renvoyer.

Les résultats (finaux) :

1er : Micael_ avec 71 ms (Bravo)

2ème : luc desruelle avec 76 ms (pour ainsi dire preseque à égalité avec Micael_)

3eme :  mmarco avec 162 ms

4eme : ericc avec 242 ms

5eme : Rodéric avec 1105 ms

Toutes mes féléicitations a vous 4 du coup. Je met un zip contenant tous les codes sur le commentaire initial (enregistré en LabVIEW 2012). J'ai mis le mien aussi, je le fait en 816 ms. Je posterai très vite un nouveau challenge mais mettrait un délai en fonction de mes obligations cette fois-ci.

Du coup, je vous félicite tous les 5 après avoir réussi à récupérer les fichiers de Luc (encore désolé pour les difficultés à récupérer les fichiers). J'ai fait un enregistrement de tous les VIs en version 2009 de LabVIEW permettant normalement au plus nombre de les ouvrir (sans garantie de fonctionnement), mais ca devrait passer. Pour départager Micael et Luc, j'ai fait tourner les VIs plusieurs fois dans les mêmes conditions, pareil pour les exe et le code de Micael est toujours un peu plus rapide, mais vraiment pas grand chose. J'hésite presque à vous mettre à égalité. En tout cas, je ne peux qu’admirer la vitesse avec laquelle vous arrivez à résoudre le problème.

Du coup, je regarde pour poster rapidement un nouveau sujet mais je vais regarder comment améliorer le processus d'envoi des codes, en particulier si vous me fournissez des exe qui ne passe pas trop par email.

Merci encore et à bientôt.


Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Comments
Rodéric
Active Participant
Active Participant
on

Bonjour,

Est on obligé d'utiliser la méthode d'Ératosthène ou est on libre d'utiliser l'algorithme qui nous semble le plus efficace?

Cordialement,

Rodéric L
Certified LabVIEW Architect
MaximeR
Active Participant
Active Participant
on

Bonjour,

Vous pouvez utiliser la méthode qui vous semble la plus rapide. L'important et de déterminer par calcul les nombres premiers.

Bonne chance.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Micael_
Active Participant
Active Participant
on

Bonjour,

J'ai dû rater un truc, comment fait-on pour vous transmettre le code ?

Cordialement,


Micaël DA SILVA
MaximeR
Active Participant
Active Participant
on

Bonjour,

effectivement, j'avais pensé dans un premier temps que vous pouviez attacher votre code à un commentaire, mais comme on me la fait remarqué, cela pourrait influencer d'autres participants. En attendant de trouver une meilleure solution, vous pouvez m'envoyer directement votre code par email : maxime.renaud@ni.com.

Ce sera le plus simple pour l'instant. Merci de m'indiquer votre pseudo sur la communauté dans l'email, comme cela, à la fin du mois, je pourrais partager tous les codes en indiquant les pseudos des participants.

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

MMarco
Member
Member
on

Bonjour,

Avant tout, merci pour la mise en place de cette communauté.

Si j'ai bien compris, il faut écrire dans le fichier le temps comprenant le temps pour écrire le temps

ou ouvrir une deuxième fois le fichier pour écrire le temps précédent ?

Est ce que l'on peut avoir un temps de référence ?

Cordialement

MaximeR
Active Participant
Active Participant
on

Bonjour,

Merci à vous aussi. La communauté est faite pour vous et on compte sur vous pour la faire vivre.

Pour le temps d'exécution, vous pouvez l'écrire dans avant de fermer le fichier. Vous aurez alors le temps d'éxécution du calcul seulement. Je ferais les tests de performances de manière équitable en prenant l'éxécution totale avec ouverture et fermeture du fichier texte.

Pour info : mon code s'éxécute en environ 600 ms. Je ne peux pas vous dire si c'est bien ou pas. Mais ca donne une idée.

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

EricC.
Active Participant
Active Participant
on

Bonjour

juste une question au sujet des indinces.

L'indice 129 (indice compris entre 1 et n) correpond t-il bien à la ligne 128 du tableau (ligne compris entre 0 et n-1) ?

En effet j'ai vérifier sur un site de l'éducation nationnale (http://noe-education.org/D11102.php) et la ligne 130 du tableau (i compris entre 0 et n-1) correspond à l'indicce 129 (indice compris entre 1 et n) et vaux 727..

Salutation

Eric C

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
Desruelle_luc
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

Bonjour à tous, code livré, très instructif !

J'ai beaucoup aimé MMarco .../... écrire dans le fichier le temps comprenant le temps pour écrire le temps  .../...

Luc Desruelle | avatar_ld.gif | Mesulog Team

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

MaximeR
Active Participant
Active Participant
on

Bonjour,

Merci à tous pour votre participation. Je serais en déplacement la semaine prochaine. Je ferais donc les tests le 12 novembre et je posterai un nouveau sujet dans la foulée.

A bientôt pour les résultats.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

MaximeR
Active Participant
Active Participant
on

Bonjour,

Tout d'abord, merci de votre participation. Désolé pour le retard, mais j'ai été beaucoup en déplacement ces derniers jours.

J'ai effectué les tests sur mon PC avec LabVIEW 2012 (32 bits) en version française à jour. La machine de test est un Dell Latitude E6410, 4 coeurs, 8 GO de RAM, Win 7 64 Bits Français. Il me manque un code, en espérnat que luc puisse me le renvoyer.

Les résultats (provisoires) :

1er : Micael_ avec 71 ms (Bravo)

2eme :  mmarco avec 162 ms

3eme : ericc avec 242 ms

4eme : Rodéric avec 1105 ms

Toutes mes féléicitations a vous 4. Je met un zip contenant tous les codes sur le commentaire initial. J'ai mis le mien aussi, je le fait en 816 ms. Je posterai très vite un nouveau challenge mais mettrait un délai en fonction de mes obligations cette fois-ci.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Desruelle_luc
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

salut maxime, je viens de lire

.../... Il me manque un code, en espérnat que luc puisse me le renvoyer..../...

premier email du vendredi 26 octobre 2012 17:31

puis suite à ta demande retour de l'email mercredi 14 novembre 2012 15:03

je viens de lire retour du code ven. 16/11/2012 16:33

tu valides? ou pas la récéption de l'email?

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

MaximeR
Active Participant
Active Participant
on

Salut Luc,

Non, je n'ai rien reçu, ni le 26 octobre, ni avant hier. C'est étrange, mais ca me rassure un peu aussi dans le sens ou il semble que je n'avais pas fait de mauvais manipulation entrainant la perte de ton code.

Je te renvoi un message en t'indiquant une autre adresse email.

Merci et désolé pour le problème.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Desruelle_luc
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

Re, Suite à ton message, je viens de transférer sur ton autre adresse email. Ton confirme! A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Herlag
Member
Member
on

Bonsoir,

Serait-il possible d'avoir les solutions dans une version antérieure de LabVIEW ? J'en suis resté à LabVIEW 2011

Merci d'avance,

HL

MaximeR
Active Participant
Active Participant
on

C'est bon, j'ai fini par les récupérer sur le dl free. Je vais regarder ce que je peux faire avant de poster un nouveau sujet pour améliorer ca. Sinon, tu n'est vraiment pas passé loin de la première place.

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

yledieu
Member
Member
on

J'ai raté le 1er challenge, alors j'attend avec impatience le n°2

Petite question : Il est indiqué qu'on peut envoyer un executable, sous entendu que ce n'est pas obligatoire. est ce que ça veut dire que tu compare des programmes exécutables avec des VIs exécutés depuis LabVIEW ?

Yohann L.
Desruelle_luc
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

Bravo à tous… et à MDS, merci à Maxime. Maintenant je sais qui est le « top chef octobre 2012 »… à 5 ms. Tu peux amener le gâteau demain.

untitled.bmp

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Micael_
Active Participant
Active Participant
on

Merci à toi Luc, cela n'aurait pas été possible sans toi car tu es ma muse, ma source d'inspiration.

Cordialement,


Micaël DA SILVA
ramses64
Active Participant
Active Participant
on

Oh là doucement, on n'est pas sur Meetic ici, pas de drague intempestive...

V-F
MaximeR
Active Participant
Active Participant
on

Bonjour,

J'ai comparé les Vis en version développement et testé les executables fournit également. Pour cette première édition, seuls les deux premiers m'ont fournit un executable, et comme les résultats étaient très serrés, j'ai comparé le tout. Mais je pense que pour le deuxième challenge, je ne prendrais pas les exe car nous avons eu aussi quelques difficultés pour récupérer les codes aussi et tout le monde n'a pas l'Application Builder. Cependant, les résultats de notre premier "Top chef", comme dirait Luc, était quasiment identique en version développement qu'en exe. Je vous invite d'ailleurs à jeter un coup d'oeil aux codes et aux options utilisées pour l'exécution des VIS, c'est un bon moyen d'améliorer les performances.

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

smi38
Member
Member
on

Je dois être idiot, mais la mesure du temps n'est pas bornée de la même façon suivants les concurrents.

Certains affichent le temps total hors écriture dans le fichier (Micaël), d'autres le temps total avec écriture dans le fichier (Luc).

De toute façon le fichier ne peut contenir que le temps hors écriture du fichier (évidemment...)

Bref, l'arbitre a dû faire son boulot comme il faut et ajuster son benchmarking...

MaximeR
Active Participant
Active Participant
on

Bonjour,

Effectivement, il n'avait pas fait la même architecture, mais j'avais bien comparé avec et sans l'écriture des fichiers. Et Micael_ était toujours un peu plus rapide. De plus, le PC utilisé pour le test utilise un SSD, alors le temps d'écriture des fichiers n'a pas une influence énorme sur l'exécution du code. Dans le projet mis à disposition, tous les benchmarks effectué ne sont pas présents car j'ai du faire pas mal de tests pour être sur de bien les départager. Et pour les autres, au delà de 100 ms d'écart, ce n'est plus l'écriture sur fichier qui influence les résultats.

En tout cas, merci d'avoir jeté un coup d'oeil.

MaximeR

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Contributors