You shouldn’t have to be an expert in cutting-edge high-performance computing to make use of it.
Don't force your students/interns to spend ages refactoring an old code and hope for the best.
Work with experienced specialists to refactor and optimize with fast delivery and quality results. Jubilee will help you reduce your technical debt and keep your code operating optimally on the hardware you need it to.

Services

Jubilee is a software consultancy that specializes in portable HPC programming, performance optimization, and best-practices infrastructure. We want to help you make your code readable, flexible, and fast.

+ Performance Optimization

We will help you optimize your code's performance with an approach tailored to your model. In an ideal world, you'd like a code that performs optimally on every architecture; in practice, we aim for that, but where necessary tailor any tradeoffs to your requirements. We have expertise in MPI, OpenMP, OpenACC, Cuda, HIP, and Kokkos - and the list grows as we track and evaluate the latest advances.

+ Refactorization

Code bases evolve over time. Without careful attention and planning, it can devolve into "spaghetti code" as multiple short-term contributors add code and take shortcuts that are sensible in the short term, but accumulate to become problematic. With tools, experience, and best practices, we can efficiently "untangle" your code. Effective parallelization almost always requires refactoring - and even before introducing parallelization, refactoring a legacy code usually improves performance immediately.

We can also convert code between languages, and manage interfaces between languages if your optimal solution involves multiple. We have expertise in C, C++, Fortran, Python, and Matlab.

+ Best Practices Infrastructure

A good code won't persist outside of good infrastructure. For those not accustomed to it, version control, continuous integration, unit testing, and documentation can seem like a big leap and a lot of overhead. It's worth it. We can help you choose, implement, and/or maintain the support software that fits your project best.

+ Consulting and Performance Analysis

We are available to evaluate your code's structure and performance and make suggestions to help guide your code to the state you want it in.