|
From: | Kai Habel |
Subject: | Re: Possible (summer of code) projects for Octave |
Date: | Thu, 06 Jan 2011 10:55:07 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100914 SUSE/3.1.4 Lightning/1.0b2 Thunderbird/3.1.4 |
On 04.01.2011 16:52, David Bateman wrote:
Jaroslav Hajek-2 wrote:On Mon, Jan 3, 2011 at 8:10 PM, Daniel Kraft<address@hidden> wrote:Still, maybe there are currently some ideas or motivation to try something into that direction? Otherwise, I also read something about attempts to make use of multiple cores -- this sounds interesting, too, are the ongoing projects towards (or interest in) that? Some other things that would be useful for Octave and the user community?I think what Octave needs to be considered seriously in the future is better support for high-level parallelism. Low-level cheap stuff like parallelizing sum() is laughable, IMHO - might be good for MW to boost their PR image, but in real life that will win you almost nothing. I and D. Bateman actually experimented with code to parallelize some element-wise matrix operations, and the results were, IMHO, poor.Parallelizing the element-wise matrix operators gave poor performance, but parallelizing the mapper functions gave speed-ups that scaled well with the number of cores. In the thread http://octave.1599824.n4.nabble.com/Using-OpenMP-in-Octave-td1694553.html You tested with 2 threads and Kai Habel with 4 and you both showed nearly linear speed-up with the mapper functions. Kai on his AMD even showed slight improvements for the element-wise operators. I'd say its worth trying to improve the speed of the mappers. D.
In the meantime I have upgraded my cpu to a 6-core AMD @ 2.8GHz (1055T). Now I have the following results: Without patch: octave:7> openmp_bench operations Elapsed time is 0.270123 seconds. Elapsed time is 0.325103 seconds. Elapsed time is 0.326798 seconds. Elapsed time is 0.31903 seconds. Elapsed time is 0.43636 seconds. Elapsed time is 0.135023 seconds. Elapsed time is 0.15116 seconds. mappers Elapsed time is 1.38396 seconds. Elapsed time is 1.24274 seconds. Elapsed time is 1.35922 seconds. Elapsed time is 2.70118 seconds. With patch: octave:7> openmp_bench operations Elapsed time is 0.126824 seconds. Elapsed time is 0.15431 seconds. Elapsed time is 0.185037 seconds. Elapsed time is 0.165895 seconds. Elapsed time is 0.157263 seconds. Elapsed time is 0.115424 seconds. Elapsed time is 0.111561 seconds. mappers Elapsed time is 0.318311 seconds. Elapsed time is 0.325885 seconds. Elapsed time is 0.348351 seconds. Elapsed time is 0.571245 seconds. As you can see especially the mapper benchmarks show a significant speedup. I have attached the Changeset and the benchmark script for convenience. Kai
openmp_bench.m
Description: Text Data
Changeset.mtpatch
Description: Text document
[Prev in Thread] | Current Thread | [Next in Thread] |