begin process at 2010 07 29 16:02:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Math & Algorithmes

 > BENCHMARK PAR LE CALCUL DE PI MULTITHREAD

BENCHMARK PAR LE CALCUL DE PI MULTITHREAD


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Math & Algorithmes Classé sous :multithread, thread, pi, benchmark, algorithme Niveau :Initié Date de création :26/02/2009 Date de mise à jour :26/02/2009 21:26:46 Vu / téléchargé :2 052 / 69

Auteur : amaury74

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Reprise de mon précédent code avec une indication de la progression du calcul et un affichage des résultats précédents.

Source

  • # -*- coding: cp1252 -*-
  • #Benchmark: calcul de PI
  • #Ecrit et développé par Amaury
  • from Tkinter import *
  • from Queue import *
  • import time
  • import threading
  • class GUI:
  • global calculer,ent,lbl2,lbl3,res
  • def run (self):
  • global ent,aff,lbl2,lbl3,res
  • root=Tk()
  • lbl1=Label(root, text="Nombre d'itérations :")
  • lbl2=Label(root, text="Calcul de PI")
  • lbl3=Label(root, text="Ecrit et développé par Amaury")
  • ent=Entry(root)
  • bou=Button(root, text="Lancer!",command=calculer)
  • aff=Label(root,text="- %")
  • res=Text(root,width=50,height=10)
  • lbl1.grid(row=0,column=0)
  • ent.grid(row=0,column=1)
  • bou.grid(row=0,column=2)
  • lbl2.grid(row=1,column=0,columnspan=3)
  • lbl3.grid(row=2,column=0,columnspan=3)
  • aff.grid(row=3,column=0,columnspan=3)
  • res.grid(row=4,column=0,columnspan=3)
  • root.mainloop()
  • def rafraichir (self,avance):
  • global aff
  • aff.configure(text=str(avance)+" %")
  • def calculer ():
  • global ent,lbl2
  • lbl2.configure(text="Calcul de PI en cours...")
  • calcul().start()
  • def finir (self,pi,temps,boucles):
  • global lbl2, lbl3,res
  • calcul()._Thread__stop()
  • lbl2.configure(text="PI="+str(pi))
  • lbl3.configure(text="Calcul de PI effectué en " + str(temps) + " secondes !!!")
  • res.insert(END,str(boucles) + " boucles " + str(temps) + " secondes\n")
  • class calcul (threading.Thread):
  • def run (self):
  • GUI().rafraichir(0)
  • t1=time.clock()
  • a=1
  • b=0
  • somme=0
  • boucles=int(ent.get())
  • while (b<boucles):
  • # PI = 4 [ 1 - 1/3 + 1/5 - 1/7 + 1/9 ... ]
  • if b%2==0:
  • somme=somme+(1./a)
  • else:
  • somme=somme-(1./a)
  • a=a+2
  • b=b+1
  • GUI().rafraichir(100*b/boucles)
  • t2=time.clock()
  • GUI().finir(4*somme,t2-t1,boucles)
  • GUI().run()
# -*- coding: cp1252 -*-
#Benchmark: calcul de PI
#Ecrit et développé par Amaury

from Tkinter import *
from Queue import *
import time
import threading


class GUI:

    global calculer,ent,lbl2,lbl3,res

    def run (self):

        global ent,aff,lbl2,lbl3,res

        root=Tk()

        lbl1=Label(root, text="Nombre d'itérations :")
        lbl2=Label(root, text="Calcul de PI")
        lbl3=Label(root, text="Ecrit et développé par Amaury")
        ent=Entry(root)
        bou=Button(root, text="Lancer!",command=calculer)
        aff=Label(root,text="- %")
        res=Text(root,width=50,height=10)

        lbl1.grid(row=0,column=0)
        ent.grid(row=0,column=1)
        bou.grid(row=0,column=2)
        lbl2.grid(row=1,column=0,columnspan=3)
        lbl3.grid(row=2,column=0,columnspan=3)
        aff.grid(row=3,column=0,columnspan=3)
        res.grid(row=4,column=0,columnspan=3)

        root.mainloop()

    def rafraichir (self,avance):
        global aff

        aff.configure(text=str(avance)+" %")

    def calculer ():
        global ent,lbl2

        lbl2.configure(text="Calcul de PI en cours...")

        calcul().start()

    def finir (self,pi,temps,boucles):
        global lbl2, lbl3,res

        calcul()._Thread__stop()
        lbl2.configure(text="PI="+str(pi))
        lbl3.configure(text="Calcul de PI effectué en " + str(temps) + " secondes !!!")
        res.insert(END,str(boucles) + " boucles     " + str(temps) + " secondes\n")

class calcul (threading.Thread):

    def run (self):

        GUI().rafraichir(0)

        t1=time.clock()

        a=1
        b=0
        somme=0
        boucles=int(ent.get())

        while (b<boucles):
                

                # PI = 4 [ 1 - 1/3 + 1/5 - 1/7 + 1/9 ... ]
                
                if b%2==0:
                        
                    somme=somme+(1./a)
                else:
                    somme=somme-(1./a)
                    
                a=a+2
                b=b+1

                GUI().rafraichir(100*b/boucles)

        t2=time.clock()

        GUI().finir(4*somme,t2-t1,boucles)

GUI().run()

                

 Conclusion

Cette fois si, je test le multi-thread.

bon bench...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 février 2009 21:26:46 :
none

 Sources du même auteur

Source avec Zip Source avec une capture LES CONTES DE MONTE CRYPTO
Source avec Zip Source avec une capture CALCUL DE RÉSISTANCES
Source avec Zip Source avec une capture BENCHMARK PAR LE CALCUL DE PI
Source avec Zip Source avec une capture PROGRESS BAR POUR TKINTER
Source avec Zip Source avec une capture BLOQUEUR INTERNET

 Sources de la même categorie

CALCUL LIST DE NOMBRES PREMIERS par White541
TROUVER TOUT LES QUADRILATÉRES POSSIBLES AVEC N POINTS ALEAT... par Buenol
Source avec Zip GÉNÉRATION D'UN LABYRINTHE AVEC RECHERCHE DU CHEMIN LE PLUS ... par mehdicherti
Source avec Zip Source avec une capture DIVISIONS AVEC PRÉCISION RÉGLABLE par Clempython
Source avec Zip Source avec une capture LE CALCULATOR DE RAYGOLD VERSION 3.1 par raygold

 Sources en rapport avec celle ci

TROUVER TOUT LES QUADRILATÉRES POSSIBLES AVEC N POINTS ALEAT... par Buenol
Source avec Zip Source avec une capture DIVISIONS AVEC PRÉCISION RÉGLABLE par Clempython
TK_WATCH :HORLOGE GRAPHIQUE par afranck64
TÉLCHARGEUR YOUTUBE par rezuz
Source avec Zip Source avec une capture BENCHMARK PAR LE CALCUL DE PI par amaury74

Commentaires et avis

Commentaire de Julien39 le 07/03/2009 13:51:35 1/10

ne poste pas tout tes test, si tu ne les commente pas intelligement

Commentaire de amaury74 le 11/03/2009 12:38:39

Je fais de la programmation, pas de l'enseignement... Celui qui cherche un algorithme de calcul pour PI ou un benchmark sera peut-être heureux de trouver mon code. Celui qui cherche à apprendre le multithread ira voir un tuto ou un forum, il ira pas lire mes codes...

Personnellement, c'est comme sa que j'ai appris...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pour ne pas planter [ par franckysnow91 ] Bonjour à tous,Je programme un algorithme sous python et malheureusement, je fais souvent des boucles perverses et je ne réussi pas à m'en sortir. Je intégrale [ par phymed ] Bonjours a tous, je débute en python, et j'ai un petit problème: j'ai une fonction P(x)et je dois calculer et enregistrer dans un tableau chaque vale Algorithme Python parité [HELP] [ par Lyd3n ] Bonjour, j'ai besoin d'aide pour un programme que je dois rendre a un professeur qui m'a poser des contraintes : je ne dois utiliser que "[i]input[/i chat basique en python [ par rezuz ] bonjour, je suis en train d'essayer de programmer un chat en python, principalement dans le but d'apprendre l'utilisation des sockets et de la commun


Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales