NumPy bei großen Arrays unter macOS extrem langsam
Verfasst: Mittwoch 14. August 2019, 19:01
Hallo, liebe deutschsprachige Python-Gemeinde,
ich habe vor etwa zwei Monaten nach meinem Abitur mit Python, NumPy und Matplotlib angefangen und ein bisschen mit Numerik experimentiert.
Neulich habe ich nach ca. zwei Wochen ein Skript fertiggestellt, um lineare Gleichungssysteme von beliebiger Größe und beliebigem Aufbau zu lösen und einen entsprechenden Lösungsvektor auszugeben. Das ist mir auch gelungen und es läuft wunderbar.
natürlich habe ich das Skript auch mit großen Systemen gestestet, die ich natürlich mittels numpy.random.random_sample erzeuge sowie mit allen möglichen Konstellationen der linearen (Un)Abhängigkeit, Kollinearitäten und Parallelitäten.
Prinzipiell funktioniert alles bestens.
Vielmehr sind es einige Becobachtungen bezüglich der Geschwindigkeit, die mich irritieren.
Ich habe ein älteres Macbook Pro mit Intel Core i5 3210m, 16GB 1600 MHz DDR3 RAM und arbeite hauptsächlich unter macOS 10.13.6.
Bei sehr großen LGS mit mehrerenden hundert Unbekannten sowie Gleichungen ist mir zunächst aufgefallen, dass der Zeitaufwand deutlich zunimmt, was ich aber nunächst einmal einfach so hingenommen habe.
Mir war zuvor schon aufgefallen, dass ein anderes Skript zur Primzahlfindung unter Ubuntu 18.04 nativ auf dem gleichem Laptop etwas schneller lief, etwa um den Faktor 1,6.
Just for Fun wollte ich mal die Performance unter Windows 10 in VirtualBox testen. Bei etwa 100 Unbekannten war das Skript in der VM auch merklich langsamer als nativ unter macOS, was mich nicht verwundert hat.
Bei 300 Unbekannten und Gleichungen aber lief das Skript in der VM plötzlich schneller als nativ unter macOS!
Daraufhin habe es noch mal unter Ubuntu 18.04 nativ getestet und dort liefen alle Skripte mit Abstand am schnellsten.
Unter Ubuntu 18.04 ebenfalls in ViortualBox war die Performance identisch zu Windows 10 in VirtualBox. Ein natives Windows habe ich derzeit nicht auf der Platte.
Besonders die Beobachtungen in der VM, die ja eigentlich zu Performance-Einbußen führt, haben deutlich gemacht, dass das Phänomen bei großen Arrays besonders stark ausfällt und bei ganz kleinen nicht merkbar auffällt.
Interessieren würde mich vor allem, was die Gründe dafür sind. Ist die macOS-Version von MumPy schlechter?
ich habe vor etwa zwei Monaten nach meinem Abitur mit Python, NumPy und Matplotlib angefangen und ein bisschen mit Numerik experimentiert.
Neulich habe ich nach ca. zwei Wochen ein Skript fertiggestellt, um lineare Gleichungssysteme von beliebiger Größe und beliebigem Aufbau zu lösen und einen entsprechenden Lösungsvektor auszugeben. Das ist mir auch gelungen und es läuft wunderbar.
natürlich habe ich das Skript auch mit großen Systemen gestestet, die ich natürlich mittels numpy.random.random_sample erzeuge sowie mit allen möglichen Konstellationen der linearen (Un)Abhängigkeit, Kollinearitäten und Parallelitäten.
Prinzipiell funktioniert alles bestens.
Vielmehr sind es einige Becobachtungen bezüglich der Geschwindigkeit, die mich irritieren.
Ich habe ein älteres Macbook Pro mit Intel Core i5 3210m, 16GB 1600 MHz DDR3 RAM und arbeite hauptsächlich unter macOS 10.13.6.
Bei sehr großen LGS mit mehrerenden hundert Unbekannten sowie Gleichungen ist mir zunächst aufgefallen, dass der Zeitaufwand deutlich zunimmt, was ich aber nunächst einmal einfach so hingenommen habe.
Mir war zuvor schon aufgefallen, dass ein anderes Skript zur Primzahlfindung unter Ubuntu 18.04 nativ auf dem gleichem Laptop etwas schneller lief, etwa um den Faktor 1,6.
Just for Fun wollte ich mal die Performance unter Windows 10 in VirtualBox testen. Bei etwa 100 Unbekannten war das Skript in der VM auch merklich langsamer als nativ unter macOS, was mich nicht verwundert hat.
Bei 300 Unbekannten und Gleichungen aber lief das Skript in der VM plötzlich schneller als nativ unter macOS!
Daraufhin habe es noch mal unter Ubuntu 18.04 nativ getestet und dort liefen alle Skripte mit Abstand am schnellsten.
Unter Ubuntu 18.04 ebenfalls in ViortualBox war die Performance identisch zu Windows 10 in VirtualBox. Ein natives Windows habe ich derzeit nicht auf der Platte.
Besonders die Beobachtungen in der VM, die ja eigentlich zu Performance-Einbußen führt, haben deutlich gemacht, dass das Phänomen bei großen Arrays besonders stark ausfällt und bei ganz kleinen nicht merkbar auffällt.
Interessieren würde mich vor allem, was die Gründe dafür sind. Ist die macOS-Version von MumPy schlechter?