Developer Guide for Intel® Data Analytics Acceleration Library 2016 Update 4

Distributed Processing

This mode assumes that the data set is split into nblocks blocks across computation nodes.

Algorithm Parameters

The correlation and variance-covariance matrices algorithm in the distributed processing mode has the following parameters:

Parameter

Default Value

Description

computeStep

Not applicable

The parameter required to initialize the algorithm. Can be:

  • step1Local - the first step, performed on local nodes
  • step2Master - the second step, performed on a master node

algorithmFPType

double

The floating-point type that the algorithm uses for intermediate computations. Can be float or double.

method

defaultDense

Available methods for computation of correlation and variance-covariance matrices:

  • defaultDense - default performance-oriented method

  • singlePassDense - implementation of the single-pass algorithm proposed by D.H.D. West

  • sumDense - implementation of the algorithm in the cases where the basic statistics associated with the numeric table are pre-computed sums; returns an error if pre-computed sums are not defined

  • fastCSR - performance-oriented method for CSR numeric tables

  • singlePassCSR - implementation of the single-pass algorithm proposed by D.H.D. West; optimized for CSR numeric tables

  • sumCSR - implementation of the algorithm in the cases where the basic statistics associated with the numeric table are pre-computed sums; optimized for CSR numeric tables; returns an error if pre-computed sums are not defined

outputMatrixType

covarianceMatrix

The type of the output matrix. Can be:

  • covarianceMatrix - variance-covariance matrix
  • correlationMatrix - correlation matrix

Computation of correlation and variance-covariance matrices follows the general schema described in Algorithms:

Step 1 - on Local Nodes

In this step, the correlation and variance-covariance matrices algorithm accepts the input described below. Pass the Input ID as a parameter to the methods that provide input for your algorithm. For more details, see Algorithms.

Input ID

Input

data

Pointer to the ni x p numeric table that represents the i-th data block on the local node.

While the input for defaultDense, singlePassDense, or sumDense method can be an object of any class derived from NumericTable, the input for fastCSR, singlePassCSR, or sumCSR method can only be an object of the CSRNumericTable class.

In this step, the correlation and variance-covariance matrices algorithm calculates the results described below. Pass the Result ID as a parameter to the methods that access the results of your algorithm. For more details, see Algorithms.

Result ID

Result

nObservations

Pointer 1 x 1 numeric table that contains the number of observations processed so far on the local node. By default, this result is an object of the HomogenNumericTable class, but you can define the result as an object of any class derived from NumericTable except CSRNumericTable.

crossProduct

Pointer p x p numeric table with the cross-product matrix computed so far on the local node. By default, this table is an object of the HomogenNumericTable class, but you can define the result as an object of any class derived from NumericTable except CSRNumericTable.

sum

Pointer 1 x p numeric table with partial sums computed so far on the local node. By default, this table is an object of the HomogenNumericTable class, but you can define the result as an object of any class derived from NumericTable except PackedSymmetricMatrix, PackedTriangularMatrix, and CSRNumericTable.

Step 2 - on Master Node

In this step, the correlation and variance-covariance matrices algorithm accepts the input described below. Pass the Input ID as a parameter to the methods that provide input for your algorithm. For more details, see Algorithms.

Input ID

Input

partialResults

A collection that contains results computed in Step 1 on local nodes (nObservations, crossProduct, and sum). The collection can contain objects of any class derived from the NumericTable class except PackedSymmetricMatrix and PackedTriangularMatrix.

In this step, the correlation and variance-covariance matrices algorithm calculates the results described in the following table. Pass the Result ID as a parameter to the methods that access the results of your algorithm. For more details, see Algorithms.

Result ID

Result

covariance

Use when outputMatrixType=covarianceMatrix. Pointer to the numeric table with the p x p variance-covariance matrix. By default, this result is an object of the HomogenNumericTable class, but you can define the result as an object of any class derived from NumericTable except PackedTriangularMatrix and CSRNumericTable.

correlation

Use when outputMatrixType=correlationMatrix. Pointer to the numeric table with the p x p correlation matrix. By default, this result is an object of the HomogenNumericTable class, but you can define the result as an object of any class derived from NumericTable except PackedTriangularMatrix and CSRNumericTable.

mean

Pointer to the 1 x p numeric table with means. By default, this result is an object of the HomogenNumericTable class, but you can define the result as an object of any class derived from NumericTable except PackedTriangularMatrix, PackedSymmetricMatrix, and CSRNumericTable.

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

Examples

C++:

Java*:

See Also