Pracuję w akademickim instytucie badawczym silnie uzależnionym od obliczeń o wysokiej wydajności. W ciągu 10 lat opracowaliśmy własny kod Fortran, który jest bardzo dobrze oceniany i może działać na bardzo dużych klastrach. Aby większa społeczność badawcza mogła czerpać korzyści z kodu, rozważamy uczynienie go otwartym. Ponieważ jednak nasze fundusze są w dużym stopniu zależne od badań, które możemy przeprowadzić z kodem, strzelilibyśmy sobie w stopę.
Jednym z pomysłów jest ograniczenie liczby procesorów, na których kod może działać, np. Maksymalnie 1000 procesorów zamiast 100 000, których używamy. W ten sposób globalna społeczność naukowa może skorzystać z kodu, ale mielibyśmy przewagę nad rozmiarem problemów, które możemy uruchomić.
Czy taka funkcja jest koncepcyjnie możliwa? Jak można zaimplementować taką funkcję? Zasadniczo chcielibyśmy otworzyć cały kod, ale ograniczać równoległość (przy użyciu MPI) do stałej liczby wątków MPI, na przykład przy użyciu modułu (zamkniętego źródła).