Adding some more background that might help with your decision: On Wed Grant Ingersoll <[email protected]> wrote: > Robin Anil wrote: > > 1) Implement a new algorithm which is not there
If you have focused on machine learning and/or have a solid math background this would probably be the easiest option: The task is to find an algorithm that is not yet there, read up on the theory behind and implement it. If you have an adviser knowledgeable in the field it would be even better. > > 2) Improve performance of an existing algorithm using some X > > technique This task is less theoretically involved but goes more into software engineering; relevant would be literature that deals with performance tuning, identifying typical usage scenarios etc. > 3) I'd love to see some systematic benchmarking of the various > existing algorithms as nodes and data scale up. Again less theory and more software engineering. I'd love to see that as well - especially if the result is not only a systematic manual benchmark but maybe something that can be re-run after each release. In addition it's always nice to be able to add some graphs that show your work. The result might be complementary to those published in the original NIPS paper on distributed machine learning algorithms. I am not exactly sure what your requirements for your final project are. At least at German universities advisers usually are not content with implementation work only but students should show that they are able to analyse their chosen problem: Something like algorithm $A is better then $B under conditions $X and $Y. Or something like algorithm $C has better runtime and quality characteristics in configuration $O compared to configuration $P because of $T. Before you final decision for some project topic it might be wise to double check it with you university. Isabel
