Saya bekerja di lembaga penelitian akademik yang sangat bergantung pada komputasi kinerja tinggi. Dalam 10 tahun kami telah mengembangkan kode Fortran kami sendiri yang sangat dihormati dan dapat dijalankan pada kelompok yang sangat besar. Agar komunitas riset yang lebih besar mendapat manfaat dari kode ini, kami mempertimbangkan untuk menjadikannya open-source. Namun, karena dana kami sangat tergantung pada penelitian yang dapat kami lakukan dengan kode, kami akan menjadi semacam penembakan di kaki.
Salah satu idenya adalah membatasi jumlah CPU yang dapat dijalankan oleh kode, mis. Maksimum 1000 CPU, bukan 100.000 yang kami gunakan. Dengan begitu komunitas riset global dapat mengambil manfaat dari kode tersebut, tetapi kami akan memiliki keuntungan pada ukuran masalah yang dapat kami jalankan.
Apakah fitur seperti itu dimungkinkan secara konseptual? Dan bagaimana fitur seperti itu diimplementasikan? Pada dasarnya kami ingin open-source kode lengkap, tetapi membatasi paralelisasi (menggunakan MPI) ke sejumlah thread MPI, misalnya menggunakan modul (sumber tertutup).
sumber
Jawaban:
Anda mencoba membiarkan komunitas riset mendapat manfaat dengan membuat mereka dapat melakukan apa yang Anda lakukan, tanpa membuat mereka mampu melakukan apa yang Anda lakukan. Kedengarannya seperti Anda belum benar-benar membuat pilihan yang berprinsip.
Solusi perangkat lunak seperti itu dalam perangkat lunak open source sepertinya tidak akan berfungsi: kodenya adalah open source. Hal pertama yang akan dilakukan oleh lembaga lain adalah merobek bit sumber tertutup, menggantinya dengan bit sumber terbuka tanpa batasan seperti itu, dan kemudian semua orang akan menggunakannya.
Ada mungkin menjadi kompromi yang mungkin: tidak open source software, tetapi lisensi menjual. Lembaga dengan lisensi juga mendapatkan hak untuk membaca dan memodifikasi kode, tetapi tidak untuk mendistribusikannya. Mengisi daya setiap tahun. Dengan begitu Anda mungkin bisa menebus kehilangan dana dengan mengambil sebagian dari mereka.
Pilihan lain adalah merilis versi yang lebih lama, yang terus diperbarui tetapi selalu tertinggal beberapa tahun. Namun, komunitas open source dapat mengambil proyek dan mengembangkan fitur baru lebih cepat dari yang Anda lakukan (atau mungkin tidak; kebanyakan orang melebih-lebihkan minat orang lain terhadap perangkat lunak mereka).
Atau lepaskan saja dan manfaatkan pekerjaan yang dilakukan orang lain di sana. Anda akan selalu menjadi ahli teratas di perangkat lunak.
sumber
Ini tidak bisa dilakukan.
Ide di balik open source adalah bahwa sumber adalah terbuka , dengan kata lain, orang akan memiliki akses ke sana. Dari Wikipedia :
Dengan memberikan akses universal ke desain atau cetak biru, meskipun versi yang dirilis hanya terbatas pada 1000 core, akan cukup mudah untuk hanya mengubah angka itu menjadi 100000 atau sesuatu.
Berikut ini beberapa opsi yang dapat Anda lakukan:
sumber
Ada sangat sedikit yang dapat Anda lakukan untuk membatasi apa yang orang lain akan lakukan dengan kode sumber Anda. Mereka dapat membuat modul lain dari awal yang dapat membuka kemampuan multiprosesing, atau bahkan meningkatkannya: itu akan menghabiskan waktu dan keahlian, tetapi jika penting bagi mereka, mereka akan melakukannya.
Dengan sepuluh tahun sebelum memulai, Anda masih memiliki kesempatan untuk menggunakan pengalaman dan pengetahuan Anda tentang kode untuk terus melakukan penelitian terbaik, bahkan jika Anda memberi orang lain kode sumber yang memungkinkan mereka untuk mereplikasi eksperimen Anda. Pendana Anda mungkin memiliki lebih banyak alasan untuk mendatangi Anda, karena dampak riset Anda mungkin lebih besar jika Anda adalah pemimpin proyek sumber terbuka yang digunakan di beberapa universitas.
Alih-alih open source, Anda dapat mencoba untuk membatasi orang lain secara legal, dengan menerbitkan sumber Anda tetapi menempatkan pembatasan kepemilikan pada lisensi sumber. Saya dapat memikirkan beberapa proyek yang telah melakukan ini: Ghostscript, AT&T Unix, Microsoft .NET dan Xerox PARC Smalltalk-80. Sementara yang akhirnya menjadi open source sepenuhnya, saya berharap ada yang kurang terkenal yang masih menempatkan batasan bagaimana lisensi menggunakan kode sumber. Tentu saja, sementara menerbitkan sumber Anda akan berarti mereka yang kurang menghormati hukum dapat melanggar persyaratan, itu harus menjaga peneliti akademis dari menjalankan kode Anda pada superkomputer sekuat milik Anda.
sumber