I actually worked with openmpi_ext and it works nicely.

However, when you have to work in a multiprocessor single machine, 
message passing is not the best option. In that case, the best option is 
using openmp.

Another problem is to use openmp under openmpi but that's another story...

Regards,

Miguel Ángel


Riccardo Corradini wrote:
> Yes I did.
> Please have a look for the MPI examples in openmpi_ext in octave-forge.
> You can find on internet other examples using c and MPI for parallel 
> execution.
> They could be easily translated in GNU Octave with openmpi_ext.
> Unfortunately you have some hints using openmpi instead of openmp.
> Hope helps
> Respectfully
> Riccardo Corradini 
>
> --- *Gio 15/4/10, "Miguel A. Vázquez" /<mavazq...@cttc.es>/* ha scritto:
>
>
>     Da: "Miguel A. Vázquez" <mavazq...@cttc.es>
>     Oggetto: [OctDev] Openmp in Octave
>     A: octave-dev@lists.sourceforge.net
>     Data: Giovedì 15 Aprile 2010, 11:35
>
>     Hello all,
>
>     I am trying to implement some code in OpenMP under Octave, but I have
>     some problems.
>
>     #include <omp.h>
>     #include <octave/oct.h>
>        
>          DEFUN_DLD (pmean, args, , "Calculates then mean in parallel")
>          {
>            int nargin = args.length ();
>          
>            Matrix m (1,1);
>
>
>            int tid,nthreads;
>            omp_set_num_threads(2);
>            #pragma omp parallel private( nthreads, tid)
>            tid = omp_get_thread_num();
>            nthreads = omp_get_num_threads();
>            octave_stdout << "Thread "<< tid << " of " << nthreads << "
>     threads \n.";
>            if (nargin != 1)
>              print_usage ();
>            else
>              {
>                NDArray A = args(0).array_value ();
>          
>          
>            
>             #pragma omp parallel for reduction(+:m)
>             for (octave_idx_type i = 0; i < A.nelem (); i++){
>                            m = m + A.elem (i)/A.nelem ();
>             }
>
>                      return octave_value (m);
>
>              }
>
>          }
>
>     This code is supposed to calculate a mean of an Octave matrix in
>     parallel: some iterations of the for will be done by different
>     threads.
>
>     I set the number of threads to 2 (omp_set_num_threads(2)). I compiled
>     and linked it nicely but, unfortunatelly, when I executed it:
>
>     octave:1> pmean([10 0 5])
>     Thread 0 of 1 threads
>     .ans =  5
>
>     One thread is executed instead. I don't really know how to solve this
>     problem, even don't know where I have to look for. Does anyone of you
>     have treated this problem before?
>
>     Thank you in advance,
>
>     Miguel
>
>     
> ------------------------------------------------------------------------------
>     Download Intel® Parallel Studio Eval
>     Try the new software tools for yourself. Speed compiling, find bugs
>     proactively, and fine-tune applications for parallel performance.
>     See why Intel Parallel Studio got high marks during beta.
>     http://p.sf.net/sfu/intel-sw-dev
>     _______________________________________________
>     Octave-dev mailing list
>     Octave-dev@lists.sourceforge.net
>     </mc/compose?to=octave-...@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/octave-dev
>
>


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to