begin process at 2010 03 18 10:20:19
  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é :1 684 / 57

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

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 2 par raygold
Source avec Zip ALGORITHMIME GENETIQUE : PROBLEME DU VOYAGEUR DE COMMERCE par mehdicherti
Source avec Zip PROBLEME DES HUIT DAMES par mehdicherti

 Sources en rapport avec celle ci

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
Source avec Zip RACINE N-IÈME D'UN RÉEL A, PAR LA METHODE DE NEWTON-RAPHSON par gastein

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


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,030 sec (3)

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