Changes between Initial Version and Version 1 of application_pages/apps/java/kmeans_frag


Ignore:
Timestamp:
10/26/15 09:33:41 (9 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • application_pages/apps/java/kmeans_frag

    v1 v1  
     1[[PageOutline]] 
     2 
     3= Application Name = 
     4 
     5K-means Fragments 
     6 
     7= Summary = 
     8 
     9* '''Name''': {{{K-means Fragments}}} 
     10* '''Contact Person''': {{{support-compss@bsc.es}}} 
     11* '''Access Level''': {{{public}}} 
     12* '''License Agreement''': {{{GPL}}} 
     13* '''Platform''': {{{COMPSs}}} 
     14* '''Repository''': [[https://compss.bsc.es/svn/bar/apps/java/kmeans_frag|K-means Fragments]] 
     15 
     16 
     17 == Description == 
     18K-means clustering is a method of cluster analysis that aims to partition ''n'' points into ''k'' clusters in which each point belongs to the cluster with the nearest mean. It follows an iterative refinement strategy to find the centers of natural clusters in the data. 
     19 
     20When executed with COMPSs, K-means first generates the input points by means of initialization tasks. For parallelism purposes, the points are split in a number of fragments received as parameter, each fragment being created by an initialization task and filled with random points. 
     21 
     22After the initialization, the algorithm goes through a set of iterations. In every iteration, a computation task is created for each fragment; then, there is a reduction phase where the results of each computation are accumulated two at a time by merge tasks; finally, at the end of the iteration the main program post-processes the merged result, generating the current clusters that will be used in the next iteration. Consequently, if ''F'' is the total number of fragments, K-means generates ''F'' computation tasks and ''F-1'' merge tasks per iteration. 
     23 
     24== Versions == 
     25=== Version 1: Binary Serialization === 
     26The parameters are serialized using binary serialization. All the codes of this part are packaged under the kmeans_frag/binarySerialization/ folder. 
     27 
     28=== Version 2: XML Serialization === 
     29The parameters are serialized using XML serialization (by having getters and setters). All the codes of this part are packaged under the kmeans_frag/XMLSerialization/ folder. 
     30 
     31=== Version 3: Sequential Merge === 
     32The reduce task is not declaring causing a serialization in this part of the application. All the codes of this part are packaged under the kmeans_frag/sequentialMerge/ folder. 
     33 
     34=== Version 4: Params OUT === 
     35Task parameters are declared as OUT parameters instead of return values. All the codes of this part are packaged under the kmeans_frag/paramsOUT/ folder. 
     36 
     37 
     38== Execution instructions == 
     39Usage: 
     40runcompss kmeans_frag.binarySerialization.KMeans_frag -c <numClusters> -i <numIterations> -n <numPoints> -d <numDimensions> -f <numFragments> -p <pathToDataset> 
     41 
     42runcompss kmeans_frag.XMLSerialization.KMeans_frag -c <numClusters> -i <numIterations> -n <numPoints> -d <numDimensions> -f <numFragments> -p <pathToDataset> 
     43 
     44runcompss kmeans_frag.sequentialMerge.KMeans_frag -c <numClusters> -i <numIterations> -n <numPoints> -d <numDimensions> -f <numFragments> -p <pathToDataset> 
     45 
     46runcompss kmeans_frag.paramsOUT.KMeans_frag -c <numClusters> -i <numIterations> -n <numPoints> -d <numDimensions> -f <numFragments> -p <pathToDataset> 
     47 
     48 
     49== Execution Example == 
     50runcompss kmeans_frag.binarySerialization.KMeans -c 100 -i 10 -n 9984000 -d 1000 -f 512 -p /gpfs/projects/bsc19/COMPSs_APPS/kmeans/data/fragments/dataset_10M_100C_1000D_512F_plain 
     51 
     52 
     53== Build == 
     54=== Option 1: Native java === 
     55cd ~/workspace_java/kmeans_frag/; javac src/main/java/kmeans_frag/*/*.java 
     56cd src/main/java/; jar cf kmeans_frag.jar kmeans_frag/ 
     57cd ../../../; mv src/main/java/kmeans_frag.jar jar/ 
     58 
     59=== Option 2: Maven === 
     60cd ~/workspace_java/kmeans_frag/ 
     61mvn clean package