May 23, 2017

John Biddiscombe, computational scientist at CSCS, is one of the numerous mentors of the "Google Summer of Code", which aims to encourage students to spend their holiday working on Open Source Software. Here John is telling us a little bit more about this:

"Every year, Google hosts the “Summer of Code” (GSoC) to encourage students to spend their holiday working on Open Source Software (OSS) instead of wasting their hours away doing other potentially less interesting tasks - apparently the program was started after the Google founders complained that computer science students had to spend their summer vacations working in non tech areas such as waiting at tables in restaurants  to make ends meet (“flip bits, not burgers”) - and wouldn’t it be better if they could work on coding projects instead - GSoC was created in 2005 to address this problem. Students apply to work on projects that have been proposed by mentors representing approved OSS projects. Students receive a stipend from Google, mentors receive a T-shirt and some of them get to go to the Mentor’s summit.

This will be my third year mentoring a student - on these topics:

  • 2015: “Parallel Dataset Partitioning” for the VTK library with the host organization being VTK (the visualization toolkit) the aim of the project being to improve some mesh load balancing and ghost cell generation routines in VTK. (The student was studying in Delhi/India).
  • 2016: “Distributed parallel scan algorithms for hpx::partitioned_vector” for the STE||AR Group - a consortium of academics maintaining HPX– a task based concurrency and parallelism library for C++. (Student based in Nuremberg/Germany).
  • 2017: This year’s project will be “Parallel Algorithms for HPX”, implementing the last remaining parallel STL algorithms that have not already been implemented in HPX and that will become part of C++17 (as documented in N4409 etc.). (Student based in Seoul/South Korea).

Students work from their home location (or holiday place if they are so fortunate) and correspond with their mentor (or mentors - if multiple are assigned to the project) via email, IRC, Slack, hangouts/skype or whatever other means is available and usually have a weekly video call primarily for the student to ask questions and also for the mentor to track progress. The procedure is quite informal and doesn’t require too much effort from the mentors if the students are capable. Students ‘compete’ for places in the GSoC program by writing one or more proposals for projects that have been suggested by the mentoring organization and showing previous examples of their work where possible (though students can, and sometimes do, propose projects they have come up with themselves). It’s often the case that good students take part over several years and eventually become mentors too. Students gain experience of working on OSS projects, and the mentoring organizations gain paid volunteers to contribute to the project.

The Mentor’s summit is held every year at the end of October at the Google offices outside San Francisco and is an opportunity for mentors to share ideas and experiences about the GSoC programme. The unusual thing about the summit is that it is an “unconference”. Apart from the introduction and startup sessions (and food breaks) - there are no scheduled events/talks - no invited speakers - no conference programme - no parallel tracks or themes. Instead Google makes available a dozen or more meeting rooms and a couple of large corkboards. Mentors get together and chat about ideas they’ve had for projects, collaborating, funding, recruiting students, attracting more/better developers to their project, legal issues concerning OSS projects, licensing, anything that is of interest. The boards are then gradually filled in with subjects, times and meeting room numbers and then anyone and everyone can just drop into a room and participate in the meetings. The meetings themselves generally consist of a couple of hosts (the people who had the idea and put it on the board) and a round table type session where the guests are invited to chip in with ideas or ask questions – after the initial activity it tends to settle into a panel type scenario with questions and answers and anyone who wants volunteering information on a topic. Last year the two HPX mentors present (Andreas – who, ironically, now works for Google – and myself) hosted an HPC session.

Another unusual thing about the summit is the sheer generosity of Google - not only do they provide travel and lodging for mentors during the unconference, and funding for 1000+ students over the summer – but the quantity of cakes and food available throughout the unconference is staggering. The canteen is quite huge, filled with food and tables, but nowhere to be seen are any tills for paying. All is provided courtesy of Google (and not just during the unconference). Between the offices are snack/coffee bars, kitchens, games rooms, even mini gym’s with treadmills and work out equipment so that employees can interrupt their coding marathons with some light exercise and muesli bars. Outside the offices throughout the campus are brightly coloured ranks of Google bicycles, coffee vans, occasional laundry rooms and even hairdressers – remarkable.

Fun event: Prior to the summit, mentors are asked to bring a piece of chocolate from their country of residence and contribute it to the chocolate table. During the first sessions the table gradually fills up until, once the inauguration is complete and photos have been taken, the table is open for consumption. Every time you walk past you can grab a piece from some place you’ve never been to and try it. Travelling from Switzerland I took a kilo of Lindt mini chocs with me, and as you can imagine, everyone else does the same (around 200 mentors attend!). There is far too much to be eaten and the stuff left over at the end of the meetings is left for google employees to gradually finish off in their own time.

For further information about GSoC, see the official webpage – or just Google it!"