Adding a Par construct to Python?
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Sun May 17 14:11:57 EDT 2009
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
commutative.
>>> reduce(operator.add, (1.0, 1e57, -1e57))
0.0
>>> reduce(operator.add, (1e57, -1e57, 1.0))
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?
--
Steven
More information about the Python-list
mailing list