Joys and pains of interdisciplinary research

Featured image: Leo Rivas-Micoud | Unsplash

In 2012 University of Rijeka became NVIDIA GPU Education Center (back then it was called CUDA Teaching Center). For non-techies: NVIDIA is a company producing graphical processors (GPUs), the computer chips that draw 3D graphics in games and the effects in modern movies. In the last couple of years, NVIDIA and other manufacturers allowed the usage of GPUs for general computations, so one can use them to do really fast multiplication of large matrices, finding paths in graphs, and other mathematical operations.

Partnership with NVIDIA

To become a GPU Education Center, NVIDIA required us to have at least one recurring course in the curriculum and also hold regular workshops. In return, we got the GPUs to work with. Aside from allowing us to teach, having this hardware gave us an opportunity to initiate research projects using GPU computing. If we are successful in research,  we can take the next step and become a GPU Research Center, and hopefully end up being GPU Center of Excellence at some point. Either of these would give us access to special events, pre-release hardware, special pricing, etc.

Nvidia headquarters on San Tomas Expressway
Nvidia headquarters on San Tomas Expressway. We might end up visiting this location at some point, pretty awesome ain’t it? (Image source: Wikimedia Commons.)

Roughly a year later, in September 2013, we had the Researchers night in Rijeka. The goal was to get researchers from various disciplines to showcase their work, and potentially find collaborators or options for joint projects. I came there to find scientist interested in applying computation in their research, ideally using GPU computing. I was inspired by Assistant Professor Željko Svedružić‘s enthusiasm, and saw the potential for collaboration. A bit later I joined BioSFLab to do research work in computational chemistry in my spare time. At that point I had a PhD thesis to finish and there was little time to do other things.

Dipping toes in computational chemistry

However, computational chemistry seemed worth gambling my spare time, due to a number of resons. First, I had the hardware that would eventually be obsolete, used or unused; second, there were open source software computational chemistry packages which I could contribute to; third, I wanted to move the GPU Education Center closer to becoming the GPU Research Center. Very soon Patrik Nikolić and I were in the lab AM to PM, five to six days a week. GROMACS was running day and night, and we were juggling visualizations in VMD, Chimera, Avogadro, and Marvin (occasionally we hated each of these packages). At some point, we also figured out how to do “simple” quantum mechanics calculations in NWChem and CP2K.

Ethene orbitals
Some orbitals of ethene, computed by CP2K, and visualized by VMD.

Ṛegardless of the extra work, the experience was very rewarding due to a number of things. First, both GROMACS and CP2K are meant to run on Linux. A biochemist might or might not have experience with compiling Linux software and linking it with GPU compute libraries such as NVIDIA CUDA; however, a biochemist does not want to be blocked by taking time to do these things. A computer scientist, on the other hand, is used to working with different operating systems and software. Software, and specifically scientific software, is what you do as a computer scientist. In my particular case, this experties includes both Linux and CUDA. Suddenly, the research group I was a part of started to iterate very fast since all of us did not have to learn the others domain to move forward.

The exchange of knowledge

Second, the knowledge is flowing both ways. After a couple of months, Patrik was using Linux as his primary OS, and I had no problem reading through Professor Svedružić’s copy of Lehninger Principles of Biochemistry. With each new method (e.g. molecular dynamics or nudged elastic band) we exchanged more knowledge. “Let’s try to plot this using Gnuplot” from my side was met with “why don’t we try Diels-Alder reaction” from Patrik’s. Eventually, I could assess approximations of forces resulting from different force fields as good or bad, and Patrik benchmarked GROMACS on one or more GPUs to decide how to run it.

GPUs on motherboard
Multiple GPUs on a single motherboard. GROMACS benefits from using two GPUs for calculation instead of one, kudos to developers on making that possible. We would test with three GPUs, but our most powerful systems have “only” two. (Image source: GBPublic_PR Flickr.)

There is a number of downsides as well. Instead of taking time to expand my horizons, I could have just followed the (un)written rules and take my time to work on projects that will result in papers strictly in field of computer science, because these count. I could have explored opportunities to squeeze more papers by re-exploiting my previous research work. This would enable me to avoid learning to use new software or to postpone developing new features in existing software packages. I could have done either, but I did not because I believed and still believe there are many more productive ways to use my time. (Just to be clear: we did create a publication resulting from this work. Namely, a book chapter written by our group will appear in a book by Elsevier in 2016.)

Formal critera for professorship in support of individual passion and creativity

Present classification of areas of sciences, engineering, biomedicine, biotechnology, social sciences, humanities, and arts in Croatia recognizes interdisciplinary fields of science, but only a handful of them. However, the minimal criteria for professorship in Croatia recognizes interdisciplinary papers only in sciences, biotechnology, and humanities. I am well aware it is hard to write precise criteria about a myriad of possible interdisciplinary combinations of different fields. But I am also aware that having such criteria would expand the amount of possibilities one has to get professorship, and in turn motivate more researchers to look into their options.

I might be an idealist, writing all this. I don’t expect to motivate anyone to do the same; people have very different motivations for doing the work they do. Regardless, I have sort of an addiction to epic quotes, so here is one from Ralph Waldo Emerson.

Every revolution was first a thought in one man’s mind; and when the same thought occurs to another man, it is the key to that era.

That is, we are not the only group in Croatia combining life sciences and computer science. I’m very happy to say that Mile Šikić from University of Zagreb Faculty of Electrical Engineering and Computing, working in area of computer science, has a number of papers in field of bionformatics (look for papers published in Nuclelic Acids Research). Do these papers count for professorship? I have no idea, I guess we will find out eventually, but I doubt that getting counts up was the primary motivation for writing those papers.

Open source magic all around the world

Featured image: Anders Jildén | Unsplash

Last week brought us two interesting events related to open source movement: 2015 Red Hat Summit (June 23-26, Boston, MA) and Skeptics in the pub (June 26, Rijeka, Croatia).

2015 Red Hat Summit

Red Hat provided live streaming of keynotes (kudos to them); Domagoj, Luka and I watched the one from Craig Muzilla where they announced partnership with Samsung. We made stupid jokes by substituting FICO (a company name) for fićo (a car that is legendary in the Balkans due to its price and popularity). Jim Whitehurst was so inspired he almost did not want to speak, but luckily spoke nonetheless. The interesting part was where he spoke how the predicted economics of information revolution is already coming true. cat
Cats are always welcome. Open source cats even more. (Image source: Flickr.)

Paul Cormier continued on Jim Whitehurst in terms of showing how predictions come true; his keynote starts with the story how Microsoft and VMware changed their attitude towards Linux and virtualization. He also presents a study (starting at 1:45) showing that only Linux and Windows remain operating in the datacenter, and also that Windows is falling in market share, while Linux is rising. This is great news; let’s hope it inspires Microsoft to learn from Red Hat how to be more open. Finally, Marco Bill-Peter is presenting advances in customer support (in a heavy German accent).

Skeptics in the pub

Watching streaming events is cool, but having them in your city is even cooler. I was invited to speak at the local Skeptics in the pub on whether the proprietary technologies are dying. Aside from being happy to speak about the open source in public, I was also happy to speak about the computer science more broadly. Too often people make the mistake thinking that the computer science researchers look for the better ways to repair iPhones, clean up printers, and reinstall Windows. Well, in some way we do, but we don’t really care about those particular products and aren’t really focused on how to root the latest generation of Samsung phones, or clean up some nasty virus that is spreading.

That isn’t to say that any of these things should be undervalued, as most of them aren’t trivial. It’s just that our research work approaches technology in a much broader way, and (somewhat counter-intuitively) solves very specific problems. For example, one such overview would be to look at the historical development of Internet protocols at Berkeley in the 80’s and later; one such problem would be the implementation of Multipath TCP on Linux or Android.

As usual, the presentation was recorded, so it will appear on their YouTube channel at some point.

Luna Morado and I
Luna Morado introducing me as a speaker. (Photo by Igor Kadum.)

Short version of the presentation is: computers are not just PCs anymore, but a range of devices. Non-proprietary software vendors recognized this expansion first, so open technologies are leading the way in many new areas (e.g. mobile phones and tablets), and have also taken the lead in some of the more traditional ones (e.g. infrastructure, web browsers). The “moving to the open source” trend  is very obvious, at least in software. However, even in software, the proprietary vendors are far from being dead yet. Regardless, there are two aspects of the move towards the open source technologies that make me particularly happy.

First aspect is that, with open technologies taking the lead, we can finally provide everyone with the highly sophisticated tools for education. Imagine a kid downloading Eclipse (for free) to learn programming in Java, C, or C++; one does get to experience the real world development environment that developers all around the world use on a daily basis. Imagine if, instead of the fully functional Eclipse integrated development environment, the kid got some kind of a stripped-down toy software or a functionally limited demo version of a software. The kid’s potential for learning would be severely restricted by the software limitations.  (This is not a new idea, most people who cheer open source have been using this in open source advocacy for many years. I was very happy to hear Thomas Cameron use the same argument at 2015 Red Hat Summit welcome speech.)

Second aspect is that LEGO blocks of the software world are starting to emerge in a way, especially considering the container technologies. Again, imagine a kid wanting to run a web, mail, or database server at his home. Want to set it up all by yourself from scratch? There are hundreds of guides available. Want to see how it works when it works? Use a container, or a pre-built virtual appliance image, and spin a server in minutes. Then play with it until it breaks to see how to break it and how to fix it, preferably without starting from scratch. But even when you have to start from scratch, rebuilding a working operating system takes minutes (if not seconds), not tens of minutes or hours.

When I was learning my way around Linux in the 00’s, virtualization was not yet widespread. So, whenever you broke something beyond repair, you had to reinstall your Linux distribution or restore it from a disk/filesystem image of some kind. If you dual-booted Linux and Windows, you could destroy the Windows installation if you did not know what you were doing. Finally, prior to the Ubuntu and subsequent Fedora Live media, installation used to take longer than it does today. And if you think further and consider the geeks who grew up in the 90’s, it’s easy to see that they had even less ease of use in open source software available to them. Yet, both 00’s and 90’s generations of geeks are creating awesome things in the world of the open source software today.

OK, enough talk, where is the code?

I was so inspired from all this, so I got down to coding. I made a small contribution to systemd (which made my OCD hurt less by wrapping the output text in the terminal better) and a bit larger one to CP2K (which crossed off an item from dev:todo list). On the ns-3 front, we have just finished the Google Summer of Code 2015 midterm reviews, with all our students passing. Good times ahead.