Eu trabalho em um instituto de pesquisa acadêmica fortemente dependente da computação de alto desempenho. Nos 10 anos, desenvolvemos nosso próprio código Fortran, que é muito bem visto e pode ser executado em clusters muito grandes. Para que a grande comunidade de pesquisa se beneficie do código, estamos pensando em torná-lo de código aberto. No entanto, como nosso financiamento é altamente dependente da pesquisa que podemos realizar com o código, estaríamos meio que dando um tiro no pé.
Uma das idéias é limitar o número de CPUs em que o código pode ser executado, por exemplo, no máximo 1000 CPUs, em vez das 100.000 que usamos. Dessa forma, a comunidade global de pesquisa pode se beneficiar do código, mas estaríamos tendo uma vantagem no tamanho dos problemas que podemos executar.
Esse recurso é conceitualmente possível? E como esse recurso poderia ser implementado? Essencialmente, gostaríamos de código-fonte aberto do código completo, mas limitamos a paralelização (usando MPI) a um número fixo de encadeamentos MPI, por exemplo, usando um módulo (código-fonte fechado).