Adding a Par construct to Python?

Albert van der Horst albert at
Wed May 27 08:58:02 EDT 2009

In article <02204669$0$25303$c3e8da3 at>,
Steven D'Aprano  <steve at> wrote:
>On Sun, 17 May 2009 18:24:34 +0200, Diez B. Roggisch wrote:
>>> But reduce()? I can't see how you can parallelize reduce(). By its
>>> nature, it has to run sequentially: it can't operate on the nth item
>>> until it is operated on the (n-1)th item.
>> That depends on the operation in question. Addition for example would
>> work.
>You'd think so, but you'd be wrong. You can't assume addition is always
>>>> reduce(operator.add, (1.0, 1e57, -1e57))
>>>> reduce(operator.add, (1e57, -1e57, 1.0))
>> My math-skills are a bit too rusty to qualify the exact nature of
>> the operation, commutativity springs to my mind.
>And how is reduce() supposed to know whether or not some arbitrary
>function is commutative?

Why would it or need it? A Python that understands the ``par''
keyword is supposed to know it can play some tricks with
optimizing reduce() if the specific function is commutative.


Groetjes Albert

Economic growth -- like all pyramid schemes -- ultimately falters.
albert at spe&ar& &=n

More information about the Python-list mailing list