The Application Support team work on a wide variety of issues and requests from researchers. We’ve highlighted some of the more unusual and fun ones below to give you a flavour of the sort of thing our team is asked to help with. If you have any queries or issues related to research apps or code then get in touch to see how we can help!
Refactoring Out of Date Code
Research code is often written by PGR students that spend only a short time in the University. They tend to be (understandably) more concerned with finishing their thesis, than they are with minutiae like code documentation, version control, cross-platform support, and other sustainable coding practices.
In this case we were asked to help run a custom Finite Element code written in MATLAB. The first challenge was cleaning up the existing code: identifying the functions that could be reached from the main script and separating them from hundreds of Gigabytes of old results and obsolete scripts. With this in a Git repository, we started to make changes: small at first (replacing hard-coded paths, isolating user-interactive features so that the code could run unattended); later more significant (adding minimal support for debugging and resuming crashed simulations, vectorizing a few loops to improve performance). We finally had to sift through several “simulation cases” (almost identical copies of the complete code) to identify the few lines where they differed and rewrite them all as parametric calls to a single set of base functions.
The code still needs a lot of work, but it now runs from start to finish, and it is orders of magnitude faster than before. Hopefully the next student will pick up where we left off!
Python in the Basement
It was almost as terrifying as it sounds: Ever tried debugging a script without Google?
We were tasked with migrating an old python script, that controls a piece of lab equipment in one of the basements of the MECD building. The script had been written many years ago, was running on an ancient desktop PC with no internet connection, and (of course) had no documented dependencies. At the end it was only a matter of figuring out what libraries were used originally and making small changes in cases where current versions of the same libraries had changed syntax. Not a very difficult task, if we wouldn’t have had to run upstairs to search for answers online!
Python Code Review
The team frequently assists researchers who encounter issues with their code. One recent example involved a Python code review for a researcher whose code was not performing as expected.
Upon testing the code with an existing dataset, we identified a specific issue: a function designed to check if an insulin dose was a 'correction dose' was not returning the correct result. The function was erroneously returning false when it should have been returning true.
The root cause of the problem was twofold: Two timestamp objects were being used to calculate a time difference, but the calculation was incorrect. This led to an invalid time difference value that did not meet the required criteria for a true result. The variable storing this time difference value was also of the wrong data type.
The team successfully pinpointed these issues, saving the researcher significant debugging time. As a result, she was able to focus on her core research without further delay due to coding problems.
Parallelising R Code for HPC
A researcher contacted the team with an urgent submission deadline for a journal article but some of their R code had problems running on their local workstation. The code took a long time to run and the Windows operating system would occasionally decide to restart interrupting the computation and losing all the results. Our suggestion was to facilitate the local HPC system, the CSF, to execute the code. However it would have to be parallelised as the serial code was known to require more than the 7-day execution limit on the CSF. We refactored and paralysed the code, ran it, and provided the results to the researchers in time for their submission deadline.
Software Installation Issues
A researcher was migrating to a new Mac laptop where Deskside support had installed SPSS software fo them. SPSS did start up but most of the features were not available. The researcher asked us to open a support ticket with the vendor which we have did. After some weeks without a response we took matters into our own hands and had a look ourselves. After some digging it turned out that some file permissions were set wrongly so that SPSS running with the user’s permission was not allowed to access part of the installation. The problem was easy to fix but hard to track down!
Review and Advice on License Conditions
Maybe not one of the most fun bits of work, but a research group approached us for advice on purchasing a commercial research software package. Naturally, there are procedures defined by IT Services around purchasing new software, but in this case, they simply wanted to purchase licenses for their group for software already owned by the University. We were able to advise on what procedure to follow and give some advice on the license conditions for this product. We have also advised on suitable Open-Source licenses and the difference between them.
Get in touch!
As you can see from the above examples, the Apps team is able to help with a wide variety of issues and problems. You can get in touch with to discuss your requirements through the dedicated form in Knowledge Base.