Implementation of the K-means algorithm

Closed Posted Jan 22, 2010 Paid on delivery
Closed Paid on delivery

The problem you have to deal with in this project is that of parallel data clustering. In particular, you have to study and compare the performance of different implementations of the K-means algorithm in various schemes of parallel programming/architectural models.

## Deliverables

The problem you have to deal with in this project is that of parallel data clustering. In particular, you have to study and compare the performance of different implementations of the K-means algorithm in various schemes of parallel programming/architectural models.

You have to turn in the following two implementations:

Implementation of the K-means algorithm using the CUDA environment for the exploitation of multi-core graph processors (GPUs) and

Combination of the MPI and OpenMP models for the exploitation of a multi-core cluster of computers

Your implementation may rely on the sequential implementation of the K-means algorithm as well as on the algorithm’s implementations based entirely on MPI or OpenMP, which you will find here:

<[url removed, login to view]~wkliao/Kmeans/[url removed, login to view]>

Moreover, in the following link you may find short descriptions of the algorithm

<[url removed, login to view]>

In the following URL you can find an implementation of the K-means algorithm, which utilizes the CUDA environment. However, you should use the abovementioned implementation only for the experimental evaluation of your own implementation (this is the reason we give you two input files). Note that any version of the CUDA algorithm that will be based on the following implementation will not be accepted

<[url removed, login to view]~skadron/wiki/rodinia/[url removed, login to view]>

You can also have a look at a relevant study here:

<[url removed, login to view]>

Your implementation will concern the management of single float data and for the experimental evaluation of the algorithms you will use some of the files that you will find available in the attached files. After you are done with your implementation, you have to evaluate experimentally the various editions. Note that depending on your choices and if your consider necessary you can report results for more that one edition of your algorithms. In any case, your experimental evaluation should at least contain:

Sequential edition of the K-means (either the one available or you worn one)

Edition with the use of MPI (either the one available or you worn one)

Edition with the use of OpenMP (either the one available or you worn one)

Edition with the combination of MPI/OpenMP (either the one available or you worn one)

Edition with the use of CUDA (your own)

Edition with the use of CUDA (the one available)

The running of your experiments should concern a suitable number of processors so that it clearly demonstrates the scalability of the performance across the different editions.

DELIVERABLES

You have to deliver :

All your source code files that must be well documented

All the necessary files in which you document your source code (e.g. Makefiles)

A technical report in which you describe the choices you made during the implementation of the algorithm and which in your opinion affect the algorithm’s performance. Moreover, in the body of the report you have to document your results, your diagrams and you have to discuss the conclusions that will be drawn from the experimental evaluation.

ALL CODE MUST BE WELL DOCUMENTED AND INSTRUCTIONS ON HOW TO COMPILE THE CODE (MAKEFILES MUST BE PROVIDED) AND GIVE INPUT DATA MUST BE GIVEN.

Chrome OS Engineering Linux Mac OS MySQL PHP Software Architecture Software Testing UNIX Windows Desktop

Project ID: #3113303

About the project

1 proposal Remote project Active Feb 3, 2010

1 freelancer is bidding on average $51 for this job

russianitgroup

See private message.

$51 USD in 6 days
(90 Reviews)
5.8