Kann Python parallel rechnen?
Python kann parallele Berechnungen durchführen:
1. Übersicht
Parallel Python ist ein Python-Modul, das einen Mechanismus für die parallele Ausführung von Python-Code auf SMP (Systemen mit mehreren Prozessoren oder Multi-Cores) und Clustern (über ein Netzwerk verbundene Computer) bereitstellt ). Es ist leichtgewichtig, einfach zu installieren und in andere Python-Software zu integrieren. Parallel Python ist ein Open-Source- und plattformübergreifendes Modul, das in reinem Python geschrieben ist. 2. Funktionen
Python-Code parallel auf SMP und Clustern ausführen
Einfach zu verstehen und zu implementieren. Jobbasierte Parallelisierungstechnologie (einfach parallele Konvertierung serieller Anwendungen)
Optimale Konfiguration automatisch erkennen (Anzahl der Worker-Prozesse ist standardmäßig auf die effektive Anzahl von Prozessoren eingestellt)
Dynamische Prozessorzuteilung (Anzahl der Worker-Prozesse kann zur Laufzeit geändert werden)
Geringer Overhead für nachfolgende Jobs mit derselben Funktionalität (implementieren Sie transparentes Caching, um den Overhead zu reduzieren)
Dynamischer Lastausgleich (Jobs werden während der Ausführung auf die Prozessoren verteilt)
Fehlertoleranz (bei Knotenausfall). , Aufgaben werden auf anderen Knoten neu geplant)
Automatische Erkennung von Computerressourcen
Dynamische Zuweisung von Computerressourcen (das Ergebnis der automatischen Erkennung und Fehlertoleranz)
Netzwerkverbindung SHA- basierte Authentifizierung
Plattformübergreifende Portabilität und Interoperabilität (Windows, Linux, Unix, Mac OS X)
Architekturübergreifende Portabilität und Interoperabilität (x86, x86 -64 usw.)
Open Source
Verwandte Empfehlungen: „Python-Video-Tutorial“
3. Motivation
Heutzutage wird Software geschrieben in Python wird in vielen Anwendungen verwendet, einschließlich Geschäftslogik, Datenanalyse und wissenschaftlichem Rechnen. Dies führt zusammen mit der breiten Verfügbarkeit von SMP-Computern (Multiprozessor oder Multicore) und Clustern (über ein Netzwerk verbundene Computer) auf dem Markt zu einem Bedarf an paralleler Ausführung von Python-Code.
Der einfachste und gebräuchlichste Weg, parallele Anwendungen für SMP-Computer zu schreiben, ist die Verwendung von Threads. Wenn die Anwendung jedoch rechnerisch mithilfe von Threads gebunden ist oder das Thread-Python-Modul die parallele Ausführung von Python-Bytecode nicht zulässt. Der Grund dafür ist, dass der Python-Interpreter die GIL (Global Interpreter Lock) für die interne Abrechnung verwendet. Diese Sperre ermöglicht die gleichzeitige Ausführung nur einer Python-Bytecode-Anweisung, selbst auf SMP-Maschinen.
Das PP-Modul überwindet diese Einschränkung und bietet eine einfache Möglichkeit, parallele Python-Anwendungen zu schreiben. Intern nutzt ppsmp Prozesse und IPC (Inter-Prozess-Kommunikation), um parallele Berechnungen zu organisieren. Alle Details und Komplexitäten des letzteren werden vollständig berücksichtigt, die Anwendung übermittelt lediglich den Auftrag und ruft seine Ergebnisse ab (die einfachste Möglichkeit, parallele Bewerbungen zu schreiben).
Um die Sache noch besser zu machen, funktioniert in PP geschriebene Software parallel, sogar auf vielen Computern, die über ein lokales Netzwerk oder das Internet verbunden sind. Plattformübergreifende Portabilität und dynamischer Lastausgleich ermöglichen PP eine effiziente Parallelisierung der Datenverarbeitung auch auf heterogenen und plattformübergreifenden Clustern.
4. Installation
Jede Plattform: Laden Sie das Modularchiv herunter und extrahieren Sie es in ein lokales Verzeichnis. Führen Sie das Installationsskript aus: python setup.py install
Windows: Laden Sie die Binärdatei des Windows-Installationsprogramms herunter und führen Sie sie aus.
5. Beispiel
import math, sys, time import pp def isprime(n): """Returns True if n is prime and False otherwise""" if not isinstance(n, int): raise TypeError("argument passed to is_prime is not of 'int' type") if n < 2: return False if n == 2: return True max = int(math.ceil(math.sqrt(n))) i = 2 while i <= max: if n % i == 0: return False i += 1 return True def sum_primes(n): """Calculates sum of all primes below given integer n""" return sum([x for x in xrange(2,n) if isprime(x)]) print """Usage: python sum_primes.py [ncpus] [ncpus] - the number of workers to run in parallel, if omitted it will be set to the number of processors in the system """ # tuple of all parallel python servers to connect with ppservers = () #ppservers = ("10.0.0.1",) if len(sys.argv) > 1: ncpus = int(sys.argv[1]) # Creates jobserver with ncpus workers job_server = pp.Server(ncpus, ppservers=ppservers) else: # Creates jobserver with automatically detected number of workers job_server = pp.Server(ppservers=ppservers) print "Starting pp with", job_server.get_ncpus(), "workers" # Submit a job of calulating sum_primes(100) for execution. # sum_primes - the function # (100,) - tuple with arguments for sum_primes # (isprime,) - tuple with functions on which function sum_primes depends # ("math",) - tuple with module names which must be imported before sum_primes execution # Execution starts as soon as one of the workers will become available job1 = job_server.submit(sum_primes, (100,), (isprime,), ("math",)) # Retrieves the result calculated by job1 # The value of job1() is the same as sum_primes(100) # If the job has not been finished yet, execution will wait here until result is available result = job1() print "Sum of primes below 100 is", result start_time = time.time() # The following submits 8 jobs and then retrieves the results inputs = (100000, 100100, 100200, 100300, 100400, 100500, 100600, 100700) jobs = [(input, job_server.submit(sum_primes,(input,), (isprime,), ("math",))) for input in inputs] for input, job in jobs: print "Sum of primes below", input, "is", job() print "Time elapsed: ", time.time() - start_time, "s" job_server.print_stats()
Das obige ist der detaillierte Inhalt vonKann Python parallel rechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der Artikel führt den Betrieb der MySQL -Datenbank vor. Zunächst müssen Sie einen MySQL -Client wie MySQLworkBench oder Befehlszeilen -Client installieren. 1. Verwenden Sie den Befehl mySQL-uroot-P, um eine Verbindung zum Server herzustellen und sich mit dem Stammkonto-Passwort anzumelden. 2. Verwenden Sie die Erstellung von Createdatabase, um eine Datenbank zu erstellen, und verwenden Sie eine Datenbank aus. 3.. Verwenden Sie CreateTable, um eine Tabelle zu erstellen, Felder und Datentypen zu definieren. 4. Verwenden Sie InsertInto, um Daten einzulegen, Daten abzufragen, Daten nach Aktualisierung zu aktualisieren und Daten nach Löschen zu löschen. Nur indem Sie diese Schritte beherrschen, lernen, mit gemeinsamen Problemen umzugehen und die Datenbankleistung zu optimieren, können Sie MySQL effizient verwenden.

Der Schlüssel zur Federkontrolle liegt darin, seine allmähliche Natur zu verstehen. PS selbst bietet nicht die Möglichkeit, die Gradientenkurve direkt zu steuern, aber Sie können den Radius und die Gradientenweichheit flexius durch mehrere Federn, Matching -Masken und feine Selektionen anpassen, um einen natürlichen Übergangseffekt zu erzielen.

MySQL hat eine kostenlose Community -Version und eine kostenpflichtige Enterprise -Version. Die Community -Version kann kostenlos verwendet und geändert werden, die Unterstützung ist jedoch begrenzt und für Anwendungen mit geringen Stabilitätsanforderungen und starken technischen Funktionen geeignet. Die Enterprise Edition bietet umfassende kommerzielle Unterstützung für Anwendungen, die eine stabile, zuverlässige Hochleistungsdatenbank erfordern und bereit sind, Unterstützung zu bezahlen. Zu den Faktoren, die bei der Auswahl einer Version berücksichtigt werden, gehören Kritikalität, Budgetierung und technische Fähigkeiten von Anwendungen. Es gibt keine perfekte Option, nur die am besten geeignete Option, und Sie müssen die spezifische Situation sorgfältig auswählen.

PS Federn ist ein Bildkantenschwärcheneffekt, der durch den gewichteten Durchschnitt der Pixel im Randbereich erreicht wird. Das Einstellen des Federradius kann den Grad der Unschärfe steuern und je größer der Wert ist, desto unscharfer ist er. Eine flexible Einstellung des Radius kann den Effekt entsprechend den Bildern und Bedürfnissen optimieren. Verwenden Sie beispielsweise einen kleineren Radius, um Details bei der Verarbeitung von Charakterfotos zu erhalten und einen größeren Radius zu verwenden, um ein dunstiges Gefühl bei der Verarbeitung von Kunst zu erzeugen. Es ist jedoch zu beachten, dass zu groß der Radius leicht an Kantendetails verlieren kann, und zu klein ist der Effekt nicht offensichtlich. Der Federneffekt wird von der Bildauflösung beeinflusst und muss anhand des Bildverständnisses und des Griffs von Effekten angepasst werden.

Die MySQL -Leistungsoptimierung muss von drei Aspekten beginnen: Installationskonfiguration, Indexierung und Abfrageoptimierung, Überwachung und Abstimmung. 1. Nach der Installation müssen Sie die my.cnf -Datei entsprechend der Serverkonfiguration anpassen, z. 2. Erstellen Sie einen geeigneten Index, um übermäßige Indizes zu vermeiden und Abfrageanweisungen zu optimieren, z. B. den Befehl Erklärung zur Analyse des Ausführungsplans; 3. Verwenden Sie das eigene Überwachungstool von MySQL (ShowProcessList, Showstatus), um die Datenbankgesundheit zu überwachen und die Datenbank regelmäßig zu sichern und zu organisieren. Nur durch kontinuierliche Optimierung dieser Schritte kann die Leistung der MySQL -Datenbank verbessert werden.

PS -Federn kann zu einem Verlust von Bilddetails, einer verringerten Farbsättigung und einem erhöhten Rauschen führen. Um den Aufprall zu verringern, wird empfohlen, einen kleineren Federradius zu verwenden, die Ebene und dann die Feder zu kopieren und die Bildqualität vor und nach der Federung vorsichtig zu vergleichen. Darüber hinaus ist die Federn für alle Fälle nicht geeignet, und manchmal sind Werkzeuge wie Masken besser zum Umgang mit Bildkanten geeignet.

Die MySQL-Datenbankleistung Optimierungshandbuch In ressourcenintensiven Anwendungen spielt die MySQL-Datenbank eine entscheidende Rolle und ist für die Verwaltung massiver Transaktionen verantwortlich. Mit der Erweiterung der Anwendung werden jedoch die Datenbankleistung Engpässe häufig zu einer Einschränkung. In diesem Artikel werden eine Reihe effektiver Strategien zur Leistungsoptimierung von MySQL -Leistung untersucht, um sicherzustellen, dass Ihre Anwendung unter hohen Lasten effizient und reaktionsschnell bleibt. Wir werden tatsächliche Fälle kombinieren, um eingehende Schlüsseltechnologien wie Indexierung, Abfrageoptimierung, Datenbankdesign und Caching zu erklären. 1. Das Design der Datenbankarchitektur und die optimierte Datenbankarchitektur sind der Eckpfeiler der MySQL -Leistungsoptimierung. Hier sind einige Kernprinzipien: Die Auswahl des richtigen Datentyps und die Auswahl des kleinsten Datentyps, der den Anforderungen entspricht, kann nicht nur Speicherplatz speichern, sondern auch die Datenverarbeitungsgeschwindigkeit verbessern.

Die Vorschau -Methoden von Bootstrap -Seiten sind: Öffnen Sie die HTML -Datei direkt im Browser; Aktualisieren Sie den Browser automatisch mit dem Live-Server-Plug-In. und erstellen Sie einen lokalen Server, um eine Online -Umgebung zu simulieren.
