他のオープンソースプログラムのクローズドソースモジュールでクラスターサイズを制限する


10

私は、高性能コンピューティングに大きく依存している学術研究機関で働いています。10年の間に、非常に評価され、非常に大きなクラスターで実行できる独自のFortranコードを開発しました。より大きな研究コミュニティがコードから利益を得るために、それをオープンソースにすることを検討しています。しかし、私たちの資金はコードで実行できる研究に大きく依存しているので、私たちは一種の足を踏みにじることになります。

アイデアの1つは、コードを実行できるCPUの数を制限することです。たとえば、使用する100,000ではなく最大1000 CPUです。このようにして、グローバルな研究コミュニティはコードから利益を得ることができますが、実行できる問題の規模には有利になります。

そのような機能は概念的に可能ですか?そして、そのような機能はどのように実装できますか?基本的に、完全なコードをオープンソース化したいが、並列化を(MPIを使用して)固定数のMPIスレッドに制限します。たとえば、(クローズドソース)モジュールを使用します。


そのクローズドソースモジュールは正確には何をしますか?他の誰かがそれを再実装するのはどれほど難しいでしょうか?
2015年

回答:


16

あなたは、彼らにあなたがすることをさせることなく、彼らにあなたがすることをさせることができるようにすることによって、研究コミュニティに利益を与えようとしています。まだ原則的な選択を行っていないようですね。

オープンソースソフトウェアのようなソフトウェアソリューションは機能しない可能性があります。結局のところ、コードはオープンソースです。他の機関が最初にすることは、クローズドソースのビットを取り除き、それをそのような制限のないオープンソースのビットに置き換え、そして誰もがそれを使用することです。

妥協の可能あります。ソフトウェアをオープンソースにせず、ライセンスを販売してください。ライセンスを保有する教育機関には、コードを読んで変更する権利がありますが、配布することはできません。毎年請求します。そうすれば、資金の損失を補うことができます。

もう1つのオプションは、古いバージョンをリリースすることです。これは、常に更新されますが、常に数年遅れます。ただし、オープンソースコミュニティは、プロジェクトよりも早く新機能を開発する場合があります(またはそうでない場合もあります。ほとんどの人は、他の人が自分のソフトウェアに対する関心を過大評価しています)。

または、それを解放して、他の人が行う作業を利用します。あなたは常にソフトウェアのトップエキスパートになります。


4

これは本当にできません。

オープンソースの背後にある考え方は、ソースがオープンである、つまり、人々がそれにアクセスできるということです。ウィキペディアから:

生産と開発において、開発モデルとしてのオープンソースは、製品の設計またはブループリントへの無料ライセンスを介したユニバーサルアクセス、およびその設計またはブループリントのユニバーサルな再配布を促進します。

デザインまたはブループリントへのユニバーサルアクセスを提供することにより、リリースされたバージョンが1000コアのみに制限されている場合でも、単純にその数を100000かそれに変更することは非常に簡単です。


代わりにできることのいくつかのオプションを次に示します。

  • コードのユーザーを制限するライセンスの下でコードをリリースすることを検討してください
  • 他の研究者がコード自体にアクセスせずに機能を取得できるようにするクローズドソースAPIライブラリをリリースします。

正しい。そこに「CPUの数を確認し、Xを超えるCPUを適切に使用しないでください」と言うコードを入れた場合、他の誰もがオープンソースをくまなく調べ、そのチェックを削除して再コンパイルできます。

4

他の人があなたのソースコードで行うことを制限するためにあなたができることはほとんどありません。彼らは、マルチプロセッシング機能をアンロックできる別のモジュールを最初から作成することも、さらにはそれを改善することもできます。それは時間と専門知識を要しますが、彼らにとって重要な場合はそれを行います。

10年の頭の中で、実験を再現できるソースコードを他の人に提供したとしても、コードの経験と知識を利用して最高の研究を継続する機会があります。複数の大学で使用されているオープンソースプロジェクトのリーダーである場合、研究への影響が大きくなる可能性があるため、資金提供者があなたに行く理由がさらに増える可能性があります。

オープンソースの代わりに、ソースを公開し、ソースライセンスに独自の制限を課すことで、他のユーザーを合法的に制限することができます。Ghostscript、AT&T Unix、Microsoft .NET、Xerox PARC Smalltalk-80など、いくつかのプロジェクトが考えられます。それらは最終的には完全にオープンソースになりましたが、ライセンシーがソースコードを使用する方法に制限を課しているあまり知られていないものがあると思います。もちろん、ソースを公開することは、法律を尊重しない人々が条件を破る可能性があることを意味しますが、それは真の学術研究者があなたと同じくらい強力なスーパーコンピュータであなたのコードを実行することを防ぐはずです。



@musiKk 2002年、.NETのコアのローターフォークは独自の「共有ソース」として始まりましたが、ごく最近、商用ソースの大部分が参照ライセンスの下で公開され、次にバージョン4.6で完全にオープンソースになりました。マイクロソフトのソース共有の取り決めがいかに複雑であるかを知りませんでした。
2015年

1
あなたは本当に私の心をジャンプさせました。私は13歳の答えを探し出したと思いました。SOが2008年に発売されたことを気にしないでください。
musiKk 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.