Я працюю в академічному науково-дослідному інституті, сильно залежним від високоефективних обчислень. За 10 років ми розробили власний код Fortran, який дуже добре розглядається і може працювати на дуже великих кластерах. Для того, щоб ширша дослідницька спільнота отримала користь від коду, ми розглядаємо можливість зробити його відкритим кодом. Однак, оскільки наше фінансування сильно залежить від досліджень, які ми можемо виконати за допомогою коду, ми б наче стріляли в ногу.
Однією з ідей є обмеження кількості процесорів, на яких може працювати код, наприклад, максимум 1000 ЦП замість 100 000, які ми використовуємо. Таким чином глобальне дослідницьке співтовариство може отримати користь від коду, але ми матимемо перевагу в розмірі проблем, які ми можемо вирішити.
Чи можлива така особливість концептуально? І як можна було реалізувати таку функцію? По суті, ми хотіли б відкрити вихідний код повного коду, але обмежити паралелізацію (використовуючи MPI) фіксованою кількістю потоків MPI, наприклад, використовуючи модуль (із закритим кодом).