I work in an academic research institute heavily dependent on high-performance computing. In the 10 years we have developed our own Fortran code which is very well regarded and can run on very large clusters. In order to have the larger research community benefit from the code, we are considering making it open-source. However, since our funding is highly dependent on the research we can perform with the code, we would be kind of shooting ourselves in the foot.
One of the ideas is to limit the number of CPUs the code can run on, e.g. maximum 1000 CPUs instead of the 100,000 we use. That way the global research community can benefit from the code, but we would be having an advantage on the size of the problems we can run.
Is such a feature conceptually possible? And how could such a feature be implemented? Essentially we would like to open-source the complete code, but limit the parallelization (using MPI) to a fixed number of MPI threads, for example using a (closed-source) module.