help-octave
[Top][All Lists]
Advanced

[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

Attachment: test-parallel.txt
Description: Text document

Attachment: local-test-parallel.txt
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]