begin process at 2012 02 04 23:56:39
  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é :3 636 / 87

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 BASE64 ENCRYPT/DECRYPT PYTHON BY MAXOU56800 par Maxou56800
Source avec Zip Source avec une capture TRIANGULATION par mecrosoft
Source avec Zip Source avec une capture COURBE DE BEZIER par mecrosoft
Source avec Zip Source avec une capture CALCUL D'AIRE D'UN TRIANGLE [INTERFACE GRAPHIQUE] par SeventhSon
Source avec Zip Source avec une capture SUITE DE FIBONACCI [INTERFACE GRAPHIQUE] par SeventhSon

 Sources en rapport avec celle ci

SOCKET MULTITHREAD SIMPLE par Guillamue06
Source avec Zip PALINDROMES, ANACYCLIQUES ET ANAGRAMMES par lespinx
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
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 administrateur CS 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 urllib2 et interface graphique [ par rezuz ] bonjour à tous. aprés avoir eu de nombreux "problemme" avec les 72 minutes de limitation vidéo de MEGAVIDEO, j'ai décidé de faire un programme qui se [Turtle] Comment Déterminer les points d'intersections de deux segments ? [ par pourkoisa ] Bonjour à tous :) Je réalise actuellement un script avec les modules Turtle et Tkinter afin de représenter des chryzodes... Je souhaite aller plus l Morpion 3D [ par lola413 ] Bonjour, Dans le cadre de mon cours de programmation j'ai pour exercice (a rendre pour le 23, youpi!) de réaliser un morpion 4*4 en 3D (alignement de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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

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