[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: parallel programming with octave
From: |
Olaf Till |
Subject: |
Re: parallel programming with octave |
Date: |
Wed, 12 Oct 2011 09:17:18 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Tue, Oct 11, 2011 at 11:23:08AM -0700, leyla sepahkar wrote:
> Dear Mr. Till
>
> I am a student at Isfahan University
> of technology and I am working on parallel computing with Octave. I have
> written some parallel codes, but the speedup is not what I expect. I switched
> to some very simple codes to ensure that I am using the parallel features of
> Octave properly. A simple example is attached. Unfortunately I’m still getting
> low speedups.
>
> Could you please let me know if I am
> missing somethings?
>
> Best Regards.
> Leila Sepahkar
(The originally attached pdf-file is converted to text and attached
again here as 'test-parallel.txt'.)
Dear Mrs. Sepahkar,
(I'm CC-ing the Octave help list.)
repeating your test here, I'm getting nearly the maximum (2-fold)
speedup (see attached 'local-test-parallel.txt').
I'm not a hardware expert, but the reason for the inoptimal speedup at
your machine might be that its 2 cores share a single bus for memory
access. If the cores should have separate caches, it might help to
restrict sizes of data chunks so that computations take place within
the cached memory. Also, the result should be better in the case of
such a memory-access-bottleneck if you perform the 2nd process on a
different machine. And as a first test, you could check that
computation of the half-sized array takes half the time at all (at
your machine) if no second Octave process is running in parallel.
Some additional remarks:
- Please remember that running 'octave server.m' without securing the
respective ports before is extremely dangerous (see README.parallel,
security note). For testing at localhost, you could disallow remote
logins during this time and additionally set the following firewall:
iptables -t filter -A INPUT -p udp -i <your_external_network_device>
--destination-port 12502 -j DROP
iptables -t filter -A INPUT -p tcp -i <your_external_network_device>
--destination-port 12502 -j DROP
- You have tested at localhost. While this seems to work, generally
the current version expects that each entry in 'hosts' is different
(I should mention this in the documentation). For using multiple
cores within a certain machine, you should use 'parcellfun' or
'pararrayfun' of package 'general'.
Best regards,
Olaf Till
test-parallel.txt
Description: Text document
local-test-parallel.txt
Description: Text document
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: parallel programming with octave,
Olaf Till <=