Computação paralela

MPI collect data from process in array


I am trying to use mpi to split computations on n process on a array.
So say process have computed the values for their ranges for eg:

process 1: Array[1 to a1]
process 2: Array[a1+1 to a2]
process 3: Array[a2+1 to a3]
process 4: Array[a3+1 to a4]

What is the best way to send and receive data when it comes to arrays?

Also can the same be applied it the processing of data is in contiguous memory locations? for eg:

warning:cannot locate symbols . in Vtune-command line

hello i am running command line version of vtune amplifier for a mpi program on xeon 

the analysis report is sucessfully generated in the result directory but i get the following warnings which make thinks that the results may not be correct analysis:-

amplxe: Warning: Cannot locate symbols for file `/lib64/'.
amplxe: Warning: Cannot locate symbols for file `/usr/lib64/'.
amplxe: Warning: Cannot locate symbols for file `/lib64/'.

Conditional compilation bug or feature ?


I have a software that has 2 versions of an implemented algorithm, so it used different versions of the same class (in my case its SSE vs AVX, but really, it's not relevant) in 2 different compiler units, and suprisingly the linker take the initiative of taking an arbitrary one.

Is it a bug (that I reproduced as well in Microsoft and GCC compiler) or a feature (if that so can someone help me finding where this behavior is specified) ?

Here is how to reproduce the problem:


DSBGVX documentation: ifail dimension is n?

dsbgvx kept crashing on me with an access violation for large enough problems (n=3636). I am compiling for an x64 target.

Meticulously studying the manual,, I noticed that the dimension of ifail is m for dsbgvx, and n for sbgvx.

Allocating n integers for ifail, dsbgvx stops crashing.


SVD with via "divide and conquer" method (LAPACKE_sgesdd)


I am searching for the most efficient SVD calculation approach in MKL and about to conclude this is "LAPACKE_sgesdd". Could you please help me with two questions:

1. Is "LAPACKE_sgesdd" really the fastest routine in MKL in sense of SVD decomposition or I missed something?

2. Why when I make a call

LAPACKE_sgesdd(CblasRowMajor, 'A', dim, dim, X, dim, e, U, dim, V, dim);

everything works fine (U, V, and e arrays are filled as imposed by MKL manual), but when I make a call with jobz = 'O'

cblas_cdotu_sub and cblas_cdoc_sub


I have noticed that the cblas functions cblas_cdotu_sub and cblas_cdotc_sub are returning 0 for the scalar product instead of the correct value. In earlier versions of MKL, the bug was also present for double precision functions (cblas_zdotu_sub and cblas_ztodc_sub). In the evaluation version for Linux I downloaded these last days, the bug is present only for single precision.

Best regards.


Ipp 8.1 INTEL_PLATFORM definition for 64 bit application


I ran in some trouble after Ipp 8.1 upgrade.

INTEL_PLATFORM definition in ippdefs.h is :

#ifdef _WIN32
#define _INTEL_PLATFORM "ia32/"
#define _INTEL_PLATFORM "intel64/"

But for microsoft C++ compiler _WIN32  is defined for 64 bit application too as documented here


Defined for applications for Win32 and Win64. Always defined.


Assine o Computação paralela