The OpenMP Xavier Clustering Method

0 downloads 0 Views 6MB Size Report
It consists of a set of compiler directives, library routines, and environment ... The C++ implementation of the OpenMP standard includes the ..... Netbeans 7.3.
Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The OpenMP Xavier Clustering Method Sergio Barbosa Villas-Boas [email protected] Adilson Elias Xavier [email protected] Marcelo Lins de Souza [email protected] PESC/COPPE/UFRJ Universidade Federal do Rio de Janeiro

EURO Optimization 2013 - Rome

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline of Presentation 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Applications of Cluster Analysis Clustering is an important problem that appears in a broad spectrum of applications, for example: Psychology Medicine Biology Economics Pattern Recognition Artificial Intelligence Data Mining many others

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Cluster Analysis

Cluster Analysis The mathematical modelling of the clustering problem with minimal sum of squares leads to an NP-hard global optimization problem. This problem is not differentiable and non-convex, and has a large number of local minima.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Cluster Analysis Hyperbolic Smoothing Is possible to modify the mathematical modelling of the original problem, smoothing it using a technique known as Hyperbolic Smoothing, proposed by Adilson Xavier. This solving strategy converts the original problem to a differentiable unconstrained one. Solving Strategy The modified problem is then solved taking advantage of minimization methods unconstrained based on derivatives (we used LBFGS).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Simple example of clustering problem

Figure 1: Clusters and centroids observations in R2 .

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline of Presentation 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Definition of the clustering problem Let be S= { S1 ,..., Sm } a set of m points (observations) in Rp and q a given number of clusters. Example below: m=6 points in R2 (p = 2), with q=3 clusters

Figure 2: Clustering problem in R2 .

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Definition of the clustering problem The union of all clusters must be the original set, that is q [

Ci

i=1

There should exist no point belonging to more than one cluster Ci ∩ Ck = ∅ No cluster can be empty Ci 6= ∅

(1)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Cost function:minimum sum-of-squares

Among the many possible cost functions used in Cluster Analysis, the most natural, intuitive, and frequently adopted is the sum-of-squares of each observation to its centroid. It is called Minimum Sum-of-Squares Clustering (MSSC).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem Specification Problem Specification It is a Minimum Sum-of-Squares Minimum distance Clustering Problem (min-sum-min) This is a global optimization mathematical problem. It is a mathematical problem both non-smooth and non-convex, with a large number of local minima. It is in the class of NP-hard problems (Brucker, 1978). After the centroids are calculated, it is necessary to create a list of associations of each observation to its centroid (i.e. the nearest one).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline of Presentation 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Introduction

OpenMP OpenMP is an implementation of multithreading, a method of parallelizing whereby a master thread (a series of instructions executed consecutively) forks a specified number of slave threads and a task is divided among them. The threads then run concurrently, with the runtime environment allocating threads to different processors.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

History

OpenMP standard specification started again in 1997 Version 3.1 of the OpenMP specification was released July 9, 2011. This is the version used in this work. The upcoming 4.0 release will be released soon Official web sight http://www.openmp.org/

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

History OpenMP is managed by the nonprofit technology consortium OpenMP Architecture Review Board (or OpenMP ARB), jointly defined by a group of major computer hardware and software vendors, including AMD IBM Intel Cray HP Fujitsu Nvidia Microsoft Oracle Corporation

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Concepts

OpenMP OpenMP is an API that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran, on most processor architectures and operating systems. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

OpenMP execution model

OpenMP uses the fork-join model of parallel execution. All OpenMP programs begin with a single master thread. The master thread executes sequentially until a parallel region is encountered, when it creates a team of parallel threads (FORK). When the team threads complete the parallel region, they synchronize and terminate, leaving only the master thread that executes sequentially (JOIN).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

OpenMP API Overview

The OpenMP API is comprised of three distinct components: Compiler Directives Runtime Library Routines Environment Variables

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

OpenMP API Overview

Compiler Directives A parallel region is a block of code that will be executed by multiple threads. This is the fundamental OpenMP parallel construct. For example # pragma omp parallel shared(a,b) is used to specify the variables in shared list are visible to all threads

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

OpenMP API Overview Runtime Library Routines The C++ implementation of the OpenMP standard includes the following environment variables. These environment variables are read at program startup and modifications to their values are ignored at runtime. For example: omp set num threads : Sets the number of threads in subsequent parallel regions. omp get thread num : Returns the thread number of the thread executing within its thread team. omp get num threads : Returns the number of threads in the parallel region.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

OpenMP API Overview

Environment Variables A method to alter the execution features of OpenMP applications. Used to control loop iterations scheduling, default number of threads, etc. For example OMP NUM THREADS is used to specify number of threads for an application.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

OpenMP example

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline of Presentation 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Definitions

Let be S= { S1 ,..., Sm } a set of m points (observations) in Rp and q a given number of clusters. Let be xi , i = { 1, ... ,q } a set of centroids of the clusters, where each xi is called centroid and each xi ∈ Rp .

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The XCM Method The set of centroids is represented by X ∈ Rpq . zj = min k sj − xi k xi ∈X

(2)

Object Function Specification Minimize

m X

f (zj )

j=1

where f (zj ) is an arbitrary monotonic increasing function of the distance zj

(3)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Monotonic increasing functions

Trivial Examples of monotonic increasing functions Pm

f (zj ) Pj=1 m j=1 f (zj )

= =

Pm

Pj=1 m

zj2

j=1 zj

Possible Distance Metrics L2 (Euclidean) L1 ( Manhattan) L∞ (Chebychev) Lp (Minkowshi)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The Centroid and observations

Consider a general observation point sj . Let be xi , i = 1, . . . , q, the centroids of clusters where each set of these centroid coordinates will be represented by X ∈ Rpq

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The observation belongs to the nearest centroid

Observation Si belongs to centroid x1 because it is the one that produces the smallest zj (smallest distance). If centroid x1 moves, the Si may belong to some other centroid. The function to calculate zj (smallest distance to centroid) with respect to xi is strongly non differentiable.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Transforming the problem (P1)

The general clustering problem is equivalent to the following problem:

(P1)Minimize

m X

f (zj ) (4)

j=1

Subject to : zj = min k sj − xi k, j = 1, . . . , m i=1..q

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Relaxing the problem (P2)

From the problem (P1), it is obtained the relaxed problem:

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Auxiliary function ϕ(x) Let us use the auxiliary function ϕ(x) = max {0,x}.

From the inequalities zj - k sj - xi k ≤ 0, j=1,. . . ,m, i=1,. . . ,q . is follows that q X i=1

ϕ(zj − k sj − xi k) = 0, j = 1, . . . , m

(5)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Re-stating the problem (P3)

Using this set of equality constraints in place of the constraints in (P2), we obtain the following problem

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Observing function ϕ

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Adding eps and re-establishing the problem (P4) By performing a ε perturbation, it is obtained the problem:

(P4)Minimize

m X

f (zj )

j=1

Subject to :

q X

ϕ(zj − k sj − xi k) ≥ ε, j = 1, . . . , m, ε > 0

i=1

(6)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Seeing eps in graph

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Smoothing the problem Let us define the auxiliary function φ(x, τ ) = for x ∈ R e τ > 0.

(x +



x 2 + τ 2) 2

(7)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Properties of PHI

Function φ has the following properties (a) φ(x, τ ) > ϕ(x), ∀τ > 0; (b) limτ →0 φ(x, τ ) = ϕ(x); (c) φ(x, τ ) is an increasing convex C ∞ function.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Smoothing the problem By using the Hyperbolic Smoothing approach for the problem (P4) it is obtained

(P5)Minimize

m X

f (zj )

j=1

Subject to :

q X i=1

(8) φ(zj − k sj − xi k, τ ) ≥ ε, j = 1, . . . , m

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Graph view of smoothed function

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Smoothing the calculation of distance

For the Euclidian metric, let us define the auxiliary function v u n uX θ(sj , xi , γ) = t (sjl − xil )2 + γ 2 l=1

for γ > 0.

(9)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Properties of theta function

(a) limγ→0 θ(sj , xi , γ) =k sj − xi k2 ; (b) θ is a C ∞ function.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Completely smoothed problem (P6)

Replacing the Euclidean distance k sj − xi k2 of the problem (P5) by θ function (P6)Minimize

m X

f (zj )

j=1

Subject to :

q X i=1

(10) φ(zj − θ(sj , xi , γ), τ ) ≥ ε, j = 1, . . . , m

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Preparing to solve(P7) By considering the KKT (Karush-Kuhn-Tucker) conditions for the problem (P6), it is possible to conclude that equation below is true. (P7)Minimize F (x) =

st : hj (zj , x) =

m X

f (zj )

j=1 q X

φ(zj − θ(sj , xi , γ), τ ) − ε = 0, j = 1, ..., m

i=1

(11)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Remarks

The variable domain space has (pq + m) dimensions. All functions of this problem are C ∞ functions in relation to the variables (x,z) Important Each variable zj appears only in one equality constraint h(x, zj ) ∀ j = 1, . . . , m

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Remarks

The partial derivative of h(x, zj ) in relation to zj is not equal to zero for all j = 1, ..., m; In the face of the previous remarks, it is possible to use the Implicit Function Theorem in order to calculate each component zj , j = 1, . . . , m, as a function of the centroids variables xi , i = 1, . . . , q.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem turns up to be an unconstrained optimization problem (P8)

(P8) Therefore, by using the Implicit Function Theorem, it is obtained the unconstrained problem unconstrained optimization problem, only variable is x (centroid positions) BFGS Minimize F (x) =

m X j=1

f (zj (x))

(12)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem turns up to be an unconstrained optimization problem (P8) where each zj (x) is obtained by the calculation of a zero of each equation applying Newton Raphson h(x, zj ) =

q X

φ(zj − θ(sj , xi , γ), τ ) − ε = 0, j = 1, ..., m

i=1

(13) for each xi calculates zj

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Gradient of function Again, due the Implicit Function Theorem, the functions zj (x) have all derivatives in relation to the variables xi , i = 1, . . . , q. So, it is possible to calculate the gradient of the objective function of the problem (P8) ∇F (x) =

m X df (zj (x)) i=1

dzj

∇zj (x)

(14)

∂h(x, zj ) ∂zj

(15)

where ∇zj (x) = −∇h(x, zj )/

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Remarks

It can be solved by making use of any method based in the first and second order derivatives information (conjugate gradient, quasi-Newton, Newton methods, etc). We used lbfgs. It is defined in a pq-dimensional space, therefore a smaller dimension problem in relation to the original problem (P7).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

From NLP to Unconstrained

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Heat and gradually cool simplified algorithm choose some initial point x. Start with large parameters, to have significant smoothing effect. Large parameters = high temperature. solve unconstrained problem. lower the parameters (cool the problem), use the previous solution as initial point. keep cooling and solving the problem until the parameters are sufficiently small.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Heat and gradually cool

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Simplefied XCM

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Remarks

The algorithm causes τ and γ approach zero, so the constraints of the sub problems it solves, given as in (P7), tend to those of (P4). The algorithm causes ε approaches to zero, so, in a simultaneous movement, the solved problem (P4) gradually approaches to problem (P3).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline of Presentation 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The XCM-OpenMP Method

XCM-OpenMP The transformation of problem P7 to problem P8, generate a large reduction in the number of variables of the problem allows the formulation like a function defined by a summation of parcels independent

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The XCM-OpenMP Method

We can see this idea in the function below, where each calculation f (zj ) depends only on x, in other words, the solution of the current iteration of the method

minimize F (x) =

m X

zj (x)2 = z1 (x)2 + z2 (x)2 + z3 (x)2 + . . . + zm (x)2

j=1

(16)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The XCM-OpenMP Method

Main Proposition In the equation (13) there is need to find the zero of each of the m functions. The calculation of zi is independent one of each other (no internal dependency). With XCM-OpenMP we propose to solve each parcel of F (x) using multiple OpenMP threads.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The XCM-OpenMP Method

Parallelization of gradient The same concept can be applied to the gradient function ∇F . The equation (14) defines the gradient. Function ∇F is a sum of independent parts, calculated in independent OpenMP threads.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The XCM-OpenMP Method The serial and parallel implementation are essentially the same mathematical XCM method. Main Differences Calculation of the objective function Gradient of the objective function

Once calculated the value of F (x) and ∇F (x), the values are passed to the function of unconstrained minimization, which was implemented using LBFGS (the same way both sequential and parallel version).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Entity Relationship Model to compare the algorithms

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Some intricate details

The initialization step of the XCM-OpenMP differs from XCM class because before the vectors are allocated, it is necessary to know the number of OpenMP threads. Otherwise the initialization of both methods (XCM and XCM-OpenMP) are identical.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

The XCM-OpenMP

The data concurrency control of XCM-OpenMP is elegantly simple, implemented only by consulting the thread id. Using a classic procedure of parallel computing, when all CPU threads finish the calculation of the parcels of F and ∇F , the values are reduced from a local (to the scope of the thread) variable in the non parallel scope.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline of Presentation 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Computational Results Implementation Details Implementation of XCM and XCM-OpenMP in Coyote Server with 24 cores Ubuntu version 13.04 (local) and Suse 12.1 (server) g++ 4.7 OpenMP 3.1 Netbeans 7.3 L-BFGS (Nocedal) Octave (to display results)

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038

Figure 3: TSPLIB-3038 (q = 5).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038

Figure 4: TSPLIB-3038 (q = 10).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038

Figure 5: TSPLIB-3038 (q = 20).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038

Figure 6: TSPLIB-3038 (q = 30).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038

Figure 7: TSPLIB-3038 (q = 40).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038

Figure 8: TSPLIB-3038 (q = 50).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038 Compare Time and Speed-Up: Centroids Numbers 5 10 20 30 40 50

Seq. Time 3.204 8.861 31.701 82.946 122.795 242.395

Par. Time 0.302 0.442 1.112 3.367 5.272 9.004

Speed Up 10.609 20.049 28.508 24.634 23.291 26.920

Table 1: Time and Speed Up Results for Problem TSPLIB-3038

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-3038

Figure 9: Graphic results of problem TSPLIB-3038.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem 15112

Figure 10: Problem d15112 (q = 5).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem 15112

Figure 11: Problem d15112 (q = 10).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem 15112

Figure 12: Problem d15112 (q = 15).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem 15112

Figure 13: Problem d15112 (q = 20).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem 15112

Figure 14: Problem d15112 (q = 25).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem 15112

Figure 15: Problem d15112 (q = 30).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem 15112 Compare Time and Speed-Up: Centroids Numbers 5 10 15 20 25 30

Seq. Time 18.140 54.562 100.120 197.397 244.437 349.601

Par. Time 1.419 3.369 5.994 10.312 11.705 17.504

Speed Up 12.783 16.195 16.718 19.142 21.820 19.972

Table 2: Time and Speed Up Results for Problem 15112

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem TSPLIB-15112

Figure 16: Graphic results of problem 15112.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem pla85900

Figure 17: Problem 85900 (q = 5).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem pla85900

Figure 18: Problem 85900 (q = 10).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem pla85900

Figure 19: Problem 85900 (q = 20).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem pla85900

Figure 20: Problem 85900 (q = 25).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem pla85900

Figure 21: Problem 85900 (q = 30).

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem pla85900 Compare Time and Speed-Up: Centroids Numbers 5 10 15 20 25 30

Seq. Time 103.594 326.780 593.960 1059.451 1471.468 2253.773

Par. Time 9.137 20.863 33.285 55.963 70.779 117.727

Speed Up 11.337 15.663 17.844 19.023 20.790 19.144

Table 3: Time and Speed Up Results for Problem 85900

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Problem pla85900

Figure 22: Graphic results of problem 85900.

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Outline of Presentation 1

Cluster Analysis

2

Problem Specification

3

The OpenMP Architecture

4

The Xavier Clustering Method (XCM)

5

The XCM-OpenMP

6

Computational Results

7

Conclusions

Cluster Analysis Problem Specification The OpenMP Architecture The Xavier Clustering Method (XCM) The XCM-OpenMP Computational Results Conclusions

Conclusions In this paper addressed the following topics Cluster Analysis, Unconstrained optimization, OpenMP Architecture XCM Method, Analysis and Implementation XCM-OpenMP Delevopment Conclusions The experimental results show great speed up the XCM-OpenMP version against the version XCM. In tests, the highest speed up was greater than 28 times.Emphasize that there was no loss in numerical accuracy