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.
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.
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.
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.
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.