Je travaille dans un institut de recherche universitaire fortement tributaire du calcul haute performance. En 10 ans, nous avons développé notre propre code Fortran qui est très bien considéré et peut fonctionner sur de très gros clusters. Afin de faire bénéficier le plus grand nombre de chercheurs du code, nous envisageons de le rendre open-source. Cependant, étant donné que notre financement dépend fortement des recherches que nous pouvons effectuer avec le code, nous serions en quelque sorte nous tirer dans le pied.
L'une des idées est de limiter le nombre de processeurs sur lesquels le code peut fonctionner, par exemple au maximum 1000 processeurs au lieu des 100 000 que nous utilisons. De cette façon, la communauté mondiale de la recherche peut bénéficier du code, mais nous aurions un avantage sur la taille des problèmes que nous pouvons exécuter.
Une telle fonctionnalité est-elle conceptuellement possible? Et comment une telle fonctionnalité pourrait-elle être mise en œuvre? Essentiellement, nous aimerions open-source le code complet, mais limiter la parallélisation (en utilisant MPI) à un nombre fixe de threads MPI, par exemple en utilisant un module (source fermée).
la source
Réponses:
Vous essayez de faire profiter la communauté de la recherche en lui permettant de faire ce que vous faites, sans lui faire faire ce que vous faites. On dirait que vous n'avez pas encore vraiment fait de choix de principe.
Les solutions logicielles comme celle-ci dans les logiciels open source ne sont pas susceptibles de fonctionner: le code est open source, après tout. La première chose que les autres institutions feront sera d'extraire le bit de source fermée, de le remplacer par un bit de source ouverte sans une telle limitation, et alors tout le monde l'utilisera.
Il pourrait y avoir un compromis possible: ne pas ouvrir le logiciel, mais vendre des licences. Les institutions disposant de licences ont également le droit de lire et de modifier le code, mais pas de le distribuer. Charge sur une base annuelle. De cette façon, vous pouvez peut-être compenser la perte de financement en prenant certains des leurs.
Une autre option consiste à publier une version plus ancienne, que vous gardez à jour mais toujours en retard d'un certain nombre d'années. Cependant, une communauté open source peut prendre le projet et développer de nouvelles fonctionnalités plus rapidement que vous (ou il se peut que non; la plupart des gens surestiment l'intérêt que les autres portent à leurs logiciels).
Ou libérez-le simplement et utilisez le travail que les autres y font. Vous serez toujours les meilleurs experts du logiciel.
la source
Cela ne peut pas vraiment être fait.
L'idée derrière l'open source est que la source est ouverte , en d'autres termes, les gens y auront accès. De Wikipédia :
En fournissant un accès universel à la conception ou au plan directeur, même si la version publiée n'est limitée qu'à 1000 cœurs, il serait assez facile de simplement changer ce nombre en 100000 ou quelque chose du genre.
Voici quelques options de ce que vous pourriez faire à la place:
la source
Il y a très peu de choses que vous pouvez faire pour limiter ce que les autres feront avec votre code source. Ils peuvent créer un autre module à partir de zéro qui peut débloquer la capacité de multitraitement, ou même l'améliorer: cela coûtera du temps et de l'expertise, mais si c'est important pour eux, ils le feront.
Avec dix ans d'avance, vous avez toujours la possibilité d'utiliser votre expérience et votre connaissance du code pour continuer à faire les meilleures recherches, même si vous donnez aux autres le code source qui leur permet de reproduire vos expériences. Vos bailleurs de fonds peuvent même avoir plus de raisons de vous contacter, car votre impact sur la recherche peut être plus important si vous êtes à la tête d'un projet open source utilisé dans plusieurs universités.
Au lieu de l'open source, vous pouvez essayer de restreindre les autres légalement, en publiant votre source mais en mettant des restrictions propriétaires sur la licence source. Je peux penser à plusieurs projets qui ont fait cela: Ghostscript, AT&T Unix, Microsoft .NET et Xerox PARC Smalltalk-80. Bien que ceux-ci soient finalement devenus entièrement open source, je m'attends à ce qu'il y en ait d'autres moins connus qui imposent encore des restrictions sur la façon dont les titulaires de licence utilisent le code source. Bien sûr, bien que la publication de votre source signifie que ceux qui respectent moins la loi peuvent enfreindre les conditions, cela devrait empêcher les chercheurs universitaires de bonne foi d'exécuter votre code sur des superordinateurs aussi puissants que le vôtre.
la source