This document describes a parallel k-means clustering algorithm implemented with MPI. The algorithm partitions data points into k clusters based on their distances from centroid points. It was tested with various configurations of centroids, data points, processors, and tasks. Testing showed that processing time increases dramatically with more centroids and data, but only slowly increases or decreases with more processors and tasks, up to a point where adding more processors results in too little data per processor. The algorithm iterates until the difference between new and old centroid positions is minimal, converging on the cluster solutions.