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).
źródło
Odpowiedzi:
Starasz się, aby społeczność badawcza skorzystała, umożliwiając im robienie tego, co robisz, bez umożliwienia im robienia tego, co robisz. To brzmi, jakbyś naprawdę nie dokonał jeszcze zasadniczego wyboru.
Rozwiązania tego typu w oprogramowaniu typu open source raczej nie będą działać: w końcu kod jest oprogramowaniem typu open source. Pierwszą rzeczą, którą zrobią inne instytucje, jest wyrwanie bitu o zamkniętym źródle, zastąpienie go bitem o otwartym kodzie źródłowym bez takich ograniczeń, a potem wszyscy go użyją.
Nie może być kompromisu możliwe: nie open source oprogramowanie, ale licencje sprzedać. Instytucje posiadające licencje mają również prawo do czytania i modyfikowania kodu, ale nie do jego rozpowszechniania. Opłata roczna. W ten sposób możesz odrobić straty w finansowaniu, biorąc niektóre z nich.
Inną opcją jest wydanie starszej wersji, która jest aktualizowana, ale zawsze pozostaje w tyle o pewną liczbę lat. Jednak społeczność typu open source może zająć się projektem i rozwijać nowe funkcje szybciej niż Ty (lub nie; większość ludzi przecenia zainteresowanie innymi swoim oprogramowaniem).
Lub po prostu zwolnij go i skorzystaj z pracy wykonanej przez innych. Zawsze będziesz najlepszym ekspertem od oprogramowania.
źródło
Tak naprawdę nie da się tego zrobić.
Idea otwartego źródła polega na tym, że źródło jest otwarte , innymi słowy, ludzie będą mieli do niego dostęp. Z Wikipedii :
Zapewniając uniwersalny dostęp do projektu lub planu, nawet jeśli wydana wersja jest ograniczona tylko do 1000 rdzeni, łatwo byłoby po prostu zmienić tę liczbę na 100000 lub coś takiego.
Oto kilka opcji, które możesz zamiast tego zrobić:
źródło
Niewiele możesz zrobić, aby ograniczyć to, co inni zrobią z twoim kodem źródłowym. Mogą stworzyć od podstaw kolejny moduł, który może odblokować funkcję wieloprocesorową, a nawet ją ulepszyć: będzie to kosztowało czasu i wiedzy, ale jeśli będzie to dla nich ważne, zrobią to.
Dziesięć lat na czele, wciąż masz okazję wykorzystać swoje doświadczenie i wiedzę o kodzie, aby kontynuować najlepsze badania, nawet jeśli dasz innym kod źródłowy, który pozwala im na powtórzenie twoich eksperymentów. Twoi sponsorzy mogą nawet mieć więcej powodów, aby do ciebie iść, ponieważ Twój wpływ na badania może być większy, jeśli jesteś liderem projektu open source, który jest wykorzystywany na kilku uniwersytetach.
Zamiast oprogramowania typu open source możesz spróbować ograniczyć inne podmioty, publikując swoje źródło, ale nakładając ograniczenia własnościowe na licencję źródłową. Mogę wymyślić kilka projektów, które to zrobiły: Ghostscript, AT&T Unix, Microsoft .NET i Xerox PARC Smalltalk-80. Chociaż ostatecznie stały się w pełni open source, spodziewam się, że istnieją inne, mniej znane, które wciąż nakładają ograniczenia na sposób, w jaki licencjobiorcy używają kodu źródłowego. Oczywiście, choć opublikowanie Twojego źródła będzie oznaczało, że osoby o mniejszym poszanowaniu prawa mogą złamać warunki, to powinno powstrzymać bona fide naukowców akademickich przed uruchomieniem twojego kodu na superkomputerach tak potężnych jak twój.
źródło