This document proposes a dynamically updated parallel k-NN search algorithm using MPI. It involves pre-processing the training data using clustering to divide it into partitions with representative instances. It then applies k-means clustering within each partition to group similar instances and update centroids. When classifying a test instance, it selects the nearest partition based on similarity to the representative instance and applies majority voting of that partition's k-nearest neighbors to predict the class. The training set is updated when a new test instance is closer to a different partition's representative than seen before. Several research papers on initialization methods, noise removal, and parallel k-NN retrieval inform the design.