BEAR Software

BEARSoftware128px

BEAR Software is a range of services provided to researchers, and research groups, with the aim of improving the research software written and used by the researchers. BEAR Software’s mission is summed up in the words of the Software Sustainability Institute: ‘better software, better research’.

About BEAR Software

BEAR Software is provided by Research Software Engineers (RSEs) from the Research Software Group within the Advanced Research Computing Team of IT Services. It comprises several services which are available to all researchers in the University, free of charge.

Goals

This is why we exist, and what we're aiming at:

  1. Enable the University of Birmingham's research community to get the best from their research software: "Better software, better research"
  2. Provide specialist software engineering advice and support to researchers and RSEs
  3. Help to enhance the University's reputation for high quality research
  4. Help researchers get the most from BEAR services, maximising the return on the University's investment in BEAR.

Annual Reports

The Research Software Group's annual reports contain information about our work, including case studies and statistics.

Services

Advice

If a researcher either has need for new research software or wishes to improve their existing software, then BEAR Software RSEs can be engaged to talk through the needs of the researcher and offer advice on how best to achieve those needs. To request Advice please contact BEAR Software through the IT Service Desk, using the "Make a request" option and choosing "BEAR Software Services" and selecting the "Advice" option.

More information on the advice available

BEAR Software RSEs are able to offer advice on the whole life-cycle of research software. Example topics include:

  • Specifying the requirements for a new piece of software or for additions to an existing piece of software.
  • Designing and architecting the software.
  • Writing the software and suggestions on which programming languages and tool-kits are best suited for the software being written.
  • Documenting code effectively so that when a researcher returns to it at a later date it is easy to understand, and so that it could be made available for others to edit if desired (e.g. Open Source).
  • Writing user documentation so that installing, and using (including expected input and output of the software) the software is an easier process.
  • Producing or using a testing framework or infrastructure for the software, so that a researcher can easily spot if changes or additions to part of the software, or any third party software it relies on, breaks the existing functionality of the software.
  • Porting the software to a new platform or system and how to approach optimisation of the software.
  • Upgrading the software, and any third party software that may be in use, and how to ensure that the upgrades have not broken the functionality of the software.
  • How to manage the release of the software, so that it is available, in an effective and useful way, for use by others in the research community and beyond.
  • Integrating a researcher's software with third party software and libraries.
  • Using version control to allow a researcher to manage, and track, changes to their software, data, papers, talks, etc.
  • Help with specifying the research software requirements of grant applications and specific assistance with the Technical Appendix.
  • Provide recommendations about software licenses and licensing issues.
  • Advise on available training courses - those available locally, online, and further afield. We can also discuss tailoring existing training courses to meet the specific needs of a research group.
  • General discussion about research software or research computing.

By following the BEAR Software Advice a researcher should be able to improve the reliability and maintainability of the research software they write/use and this will help the researcher with the reproducibility and robustness of their research.

 

BEAR

If a researcher has a specific problem or requirement using BEAR compute services, such as BlueBEAR (Linux HPC), BEAR Cloud for Research, or CaStLeS Compute, then we can help. To make a request please contact BEAR Software through the IT Service Desk, using the Make a request option and choosing Help with BEAR Compute (BlueBEAR, BEARCloud VM or CaStLeS VM).

We maintain an extensive range of software on the BEAR systems. If a researcher has need of specific software to be used on either BlueBEAR (Linux HPC), BEAR Cloud for Research, or CaStLeS Compute then, where possible, we can install it for you. To request the installation of a new application or an update to an existing one open a request with the IT Service Desk. Go to Make a Request > Advanced Research Computing Service > BEAR Software Services > Request a new or updated application.

More information on the help we can provide to those using BEAR services

A researcher can request help with any aspect of using the range of BEAR compute services.

Example tasks might include debugging or profiling research software, or advising how to optimise batch compute jobs.

When a researcher has issues running third party software then BEAR Software RSEs can work with the researcher to find a solution.

A researcher may have existing sequential code and we can offer advice on the possible methods for parallelisation (to multi-core, multi-node, or GPU systems), which will enable better utilisation of the computing resources available to the researcher.

BEAR Software RSEs can advise researchers on how to apply for access to, and facilitate the use of, further computing resources available at the regional (HPC Midlands+), national (ARCHER), and international level (Prace).

BEAR Software RSEs may seek to initiate conversations with researchers if we see an opportunity to find out more about interesting techniques or to get more out of the computing resources.

 

Coaching

If a researcher, or research group, has the need for specific research software expertise, then an RSE can be requested, free of charge, for multiple half-day coaching sessions (max. 20). During these sessions the RSE would be embedded in the research group (physically or virtually) to work with you to complete specific agreed objectives. The RSG can also provide mentoring to a RSE, to enable the RSE to develop technical and non-technical skills. To request Coaching please contact BEAR Software through the IT Service Desk, using the "Make a request" option and choosing "BEAR Software Services" and selecting the "Coaching/Coding" option.

More information on the coaching help we provide

This work could follow on from an initial advice meeting where the further need would be identified and clearly defined objectives would be specified and agrees. Example tasks might include:

  • Migrating a project to use version control (e.g. gitlab or github).
  • Designing and implementing a testing framework.
  • Writing user documentation, licensing info etc.
  • Testing, debugging, and fixing issues.
  • Implementing a new feature.
  • Porting the software to a new operating system.
  • Designing and implementing a release process.

The BEAR RSE will work with you to complete these tasks, for example doing pair programming. Our intention is that after the sessions you will be able to continue the work in your own team and have learnt technical, research software skills. Of course, later follow-on engagements are available, demand permitting.

Example of a typical coaching engagement

The BEAR Software RSE would meet with the researcher for a number of half-day Coaching sessions, usually one or two sessions per week. During each of these sessions there would be a task, or tasks, to complete during the session. Between sessions the researcher would work further on the project and this would identify further tasks for the follow on engagements.

 

Coding

If a researcher, or research group, has the need for specific research software expertise, then an RSE can be requested, free of charge, for up to ten days of coding time (normally spread over several weeks). To request Coding please contact BEAR Software through the IT Service Desk, using the "Make a request" option and choosing "BEAR Software Services" and selecting the "Coaching/Coding" option.

More information on the coding help we provide

This work could follow on from an initial advice meeting where the further need would be identified and clearly defined objectives would be specified and agrees. Example tasks might include:

  • Implementing a new feature.
  • Developing a research website.
  • Producing a mobile application.

Of course, later follow-on engagements are available, demand permitting.

 

Training

The Research Software Group, in conjunction with Advanced Research Computing, provide training courses and workshops to researchers at the University. These include an Introduction to BEAR Linux and our HPC system (BlueBEAR); hands-on workshops on the foundations of coding in either Python or R; and workshops on AI and Deep Learning.

 

Communication

If you looking for any general information or you have any queries for BEAR Software then please email us at bear-software@contacts.bham.ac.uk.

If you are looking to talk with any RSEs at the University of Birmingham then the following are available:

You may be interested in the national community, the UK RSE Society.


Last updated: 17 May 2019