공개 소스 프로그램이 아닌 경우 공개 소스 모듈로 클러스터 크기 제한


10

저는 고성능 컴퓨팅에 크게 의존하는 학술 연구소에서 일하고 있습니다. 10 년 동안 우리는 매우 잘 알려져 있으며 매우 큰 클러스터에서 실행될 수있는 자체 포트란 코드를 개발했습니다. 더 큰 리서치 커뮤니티가 코드의 혜택을 받도록하기 위해 오픈 소스로 만드는 것을 고려하고 있습니다. 그러나 우리의 자금은 우리가 코드로 수행 할 수있는 연구에 크게 의존하기 때문에, 우리는 발자취를 당할 것입니다.

아이디어 중 하나는 코드가 실행될 수있는 CPU 수를 제한하는 것입니다 (예 : 우리가 사용하는 100,000 개 대신 최대 1000 개 CPU). 이렇게하면 전 세계 리서치 커뮤니티가 코드의 혜택을 누릴 수 있지만 실행할 수있는 문제의 크기에 유리합니다.

이러한 기능은 개념적으로 가능합니까? 그리고 그러한 기능을 어떻게 구현할 수 있습니까? 기본적으로 완전한 코드를 오픈 소스로하고 싶지만 병렬 처리 (MPI 사용)를 고정 된 수의 MPI 스레드로 제한합니다 (예 : (폐쇄 소스) 모듈 사용).


폐쇄 소스 모듈은 정확히 무엇을합니까? 다른 사람이 다시 구현하기가 얼마나 어려울까요?
svick

답변:


16

당신은 그들이하는 일을 할 수있게하지 않고 그들이하는 일을 할 수있게함으로써 연구 공동체가 혜택을 누리도록 노력하고 있습니다. 아직 원칙적으로 선택하지 않은 것 같습니다.

오픈 소스 소프트웨어와 같은 소프트웨어 솔루션은 작동하지 않을 것입니다. 결국 코드는 오픈 소스입니다. 다른 기관이 할 첫 번째 일은 닫힌 소스 비트를 제거하고 그러한 제한없이 오픈 소스 비트로 교체 한 다음 모든 사람들이 사용합니다.

타협 할 수 :하지 오픈 소스 소프트웨어를하지만, 판매 라이센스. 라이센스를 보유한 기관은 코드를 읽고 수정할 수 있지만 배포 할 수는 없습니다. 매년 청구하십시오. 그렇게하면 자금 손실을 보충 할 수 있습니다.

또 다른 옵션은 이전 버전을 출시하는 것입니다.이 버전은 계속 업데이트되지만 몇 년이 지체됩니다. 그러나 오픈 소스 커뮤니티는 프로젝트보다 더 빨리 새로운 기능을 개발할 수 있습니다.

아니면 그냥 풀어서 다른 사람들이하는 일을 활용하십시오. 당신은 항상 소프트웨어의 최고 전문가가 될 것입니다.


4

이것은 실제로 할 수 없습니다.

오픈 소스의 기본 개념은 소스가 열려 있다는 것입니다. 즉, 사람들은 소스에 액세스 할 수 있습니다. 에서 위키 백과 :

생산 및 개발에서 개발 모델 인 오픈 소스는 무료 라이센스를 통해 제품의 설계 또는 설계도에 대한 보편적 인 액세스와 그 설계 또는 설계도의 보편적 인 재배포 (이후의 개선 사항 포함)를 촉진합니다.

출시 된 버전이 1000 개 코어로 제한되어 있어도 디자인 또는 청사진에 대한 보편적 인 액세스를 제공하면 해당 숫자를 100000으로 변경하는 것이 매우 쉽습니다.


대신 수행 할 수있는 몇 가지 옵션이 있습니다.

  • 코드 사용자를 제한하는 라이센스에 따라 코드를 배포하는 것을 고려하십시오
  • 다른 연구원들이 코드 자체에 액세스하지 않고도 기능을 얻을 수있는 비공개 소스 API 라이브러리를 출시하십시오.

옳은. "CPU 수를 확인하고 X보다 많은 CPU를 올바르게 사용하지 않는다"는 코드를 넣으면 다른 사람이 오픈 소스를 통해 빗질하고 해당 검사를 제거한 다음 다시 컴파일 할 수 있습니다.

4

다른 사람들이 소스 코드로 할 일을 제한하기 위해 할 수있는 일은 거의 없습니다. 멀티 프로세싱 기능의 잠금을 해제하거나 개선 할 수있는 다른 모듈을 처음부터 만들 수 있습니다. 시간과 전문 지식이 필요하지만 중요한 경우 처리 할 수 ​​있습니다.

10 년을 앞두고도 실험을 복제 할 수있는 소스 코드를 다른 사람에게 제공하더라도 코드에 대한 경험과 지식을 사용하여 최고의 연구를 계속할 수 있습니다. 여러 대학에서 사용되는 오픈 소스 프로젝트의 리더 인 경우 연구 영향이 더 커질 수 있으므로 자금 지원자가 더 많은 이유를 가질 수도 있습니다.

오픈 소스 대신 소스를 게시하고 소스 라이센스에 독점적 인 제한을 두어 합법적으로 다른 사람을 제한하려고 할 수 있습니다. Ghostscript, AT & T Unix, Microsoft .NET 및 Xerox PARC Smalltalk-80과 같은 여러 프로젝트를 생각할 수 있습니다. 그 사람들은 결국 완전히 오픈 소스가되었지만 라이센스 사용자가 소스 코드를 사용하는 방법에 여전히 제한을 두는 잘 알려진 다른 것들이있을 것으로 기대합니다. 물론, 소스를 공개하는 것은 법을 덜 존중하는 사람들이 용어를 어길 수 있음을 의미하지만 선의의 학술 연구자들이 자신의 코드만큼 강력한 슈퍼 컴퓨터에서 코드를 실행하지 못하게해야합니다.



@musiKk 2002 년에 .NET의 핵심 인 Rotor 포크는 독점적 인 '공유 소스' 로 시작 했지만, 훨씬 최근에는 상용 소스의 대부분이 참조 라이센스에 따라 게시 된 다음 버전 4.6에서 완전히 공개 된 소스 . Microsoft의 소스 공유 방식이 얼마나 복잡한 지 몰랐습니다 .
dcorking

1
당신은 정말 내 마음을 뛰게 만들었습니다. 나는 13 살짜리 대답을 파 냈다고 생각했다. SO가 2008 년에 출시되었다는 사실을 잊지 마십시오.
musiKk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.