How student coders helped CERN build iPhone app, speed up simulations

Google pays student coders to help out famous particle physics lab.

Google Summer of Code participant Eamon Ford built an iPhone app for CERN.

Eamon Ford

Google Summer of Code is one of the best deals out there both for students looking to hone their coding skills and for organizations that need cheap, talented labor. A student who completes an open source coding project gets a cool $5,000, and the projects are important enough that even CERN, the European nuclear research organization that runs the Large Hadron Collider, has participated the last two years. The organization had seven students on board this past summer.

We talked to two of them, one who wrote an iPhone app for CERN while home from school, and another who spent the summer at the nuclear research facility while improving code used to simulate the passage of particles through matter.

Laying the foundation

Eamon Ford, a junior at the University of Chicago, estimates he spent 630 hours working nearly every day over the summer on an iPhone and iPad app that gathers news articles, photos, videos, and other media from CERN and then makes them accessible to the public in an easily navigable user interface. Ford wrote in Objective-C in the Apple's Xcode integrated development environment, and said most of what he did was user interface work, modeled after newsreaders such as the Google Currents app.

He says most of the work was simple, but pulling videos and photos from CERN's archives proved a challenge. "I had to write some code to parse CERN's video and photo feeds," he said. "That was something that I kind of expected to be built into the framework and it wasn't. I had to write a parser for that."

One of his favorite parts of the app is an interactive map of the Large Hadron Collider. When users tap on one of the main experiments "it will take you to a screen with news about that particular experiment, and also a visualizer to see particle collisions," Ford said.

There is an Android version of the app, LHSee, and Ford built an iOS version. It's not on the App Store yet, as it still has to go through CERN's marketing department and then Apple's approval process, Ford said. His code is on GitHub.

Screenshot from the CERN iPhone app.

Eamon Ford

Originally, Ford's project was to be an iOS version of CERN's Co-Pilot agent, which can be installed on home computers to devote spare CPU resources to CERN experiments. The original project description said the iOS version "would allow CERN to utilize the computing resources of thousands of mobile phones across the globe for the computation of experiments."

It was decided that would be too intensive for one summer, but Ford said "the project that I ended up doing sort of lays down the foundation for someone in the future to implement the Co-Pilot idea, because now there is already a working front-end interface and user functionality. In the future some developer could focus solely on implementing the Co-Pilot part to work in the background of the same app."

Living at CERN

On the other side of the globe, Dhruva Tirumala Bukkapatnam of India went to CERN for the summer to work on a GPU (graphics processing unit) port of a core piece of Geant4. It's a toolkit which plays a role in LHC experiments and simulates the passage of particles through matter.

"The faster the code runs and the more particles you simulate, the better your simulation," Bukkapatnam told us via e-mail. "Geant4 in itself is a gigantic software (Geant literally means giant in French) built and finely tuned after years of development. My project involved taking a small part of what Geant4 does, called navigation, and getting an equivalent code that runs on GPUs."

The potential of GPUs in scientific computing has greatly increased over the past few years, he noted. "By the end of my project, I was able to improve and debug some existing code to run navigation on GPUs," he said. "I tested out the code on my ATI Radeon 58xx GPU and on an Nvidia GTX 580."

Bukkapatnam described his experiences in his blog, and told Ars what being at CERN for the summer was like. He didn't quite get to see the Large Hadron Collider up close, but it was fascinating, nonetheless. "Being at CERN was an incredible, almost surreal, experience," he said. "Everyone there is friendly and helpful. The newer buildings look more modern but most of the buildings have this old '50s-'60s look (not surprising considering that was when they were built) while there are others which look like factories made out of metal; eternally producing whirring and buzzing sounds. Most of the nondescript ones have incredible sounding names like 'Proton Accelerator Plant' or 'Anti Matter Detector,' which suddenly portrays them in this new awesome light."

"The LHC itself is underground and I didn't get a chance to see the ring because no one is allowed near it when it is running," he continued. "However, maybe next year or the year after, the LHC will be shut down for a while and visitors may be allowed to see the ring or the detectors. In fact, I hear that one of the detectors was closed recently and so if I was there at this time I might have been able to see the collider. The closest I got was when my mentor took me on a tour of the Atlas building. I was still above the detector but at least I got to see the control room where people are monitoring all the systems around the clock by viewing these 3D images of different parts of the detector on multiple screens."

Coders from all over

Overall, 1,200 students from 66 countries participated in Google's eighth annual Summer of Code. Google is fairly hands-off in the program, setting up students with mentors and checking in with them for evaluations halfway through the summer and at the end. If the student's code passes muster at both checkpoints, they get the full $5,000 stipend.

While Bukkapatnam was at CERN in person, Ford checked in with fellow students and his mentors over the summer using the Google+ Hangouts video chat.

Ford started coding in high school, and previously built an iPhone alarm clock app for train commuters called Sleep Blaster, which used a GPS-activated alarm to wake up users when they cross a certain location. Ford pulled Sleep Blaster from the App Store because he no longer had time to maintain it. He was also working on an app for locating friends, but dropped the project when Apple released its own called Find My Friends. "About a month before I was planning to release it Apple released theirs, so that never saw the light of day," Ford said.

A computer science major and a junior, Ford seems well on his way to becoming a full-time programmer. "When I graduate from college I'm not sure what kind of programming I want to do," he said. "I'm interested in mobile development because I think the mobile platform is something that's going through a revolution, kind of like desktop computers did a couple decades ago."

Bukkapatnam is in his final year of a bachelor's program in Electronics and Instrumentation at BITS-Pilani—Goa, in India. "I plan to pursue a Masters after this in a field at the interface where hardware and software meet," he said. "I am interested in parallel computing and the entire multi core paradigm. I think that software needs to know what users want and that hardware needs to know what software designers need, and so some inkling of how both work is essential."

A mobile phone port of a distributed computing project sounds positively daft! The point of distributed computing is to use every available CPU cycle to do some sort of work, either what the user asks for, or what the DC system can run in the background. On a phone, this would burn through the battery in a handful of hours, leaving the phone useless to the owner, and not get a whole lot done in the process, since the cores aren't very fast.

I'm glad to see that Ford did something more reasonable, though it seems silly for him to scrape and parse CERN's website for content when he was working for them and could just ask for different presentations of the data.

I wish the article had focused more on Bukkapatnam's project, since it seems to have a lot more technical meat to it.

So the US guy spent his time coding a nice UI for an Android app that will allow it to work on an iPhone.The Indian guy spent his time coding particle simulation software to run on a GPU instead of a CPU.

So the US guy spent his time coding a nice UI for an Android app that will allow it to work on an iPhone.The Indian guy spent his time coding particle simulation software to run on a GPU instead of a CPU.

I don't mean this in a nasty or snarky way... It's simply an observation. But I can't see Apple paying a student $5000 for writing an Android app.

Apple does indeed do good work in open source. CUPS, webkit, BSD, llvm - these spring immediately to mind.

But I still can't see Apple caring more about the code and the development of the person than about being consistently on-message within their branding parameters for market-facing activities.(Or some such corporate bull****.)

Well done to Google for running SoC, and doing so in an open and (reasonably) agnostic manner.

I know the experience is worth a lot, but drastically undervaluing your work is not a good way to get a start in the workforce.

While that is true, that is how it is for a student programmer starting out. As a former student programmer it wasn't uncommon to have participated in work that had very little financial reward but the experience and the pride that came with the projects I worked on, big or small, was worth more than money at the time (yeah if you can believe that!). Entry-level software programmers aren't typically let loose programming their own projects when they enter the workforce so all the experience, wherever you can get it, is something of a necessity IMO. If you happen to land a prestigious project like those mentioned in the article, that's awesome! But expect to invest a lot of time into work that has very little financial gain starting out.

I know the experience is worth a lot, but drastically undervaluing your work is not a good way to get a start in the workforce.

Sometimes people are just passionate about things. I've done 2 Summer of Codes and I didn't put in the hours described in this article, I took it at my own pace and got the job done. It's one of those things that varies by skill level and motivation, I was motivated enough to do the work but I don't think I was under skilled either so the time it took me to complete was way less than 630 hours!.

Project complexity is also a big factor and sometimes people see the benefit of working on a really complex project as a better reward than financial gain, a Summer of Code is also allegedly something good to put on your CV so that is a bonus too.