IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

matploltib parametre rasterized


Sujet :

Bibliothèques tierces Python

  1. #1
    Inactif  
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2015
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2015
    Messages : 91
    Points : 0
    Points
    0
    Par défaut matploltib parametre rasterized
    Bonjour, j'ai remarqué que matplotlib exploitait que 25% de mon cpu.

    J'ai recherché un moyen de mieu l'exploiter et je suis tomber sur le parametre rasterized (rasterized=true).

    Avec ceci mon cpu monte à 30%, et le zoom/déplacement dans les courbes sont légèrement plus fluide.

    J'aimerais bien comprendre ce qu'es ce paramètre rasterized. Pourquoi sans j'ai que 25% max (j'ai un processeur 4 coeur, matploltib et monocoeur), alors qu'avec j'ai 30% max (pourquoi 30% ?), et si il y'avait moyen d'exploiter davantage mon cpu.

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import matplotlib 
    matplotlib.use('TkAgg') 
    import numpy 
    from numpy import arange, sin, pi 
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg 
    from matplotlib.figure import Figure 
    import tkinter as Tk 
     
    root = Tk.Tk() 
    root.wm_title("Embedding in TK") 
     
     
    f = Figure(figsize=(5, 4), dpi=100) 
    a = f.add_subplot(111) 
    a.set_rasterized(True)
     
     
    t = arange(0.0, 10000000, 1) 
    s = arange(0.0, 10000000, 1) 
    #a.plot(t, s) 
    a.set_rasterization_zorder(-1)  # this is the important line
    a.plot(t, s, rasterized=True)
     
     
     
     
    canvas = FigureCanvasTkAgg(f, master=root) 
    canvas.show() 
    canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) 
     
    toolbar = NavigationToolbar2TkAgg(canvas, root) 
    toolbar.update() 
    canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) 
     
     
    def _quit(): 
        root.quit() 
        root.destroy() 
     
    button = Tk.Button(master=root, text='Exit', command=_quit) 
    button.pack(side=Tk.BOTTOM) 
     
    Tk.mainloop()
    Par avance merci pour vos explications.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par lulu7 Voir le message
    Pourquoi sans j'ai que 25% max (j'ai un processeur 4 coeur, matploltib et monocoeur), alors qu'avec j'ai 30% max (pourquoi 30% ?), et si il y'avait moyen d'exploiter davantage mon cpu.
    Suivant l'outil de mesure de performance utilisé, 100% représente la capacité des 4 cœurs: utiliser un cœur se traduira par 25%. Et comme l'interpréteur Python n'est qu'un process, il ne pourra utiliser plus. Pire, créer des threads pour utiliser plus de cœurs ne servira pas beaucoup à cause de la sérialisation des threads due au mécanisme de GIL.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Suivant l'outil de mesure de performance utilisé, 100% représente la capacité des 4 cœurs: utiliser un cœur se traduira par 25%.
    Je viens de tester le code, avec et sans rasterized.

    Sans effectivement on bloque à 25% (ce qui est logique, 1 coeur de processeur)
    Avec je monte à 30%, je ne sait pas pourquoi, j'ai pas trouvé grand chose sur le net à ce propos.

    D'après ce que j'ai compris rasterized c'est pour faire des courbe au format vectoriel et pas au .jpg.

    J'ai 2 hypothèses: soit rasterized tire partis du multi-threading ou bien il utilise le gpu Intel, ce qui peut expliquer les 30% au lieu des 25%.

    Dans tous les cas, je remarque moi aussi une amélioration des performances, le déplacement est plus fluide.

    et si il y'avait moyen d'exploiter davantage mon cpu.
    Je ne pense pas que l'on puisse exploiter les autres core malheureusement. Par contre, le graphique à 10 millions de points, es ce utile d'afficher ces 10 millions de points quand le zoom est au minimum ?
    Si non, y'a peut être moyen d'afficher 1 point sur 3 (ce qui sera invisible a l'oeil nue) et quand on zoom on replot en affichant tous les points. C'est à mon avis la seul solution.

Discussions similaires

  1. [VBA-W] [AUTOMATION]Liste Fonctions/Paramètres
    Par Sunny dans le forum VBA Word
    Réponses: 2
    Dernier message: 05/12/2002, 16h35
  2. [VB6] Transférer ".picture" en paramètre
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/11/2002, 08h43
  3. [VB6] [ADO] Procedure stockée : spécifier les paramètres
    Par adepdoom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 10h45
  4. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59
  5. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo