Aksi takdirde açık kaynak programında kapalı kaynak modülü ile küme boyutunu kısıtlayın


10

Yüksek performanslı hesaplamaya bağımlı bir akademik araştırma enstitüsünde çalışıyorum. 10 yıl içinde, çok iyi bilinen ve çok büyük kümeler üzerinde çalışabilen kendi Fortran kodumuzu geliştirdik. Daha geniş araştırma topluluğunun koddan yararlanabilmesi için onu açık kaynak yapmayı düşünüyoruz. Ancak, fonlarımız kodla gerçekleştirebileceğimiz araştırmaya büyük ölçüde bağlı olduğundan, kendimizi ayağa vuruyoruz.

Fikirlerden biri, kodun çalışabileceği CPU sayısını sınırlamaktır, örneğin kullandığımız 100.000 yerine maksimum 1000 CPU. Bu şekilde küresel araştırma topluluğu koddan yararlanabilir, ancak karşılaşabileceğimiz sorunların boyutu üzerinde bir avantaj elde ederiz.

Böyle bir özellik kavramsal olarak mümkün mü? Ve böyle bir özellik nasıl uygulanabilir? Esasen kodun tamamını açık kaynak yapmak istiyoruz, ancak paralelleştirmeyi (MPI kullanarak) sabit sayıda MPI iş parçacığıyla, örneğin (kapalı kaynak) bir modül kullanarak sınırlıyoruz.


Bu kapalı kaynak modülü tam olarak ne yapardı? Başka birisinin bunu yeniden uygulaması ne kadar zor olurdu?
svick

Yanıtlar:


16

Yaptıklarınızı yapabilmelerini sağlayarak, yaptığınız şeyi yapabilmelerini sağlayarak araştırma topluluğunun faydalanmasına izin veriyorsunuz. Henüz gerçekten ilkeli bir seçim yapmadığınız anlaşılıyor.

Açık kaynaklı yazılımlarda bunun gibi yazılım çözümlerinin çalışması muhtemel değildir: sonuçta kod açık kaynaktır. Diğer kurumların yapacağı ilk şey, kapalı kaynak bitini parçalamak, böyle bir sınırlama olmaksızın açık kaynak bitiyle değiştirmek ve herkes bunu kullanacaktır.

Orada olabilecek bir uzlaşma mümkün: yapamaz açık kaynaklı yazılımlar, ancak satış lisansları. Lisansı olan kurumlar da kodu okuma ve değiştirme hakkına sahiptir, ancak dağıtma hakkına sahiptir. Yıllık olarak ücretlendirme. Bu şekilde, bazılarını alarak fon kaybını telafi edebilirsiniz.

Başka bir seçenek, güncel tutmaya devam ettiğiniz ancak her zaman birkaç yıl geride kalan eski bir sürümü yayınlamaktır. Bununla birlikte, açık kaynaklı bir topluluk projeyi ele geçirebilir ve sizden daha hızlı yeni özellikler geliştirebilir (veya olmayabilir; çoğu insan başkalarının yazılımlarına olan ilgiyi abartır).

Ya da sadece bırakın ve başkalarının üzerinde yaptığı çalışmaları kullanın. Her zaman yazılımın en iyi uzmanları olacaksınız.


4

Bu gerçekten yapılamaz.

Açık kaynağın arkasındaki fikir, kaynağın açık olması , diğer bir deyişle insanların buna erişebilmesidir. Gönderen Vikipedi :

Üretim ve geliştirmede, bir geliştirme modeli olarak açık kaynak, bir ürünün tasarımına veya planına ücretsiz bir lisans yoluyla evrensel erişimi ve bu tasarımın veya planın herkes tarafından daha sonra geliştirilmeleri de dahil olmak üzere evrensel olarak yeniden dağıtılmasını teşvik eder.

Tasarıma veya taslağa evrensel erişim sağlayarak, piyasaya sürülen sürüm sadece 1000 çekirdekle sınırlı olsa bile, bu sayıyı 100000'e veya başka bir şeye değiştirmek oldukça kolay olacaktır.


Bunun yerine ne yapabileceğinize ilişkin bazı seçenekler şunlardır:

  • Kodu, kullanıcılarınızı kodunuzu kısıtlayan bir lisans altında bırakmayı düşünün
  • Diğer araştırmacıların kodun kendisine erişmeden işlevselliklerini kazanmalarını sağlayan kapalı kaynaklı bir API kitaplığı yayınlayın.

Doğru. Buraya "CPU sayısını kontrol edin ve X'ten fazlasını kullanmayın" kodunu koyarsanız, başkaları açık kaynağınızdan tarama yapabilir, bu kontrolü kaldırabilir ve yeniden derleyebilir.

4

Kaynak kodunuzla başkalarının ne yapacağını sınırlamak için yapabileceğiniz çok az şey var. Çok işlem yeteneğinin kilidini açabilen veya hatta geliştirebilen başka bir modül yapabilirler: hatta zaman ve uzmanlığa mal olacak, ancak onlar için önemliyse bunu yapacaklar.

On yıllık bir başlangıç ​​ile, deneylerinizi çoğaltmanıza olanak tanıyan kaynak kodunu verseniz bile, en iyi araştırmayı yapmaya devam etmek için deneyim ve kod bilginizi kullanma fırsatına sahipsiniz. Çeşitli üniversitelerde kullanılan açık kaynaklı bir projenin lideri iseniz, yatırımcılarınızın size gitmek için daha fazla nedeni olabilir.

Açık kaynak yerine, kaynağınızı yayınlayarak ancak kaynak lisansına özel kısıtlamalar koyarak başkalarını yasal olarak kısıtlamaya çalışabilirsiniz. Bunu yapan birkaç projeyi düşünebilirim: Ghostscript, AT&T Unix, Microsoft .NET ve Xerox PARC Smalltalk-80. Bu olanlar sonunda tamamen açık kaynak kodlu olsa da, lisans sahiplerinin kaynak kodunu nasıl kullandıklarına hala kısıtlama getiren daha az tanınmış olanlar olmasını bekliyorum. Tabii ki, kaynağınızı yayınlamak yasaya daha az saygı duyanların şartları kırabileceği anlamına gelirken, akademik araştırmacıların kodunuzu süper bilgisayarlar üzerinde sizin kadar güçlü çalıştırmasını engellemelidir.



@musiKk 2002 yılında, .NET çekirdeğinin Rotor çatalı tescilli 'paylaşılan kaynak' olarak başladı , ancak daha yakın zamanda ticari kaynağın büyük bölümleri bir referans lisansı altında yayınlandı ve daha sonra 4.6 sürümünde tamamen açık kaynak . Microsoft'un kaynak paylaşım düzenlemelerinin ne kadar karmaşık olduğunun farkında değildim .
dcorking

1
Gerçekten kalbimi atladın. 13 yaşında bir cevap bulduğumu sanıyordum. 2008'de SO'nun piyasaya sürülmesine aldırmayın ... O zaman yeterince adil.
musiKk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.