You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/index.md
+30-1Lines changed: 30 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,13 @@
2
2
3
3
## Motivation
4
4
5
+
<<<<<<< HEAD
5
6
It's actually a funny story that led to the development of this package.
6
7
What started off as a personal toy project trying to re-construct the K-Means algorithm in native Julia blew up after a heated discussion on the Julia Discourse forum when I asked for Julia optimization tips. Long story short, the Julia community is an amazing one! Andrey offered his help and together, we decided to push the speed limits of Julia with a parallel implementation of the most famous clustering algorithm. The initial results were mind blowing so we have decided to tidy up the implementation and share with the world as a maintained Julia package.
8
+
=======
9
+
It's actually a funny story led to the development of this package.
10
+
What started off as a personal toy project trying to re-construct the K-Means algorithm in native Julia blew up after a heated discussion on the Julia Discourse forum when I asked for Julia optimization tips. Long story short, Julia community is an amazing one! Andrey offered his help and together, we decided to push the speed limits of Julia with a parallel implementation of the most famous clustering algorithm. The initial results were mind blowing so we have decided to tidy up the implementation and share with the world as a maintained Julia pacakge.
11
+
>>>>>>> Initiated 0.1.5 release & doc cleanup
7
12
8
13
Say hello to `ParallelKMeans`!
9
14
@@ -24,6 +29,22 @@ As a result, it is useful in practice to restart it several times to get the cor
24
29
25
30
## Installation
26
31
32
+
If you are using Julia in the recommended [Juno IDE](https://junolab.org/), the number of threads is already set to the number of available CPU cores so multithreading enabled out of the box.
33
+
For other IDEs, multithreading must be exported in your environment before launching the Julia REPL in the command line.
34
+
35
+
*TIP*: One needs to navigate or point to the Julia executable file to be able to launch it in the command line.
36
+
Enable multi threading on Mac/Linux systems via;
37
+
38
+
```bash
39
+
export JULIA_NUM_THREADS=n # where n is the number of threads/cores
40
+
```
41
+
42
+
For Windows systems:
43
+
44
+
```bash
45
+
set JULIA_NUM_THREADS=n # where n is the number of threads/cores
46
+
```
47
+
27
48
You can grab the latest stable version of this package from Julia registries by simply running;
28
49
29
50
*NB:* Don't forget to invoke Julia's package manager with `]`
@@ -60,6 +81,7 @@ git checkout experimental
60
81
with Consistent Speedup](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/ding15.pdf)
61
82
-[ ] Implementation of [Geometric methods to accelerate k-means algorithm](http://cs.baylor.edu/~hamerly/papers/sdm2016_rysavy_hamerly.pdf).
62
83
-[ ] Support for other distance metrics supported by [Distances.jl](https://github.com/JuliaStats/Distances.jl#supported-distances).
84
+
-[ ] Implementation of [Yinyang K-Means](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/ding15.pdf).
63
85
-[ ] Native support for tabular data inputs outside of MLJModels' interface.
64
86
-[ ] Refactoring and finalizaiton of API desgin.
65
87
-[ ] GPU support.
@@ -101,14 +123,21 @@ r.iterations # number of elapsed iterations
101
123
r.converged # whether the procedure converged
102
124
```
103
125
104
-
### Supported KMeans algorithm variations
126
+
### Supported KMeans algorithm variations and recommended use cases
-[Lloyd()](https://cs.nyu.edu/~roweis/csc2515-2006/readings/lloyd57.pdf) - Default algorithm but only recommended for very small matrices (switch to `n_threads = 1` to avoid overhead).
135
+
-[Hamerly()](https://www.researchgate.net/publication/220906984_Making_k-means_Even_Faster) - Useful in most cases. If uncertain about your use case, use this!
136
+
-[Elkan()](https://www.aaai.org/Papers/ICML/2003/ICML03-022.pdf) - Recommended for high dimensional data.
0 commit comments