Octave multi threading.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Octave multi threading.

Ilaya Bharathi
Hi team,

I'm looking for an Octave release which will utilize multiple cores of processors at a same time during heavy operations rather than a single core. 

If there is any release of octave or any add on libraries that fulfill my expectation, Please let me know. Waiting for your reply.

Many thanks 
Ilaya bharathi


Reply | Threaded
Open this post in threaded view
|

Re: Octave multi threading.

siko1056
On 6/18/20 10:44 PM, Ilaya Bharathi wrote:

> Hi team,
>
> I'm looking for an Octave release which will utilize multiple cores of
> processors at a same time during heavy operations rather than a single
> core. 
>
> If there is any release of octave or any add on libraries that fulfill
> my expectation, Please let me know. Waiting for your reply.
>
> Many thanks 
> Ilaya bharathi
>


What kind of heavy operations do you perform?  For example if you solve
large linear systems, x = A \ b;, you should make sure that you use a
(Open-)BLAS version that supports multiple threads with your Octave
installation.

If you run custom Octave code (m-files), you might be able to
parallelize tasks by using the Octave Forge (OF) parallel [1] or ocs [2]
package.

Additionally, it is helpful to know some details about your system to
give more precise advice.

Personally, I run a custom Singularity Octave image [3] on a cluster of
a few machines (each system has 28 cores [56 threads]) that really makes
use of all given resources for linear-algebra operations.  It can be
combined with the aforementioned OF packages at low installation effort.

HTH,
Kai

[1] https://octave.sourceforge.io/parallel/
[2] https://octave.sourceforge.io/ocl/
[3] https://wiki.octave.org/Octave_for_GNU/Linux#Singularity


Reply | Threaded
Open this post in threaded view
|

Re: Octave multi threading.

Nicklas Karlsson
In reply to this post by Ilaya Bharathi
> Hi team,
>
> I'm looking for an Octave release which will utilize multiple cores of
> processors at a same time during heavy operations rather than a single
> core.
>
> If there is any release of octave or any add on libraries that fulfill my
> expectation, Please let me know. Waiting for your reply.

Here is something about using the GPU:
  https://devblogs.nvidia.com/drop-in-acceleration-gnu-octave/
  http://developer.download.nvidia.com/GTC/PDF/GTC2012/Posters/P0213_CudaBasedGPU_Jaideep_Singh.pdf

Are not sure but think GPU may do quite many instructions in parallel. Some years ago I made a little bit of 3D programming and remember Matrix operations where used to rotate and move things so I would guess GPU might be rather fast at matrix operations but are not sure. Also know GPU may be used for solving partial differential equations there solving a equation system usually often is time consuming due to size of equation system.


Nicklas SB Karlsson


Reply | Threaded
Open this post in threaded view
|

Re: Octave multi threading.

Ilaya Bharathi
In reply to this post by siko1056
Hi Kai,

I'm using Windows 10 operating system with 2 physical cores and 4 logical cores. I have a few questions as follows.

  1. Does Open blas support the Windows Operating system? and if so, can you please provide me with the official link to download it and the instructions to install and configure it properly. Please advise.
  2. Can we configure the Open blas with Octave 5.2.0 or any other versions of Octave ?
  3. Apart from the above questions, I want to know what is a parallel computing or parallel execution package for Octave. Are they similar to Open Blas ? and what platform do they support ?
Waiting for your reply.

Best regards 
Ilaya bharathi


On Thu, Jun 18, 2020 at 8:11 PM Kai Torben Ohlhus <[hidden email]> wrote:
On 6/18/20 10:44 PM, Ilaya Bharathi wrote:
> Hi team,
>
> I'm looking for an Octave release which will utilize multiple cores of
> processors at a same time during heavy operations rather than a single
> core. 
>
> If there is any release of octave or any add on libraries that fulfill
> my expectation, Please let me know. Waiting for your reply.
>
> Many thanks 
> Ilaya bharathi
>


What kind of heavy operations do you perform?  For example if you solve
large linear systems, x = A \ b;, you should make sure that you use a
(Open-)BLAS version that supports multiple threads with your Octave
installation.

If you run custom Octave code (m-files), you might be able to
parallelize tasks by using the Octave Forge (OF) parallel [1] or ocs [2]
package.

Additionally, it is helpful to know some details about your system to
give more precise advice.

Personally, I run a custom Singularity Octave image [3] on a cluster of
a few machines (each system has 28 cores [56 threads]) that really makes
use of all given resources for linear-algebra operations.  It can be
combined with the aforementioned OF packages at low installation effort.

HTH,
Kai

[1] https://octave.sourceforge.io/parallel/
[2] https://octave.sourceforge.io/ocl/
[3] https://wiki.octave.org/Octave_for_GNU/Linux#Singularity


Reply | Threaded
Open this post in threaded view
|

Re: Octave multi threading.

vrozos
Ilaya Bharathi wrote
>    3. Apart from the above questions, I want to know what is a parallel
>    computing or parallel execution package for Octave. Are they similar to
>    Open Blas ? and what platform do they support ?

Quoted from:
https://octave.1599824.n4.nabble.com/Octave-multi-threading-tp4697593p4698204.html

Below an example of parallel Octave package
(https://octave.sourceforge.io/parallel/index.html). The isOctave if-branch
employs parcellfun to enable parallel computing. The else-branch is the
equivalent without parallel computing.

function displacements= wrap_getdisplacements_mp( frames, framerange, ...
                                                  video, T, isOctave )
  frames_rolled={ frames{2:end}, frames{1} };
  if isOctave
    displacements= parcellfun ( nproc, @getdisplacements_mp, ...
                           frames(framerange), ...
                           frames_rolled(framerange), ...
                           repmat ({video}, 1, length (framerange)), ...
                           repmat ( {T}, 1, length (framerange)), ...
                           "UniformOutput", 0);
  else
    displacements=cell(1, length(frames));
    for j= 1:length(frames)
      displacements{j}= getdisplacements_mp ( frames{j}, ...
                            frames_rolled{j}, video, T );
    end
  end
   
  displacements=vertcat( displacements {:} )';                          
end




--
Sent from: https://octave.1599824.n4.nabble.com/Octave-General-f1599825.html


Reply | Threaded
Open this post in threaded view
|

Re: Octave multi threading.

vrozos
The Parallel package is both for clusters and for multiprocessing on a single
machine. Regarding the latter, I don't think there is any difference. I also
use the zip file for installation.



--
Sent from: https://octave.1599824.n4.nabble.com/Octave-General-f1599825.html