The complexity and difficulty of installing scientific software can often hamper it’s uptake and use within research communities. Douglas Lowe, a Research Software Engineer in Research IT, has been working with Dr Eric Prestat from the School of Natural Sciences to solve this problem for Prismatic, a cross-platform research software toolkit.
Prismatic is a well-developed research tool, with graphical, as well as command line and python, interfaces, written in CUDA, C++ and python. This enables the use of multicore CPUs as well as CUDA-enabled GPU(s), to achieve computational gains as high as 1000x faster than conventional computational methods. Dr Prestat uses Prismatic as part of his research to simulate the output from Scanning Transmission Electron Microscopy (STEM) experiments.
This flexibility comes at a cost though and, as for a lot of research software, compiling Prismatic from source can be difficult, due to the number of library dependencies. Up-to-date binaries are available for Windows, but not for Linux or OSX. Eric approached Research IT with a request to help with the packaging of Prismatic, for distribution via conda-forge, which he has previously used for distributing other software tools.
Conda-forge is repository of cross-platform software packages, built via a suite of cloud-based continuous integration tools, which can be installed using the conda package manager. Conda was originally written for distributing python packages, but is becoming more widely used for the distribution of open-source software packages written in a wide range of different languages.
Douglas Lowe worked with Eric to first ensure that Prismatic could be built using the tools available in the conda-forge system, then to design a flexible set of packages enabling users on Linux and OSX systems to install software and interface that they need. Although these packages are currently CPU-only, CUDA support on the conda-forge build system is currently in a state of rapid development, so in the near-future GPU support should be possible too.
By bringing Research IT on-board for this work, Eric was able to make use of our expertise in building complex software systems for a short-term, focused, software development project. This freed up his team to focus on research, while providing access to tools that will improve their productivity in the long-term.
If you are interested in working with a research software engineer or if you have a problem you think they could help with, please get in touch!
This work has been carried out within the framework of the EUROfusion Consortium.