As I need process with a large number of data many times for research, it has become important to me to make both time and memory efficient algorithms. Using threads is so basic, but most time it works really well. Recently, I implemented a hierarchical kmeans algorithm, and I had to put much effort to process about 6 million 128-D vectors. I changed all double variables to chars and retained only those variables without which the algorithm doesn’t work. Still, it takes too much time. Maybe I should use threads and relax the condition of convergence.
By the way, I’m happy that Professor Jung teaches the algorithm class this semester on very practical topics such as approximate algorithms, randomized algorithms, and so on. I’m not sure I can actually use them, though.