IBM Parallel Machine Learning Toolbox (PML) is similar to that of Google's MapReduce programming model (Dean and Ghemawat, 2004) and the open source Hadoop system,which is to provide Application Programming Interfaces (APIs) that enable programmers who have no prior experience in parallel and distributed systems to nevertheless implement parallel algorithms with relative ease. Like MapReduce and Hadoop, PML supports associative-commutative computations as its primary parallelization mechanism. Unlike MapReduce and Hadoop, PML fundamentally assumes that learning algorithms can be iterative in nature, requiring multiple passes over data.

It also extends the associative-commutative computational model in various aspects, the most important of which are:

In order to make these extensions to the computational model and still address ease of use, PML provides an object-oriented API in which algorithms are objects that implement a predefined set of interface methods.

The PML infrastructure then uses these interface methods to distribute algorithm objects and their computations across multiple compute nodes. An object-oriented approach is employed to simplify the task of writing code to maintain, update, and distribute complex data structures in parallel environments.

Several parallel machine learning and data mining algorithms have already been implemented in PML, including Support Vector Machine (SVM) classifiers, linear regression, transform regression, nearest neighbors classifiers, decision tree classifiers, k-means, fuzzy k-means, kernel k-means, principal component analysis (PCA), kernel PCA, and frequent pattern mining.

It also extends the associative-commutative computational model in various aspects, the most important of which are:

- The ability to maintain the state of each worker node between iterations, making it possible, for example, to partition and distribute data structures across workers
- Efficient distribution of data, including the ability for each worker to read a subset of the data, to sample the data, or to scan the entire dataset
- Access to both sparse and dense datasets
- Parallel merge operations using tree structures for efficient collection of worker results on very large clusters

In order to make these extensions to the computational model and still address ease of use, PML provides an object-oriented API in which algorithms are objects that implement a predefined set of interface methods.

The PML infrastructure then uses these interface methods to distribute algorithm objects and their computations across multiple compute nodes. An object-oriented approach is employed to simplify the task of writing code to maintain, update, and distribute complex data structures in parallel environments.

Several parallel machine learning and data mining algorithms have already been implemented in PML, including Support Vector Machine (SVM) classifiers, linear regression, transform regression, nearest neighbors classifiers, decision tree classifiers, k-means, fuzzy k-means, kernel k-means, principal component analysis (PCA), kernel PCA, and frequent pattern mining.

## No comments:

## Post a Comment

Thanks for your message. We will get back you.