Trabajo en un instituto de investigación académica que depende en gran medida de la informática de alto rendimiento. En los 10 años, hemos desarrollado nuestro propio código Fortran, que está muy bien considerado y puede ejecutarse en clústeres muy grandes. Para que la comunidad de investigación más grande se beneficie del código, estamos considerando hacerlo de código abierto. Sin embargo, dado que nuestra financiación depende en gran medida de la investigación que podamos realizar con el código, estaríamos disparándonos en el pie.
Una de las ideas es limitar la cantidad de CPU en las que se puede ejecutar el código, por ejemplo, un máximo de 1000 CPU en lugar de las 100,000 que usamos. De esa forma, la comunidad de investigación global puede beneficiarse del código, pero tendríamos una ventaja sobre el tamaño de los problemas que podemos resolver.
¿Es tal característica conceptualmente posible? ¿Y cómo podría implementarse tal característica? Esencialmente, nos gustaría abrir el código completo, pero limitar la paralelización (usando MPI) a un número fijo de subprocesos MPI, por ejemplo, usando un módulo (de código cerrado).