What is the future of Jitclass and StructRef?

Jitclass works well except that it doesn’t support caching or AOT compilation. StructRef does but requires a lot of additional code that makes development and maintenance more burdensome.

  1. What is the roadmap for Jitclass? Will it support caching in the near future?
  2. What is the roadmap for StructRef? Will it supersede Jitclass?
  3. Is there a plan to move one or both out of “experimental”?

It would be great if we had a solution that wasn’t experimental and combined the best features of both Jitclass and StructRef.

Thanks for all your great work Numba team!

1 Like

I personally would prefer to evolve StructRef to take over Jitclass. I think we should have the Jitclass user API with StructRef has the internal details.

2 Likes

I think this would be a very good path to pursue. I have applied Numba in large scientific codes to significantly reduce development time and increase algorithm exploration relative to C++ while achieving good performance. However, the lack of a simple-to-use non-experimental and optimized data structure often makes me consider alternatives such as Julia at the beginning of a new project. I have applied the meta-programming examples Danny Weitekamp has posted using StructRef to build large data containers and these have worked very well in terms of performance (passing containers to jitted functions and caching to reduce compilation time) and code readability (once the meta-programming bit has been integrated into the code base). The down side to this approach is that it is non-standardized and requires extra work to produce functionality that is excepted to be part of the standard toolbox, which makes development teams uneasy during project scale up. Are there any short term efforts to move StrucRef from experimental to long-term stable and use minimum boilerplate similar to Danny’s examples?

1 Like