CERN Accelerating science

2013 Google Summer of Code students present their projects

On the 19th and 20th of September, Google Summer of Code students of the SFT group, presented their projects to their mentors and colleagues. The students connected through Vidyo to present their results and discuss the challenges that they faced along with some novel ideas for further extensions and developments.

John Apostolakis and Jakob Blomer, organizers of the SFT team in GSoC and liaisons to the Google organizers of GSoC, started in February to collect ideas for potential projects from different group members who mentored the students throughout the period of GSoC. As in previous years, students were involved in projects strongly linked to some of the main open source packages developed by the SFT group, namely: CERN’s virtual machine and ROOT.

Three of this year’s projects were related to ROOT. The first was the redevelopment of the class TFormula that is used for parsing, interpreting and evaluating mathematical formulae in ROOT. The software developed by Maciej Zimnoch re-implements TFormula using the powerful clang parser and significantly enhances the user’s options for developing. It recognizes many elements such as redefined formulas, parameterized functions and variables. The project was presented at the CHEP2013 conference, held in Amsterdam this month.

In addition, two GSoC students worked on Cling, the new interpreter at the heart of the next major release of ROOT (ROOT6). Violete Ilieva, worked on the development of automatic differentiation, a method used for evaluating derivatives by employing the chain rule of calculus. The provision of derivatives of functions is an important part of many calculations. The module developed by Violeta will allow Cling to create the derivatives of functions automatically by using the definition of the function already available to it. As a result, it provides a machine-precision evaluation. Further developments, including the addition of a library of known derivatives, are planned and the final outcome could be integrated in future versions of ROOT.

In the second Cling project Ding Baozenga, worked on improving error handling. He implemented a method for checking the arguments a user gives to “ROOT routines” to ensure that the pointers are not null. This part will allow Cling to issue a warning when such a problem occurs instead of crashing. Pre-run verification will make Cling more user friendly and in the future will be used to improve Cling’s execution engine. The check procedure was initially implemented in two different ways. After identifying a blocking issue with one of these approaches, Ding refined and completed the most promising one.

Jovanka Gulicoska, developed a 'marketplace' for contextualizing the artefacts for CERN's Virtual Machine (CERNVM). The 'marketplace' allows users to create a configuration for the Virtual Machine that gives the full context required to initialise for an experimental group or a specific task. Contextualisation is an important requirement for the easy deployment of the virtual machine. Using the new marketplace, users can search for a configuration that provides all they need, whilst they can also create and publish a new one. The new marketplace removes a lot of the workload from users who won’t have to worry about repetitive tasks and instead can focus on creating and sharing new content.

Another project, aimed to extend the existing 'Linux-perf' monitoring tool. Today, monitoring tools provide an important insight into performance and are essential for understanding how our software uses today’s complex hardware. Monitoring tools are important for the collection and analysis of data for the LHC experiments and one needs to ensure that they don’t give a misleading picture. One of the problems often encountered is that we can’t assess the performance of individual parts, particularly in cases where we are interested only in a certain subset of the code. Olgunsoyly Sertac, worked on extending Linux-perf, giving the user the ability to control data collection and hence monitor the performance for specific regions of interest (ROIs). Performance data can also be organized according to these ROIs.

Łukasz Wasylkowski, developed a new version of the CERN mobile app for the Android OS. A CERN app was originally developed for use on iPhones (iOS) in 2012, by Eamon Ford, a former GSoC student. The project was supervised by Fons Rademakers and, after further improvements by Timur Popchetsov, a version is now available and can be downloaded from the CERN App store.

Pedro Gaudêncio, worked on Indico’s abstract editor to allow the use of formulas and markup language. This new feature will allow users who post abstracts or research documentation to add Markdown/MathJax formulas and write formulas in LaTeX. In addition, a PDF generator can easily convert the text to PDF format.

Finally, Saket Sinh tried to adapt the union file system, used by the LHCb, to cope with the large number of computing nodes used by the LHC experiments. The aim of the project was to adapt and extend the union file system as a proper Linux module that could address the requirements of a HEP experiment's dedicated farm. He was able to identify a key blocking issue with recent Linux kernels.

GSoC organizers keep building on the experience acquired over the past two years that the SFT group has been participating in the program. Perhaps one of the greatest rewards for this effort is the enthusiasm that the students showed for their projects; it is very gratifying to see young students with almost no previous experience working on these novel ideas. Key ingredients for their success have been the early evaluation and preparation of the projects as well as the regular communication with mentors. It has been interesting to note the greater diversity of the projects that were given to GSoC students in 2013 and the significant deliverables that can be deployed in packages developed by SFT group. Participation in GSoC is very competitive; in 2013, 177 of 417 mentoring orgs were accepted while only about one fifth of the projects submitted by students were finally accepted.

Thanks to the efforts of the students and their mentors, 2013 has been a successful year. Plans are in place to refine and release the student’s work in cling, Indico and Linux-perf. On the weekend of 19th and 20th of October, the Google Mentor’s summit will take place in Palo Alto, California. John Apostolakis and Vassil Vassilev are travelling to California, on the invitation of Google, as representatives of SFT group. During the meeting they will describe their experience and have the chance to meet mentors from other institutes and organizations. According to the organizers: “Our mission for the weekend is to make the programme even better, have fun and make new friends”. This year’s participants certainly did and we eagerly looking forward to the 2014 Google Summer of Code.