Ich arbeite in einem akademischen Forschungsinstitut, das stark vom Hochleistungsrechnen abhängig ist. In den 10 Jahren haben wir unseren eigenen Fortran-Code entwickelt, der sehr angesehen ist und auf sehr großen Clustern ausgeführt werden kann. Damit die größere Forschungsgemeinschaft von dem Code profitieren kann, erwägen wir, ihn Open Source zu machen. Da unsere Finanzierung jedoch stark von der Forschung abhängt, die wir mit dem Code durchführen können, würden wir uns selbst in den Fuß schießen.
Eine der Ideen besteht darin, die Anzahl der CPUs zu begrenzen, auf denen der Code ausgeführt werden kann, z. B. maximal 1000 CPUs anstelle der 100.000, die wir verwenden. Auf diese Weise kann die globale Forschungsgemeinschaft von dem Code profitieren, aber wir hätten einen Vorteil hinsichtlich der Größe der Probleme, die wir ausführen können.
Ist eine solche Funktion konzeptionell möglich? Und wie könnte eine solche Funktion implementiert werden? Im Wesentlichen möchten wir den gesamten Code als Open Source-Code verwenden, die Parallelisierung (mithilfe von MPI) jedoch auf eine feste Anzahl von MPI-Threads beschränken, z. B. mithilfe eines Moduls (Closed Source).