Gibt es einen Leistungsvorteil in Polaren in Bezug auf die Parallelität unter Verwendung von Select Over Long Expression

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Gibt es einen Leistungsvorteil in Polaren in Bezug auf die Parallelität unter Verwendung von Select Over Long Expression

by Anonymous » Yesterday, 22:09

Gibt es einen Unterschied in der Parallelität in Polaren beim Vergleich dieser beiden Methoden, was das gleiche Ergebnis ergibt? Methode 1 Zugewiesen in Select als Zwischenschritt, der zeigt, dass x_1 und x_2 parallel berechnet werden können. Methode 2 verwendet nur einen vollständigen Ausdruck. Es ist sowohl in der Lazy-Execution zu, die Optimierungen ermöglicht.

Code: Select all

import polars as pl

df = pl.DataFrame({
"a": pl.int_range(0,100_000_000,eager=True),
"b": pl.int_range(0,100_000_000,eager=True),
"c": pl.int_range(0,100_000_000,eager=True)}).lazy()

# Method 1
(
df.select(
x_1 = pl.col("a") + pl.col("b"),
x_2 = pl.col("b")+ pl.col("c"))
.select(target = pl.col("x_1") + pl.col("x_2"))
.collect()
)

# Method 2
(
df.select(
target =  (pl.col("a") + pl.col("b")) + (pl.col("b")+ pl.col("c"))
)
.collect()
)

Ich habe das Timing ausprobiert und Methode 2 kommt auf dem Top heraus, aber ich bin mir nicht sicher, warum. Wissen Sie also, ob eine Parallelität in der Berechnung in Methode 2 auftritt, oder ist das von Natur aus Single-Threaded?

Top