Hi all,

as it just came up on the ML, I want to bring this up again for general discussion. I think we should try to get at least one or two students for this year's GSOC. If you have never heard of GSOC, look here: http://write.flossmanuals.net/gsoc-mentoring/what-is-gsoc/ and here: https://developers.google.com/open-source/gsoc/

Applications for organizations open on January 19th and it is a great way of introducing new people to the SystemML development and get more contributors. To apply, we need to propose projects for a 4-month period in which a student works on them full time (May - August). Each proposed project needs one community member to mentor it - in the end Google decides how many students each project gets, depending of the quality of the proposed ideas. To successfully apply we need (1) good ideas for projects and (2) people willing to mentor those ideas. For an initial brainstorming I suggest that we first figure out if we want to participate (which mainly means we need to find people willing to mentor projects) and then start collecting ideas. Ideas can be anything from infrastructure, to core development or implementation of new algorithms.

Here is a quick example of how a project proposal could look like:


Title: Performance Benchmarks and Experiments

Description: To make decisions about new features and the evaluation of old assumptions we need up-to-date performance statistics on multiple levels of the systems and on different architectures (local, distributed, GPU). The systematic evaluation of performance can be measured with performance tests and micro-benchmarks. In this way, changes to the project or alternative implementations (i.g. for low-level linear algebra backends) can be systematically evaluated and compared. (Semi-) Automated benchmarks can help make these decisions and challenge assumptions that were made during earlier development. In the course of this project, the student should build a benchmark infrastructure and conduct experiments, that compare different choices in critical parts (sparsity thresholds, BLAS backends, optimization decisions, etc.).

Expected Outcome: A benchmark suite than can be used to detect regressions or improvements in critical components of the system.

Skills required: Java/Scala, some knowledge of benchmarking; preferred: knowledge about high-performance-computing and/or distributed systems.

Possible Mentors: Matthias, Niketan, Nakul, Felix


Let's decide on if we want to apply as an organization!

- Felix

Reply via email to