2018.11.27

김진철의 How-to-Big Data | 빅데이터 조직과 시스템 (2)

김진철 | CIO KR

CERN은 왜 오픈소스 컨퍼런스 관리 소프트웨어를 만들었나? – CERN의 Indico
앞서 자세히 소개한 그리드와 클라우드 컴퓨팅 기술, 그리고 팀 버너스 리의 월드 와이드 웹과 같이 현대 인터넷을 만든 다양한 정보 기술들이 탄생한 CERN은 입자물리학 연구소이지만 정보기술의 수준도 세계 정상이다. CERN에서 일하는 다양한 분야의 물리학자들은 다른 분야의 과학자들에 비해서 유난히 정보기술의 전문성이 높은 편이다.

CERN 내부에는 LHC Computing Grid를 포함한 유럽 인터넷, 연구망 허브 등의 정보 기술 인프라를 구축, 운영, 관리하는 CERN 컴퓨팅 센터가 있고, 이곳에 다양한 분야의 컴퓨터 과학자들과 정보기술 전문가들이 근무하고 있지만, 이들 외에도 많은 물리학자가 수준급의 프로그래밍 실력과 컴퓨터, 정보기술 전문 지식을 가지고 입자물리학 현상을 분석하는데 필요한 다양한 소프트웨어를 만들어 내고 있다.



CERN에서는 앞서 열 세번째부터 열 여섯번째 글에서 소개한 것과 같이 ROOT나 PROOF, CMS 검출기 온라인 소프트웨어인 XDAQ, LHC 컴퓨팅 그리드 서비스를 위한 WLCG 그리드 미들웨어 등 LHC 실험 장치와 빅데이터 분석을 위한 다양한 오픈소스 소프트웨어를 만들어 전 세계 공동 연구원과 입자물리학 연구원들에게 배포하고 있다. CERN에서 개발한 오픈소스 소프트웨어 중에 독특하면서 눈에 띄는 오픈소스 소프트웨어가 하나 있는데, 이것이 오늘 소개할 Indico라고 하는 소프트웨어이다.

Indico는 컨퍼런스와 워크숍 등의 다양한 학술회의의 프로그램, 참석자와 회의 자료를 등록하고 관리하기 위해 만든 오픈소스 소프트웨어이다. 실제로 LHC 국제 공동 연구와 관련된 많은 컨퍼런스와 워크숍, 회의가 Indico를 통해서 관리되고 있다. CERN에서 운영하는 Indico 서비스인 indico.cern.ch에 집계된 통계를 보면, 2018년 11월 15일 현재 Indico를 통해 관리된 컨퍼런스의 수만 1,629개, 워크숍의 수만 3,191개이고, LHC가속기의 국제 공동 연구와 관련된 회의만 해도 483,807개가 된다.

사실 학계에서 컨퍼런스를 열어서 연구성과를 발표, 홍보하고 비슷한 문제를 고민하는 연구원들끼리 의견과 정보를 교환하는 모습은 그렇게 유별난 것은 아니다. 하지만, 특정한 커뮤니티에서 학술회의 관리를 위해 꽤 오랜 시간 동안 오픈소스 소프트웨어를 개발해서 배포, 관리하고 있다는 것은 놀랄 만한 일이 아닐 수 없다. 



보통 특정한 연구분야에서 열리는 컨퍼런스는 많아야 수십 개 수준이다. 하지만, LHC 장치 및 실험에 관련된 컨퍼런스만 2000년 이후로 1,627개라는 것은 연간 평균 90개 이상의 컨퍼런스가 열렸다는 의미다. Indico가 개발된 2000년 초반에는 Indico를 통해 관리된 컨퍼런스가 많지 않았을 테니, 최근에 Indico를 통해 관리되고 있는 LHC관련 컨퍼런스는 연간 100개가 넘는다고 볼 수 있다. 실험 관련 회의가 지금까지 483,807개이니, 연간 평균 26,878개의 회의가 Indico를 통해 열리고 있다. Indico에 집계된 컨퍼런스와 회의만 저 정도이니, Indico를 사용하지 않은 회의나 컨퍼런스를 고려하면 실제로는 훨씬 더 많은 수의 컨퍼런스와 회의가 열리고 있다.

도대체 왜 CERN에서는 이렇게 컨퍼런스 관리 소프트웨어를 직접 만들 필요가 있었을까?

첫번째로, 당연한 얘기겠지만, LHC 국제 공동 연구를 수행하기 위해 개최되어야 하는 학술회의의 수와 종류가 엄청나게 많았기 때문이다.

LHC 가속기와 네 개의 검출기의 규모가 워낙 크고 장치의 복잡도가 높다 보니 관련된 분야의 전문가들이 모여 실험 장치 설계, 개발, 운영에 관한 이슈를 논의하기 위해서 CERN과 LHC 프로젝트는 엄청난 수의 회의를 개최하고 그 자료를 관리하여야 하는 문제에 부딪혔다. 회의의 숫자가 보통 연구분야에서 열리는 컨퍼런스나 워크숍의 수보다 훨씬 많은데, 위에서 잠깐 언급했다시피 컨퍼런스만 해도 2000년 이후로 1,627개, 회의만도 483,807개이니 CERN에서는 1년 내내 컨퍼런스와 회의만 열리고 있다고 해도 과언이 아니다.



LHC 가속기와 네 개의 검출기들의 규모가 워낙 크고 복잡하기 때문에 풀어야 하는 기술적인 문제의 종류와 수가 많기도 하지만, LHC 실험장치가 전 세계에서 처음으로 지어지는 거대 실험장치이기 때문에 오는 문제도 있다. 상품화되어 대량 생산 단계에 들어간 실험장치라면 이미 기술적인 문제는 어느 정도 해결되어 생산 및 개발 과정이 자동화, 또는 표준화가 되어 있어서 실험 장치 개발을 위해 해야 하는 일들이 어느 정도 분명하게 정의될 수 있지만, LHC 실험장치는 전 세계, 인류 역사상 처음으로 짓는 장치이다 보니 장치에 들어가는 부품과 구성품들 모두를 일일이 새로 설계, 개발, 테스트해야 하고 성공적인 동작을 위한 위험 관리까지 해야만 했다.

이렇게 LHC 실험 장치를 개발하기 위해 풀어야 하는 다양하고 복잡한, 그리고 엄청난 수의 기술적인 문제들은 결코 한 국가의 연구소, 한 기업, 한 조직이나 한 분야의 전문가들만이 해결할 수는 없는 문제들이었다. 이런 상황이다 보니 다양한 분야의 전문가들이 모여서 문제 해결을 의논해야 할 뿐만 아니라, 압도적으로 부족한 전문가들의 수를 늘리기 위해 전 세계의 관련 기술 전문가와 연구원들이 모여 어떻게 기술적인 문제들을 해결해 나갈 것인지 논의하고 고민하는 자리가 필요했다.

고에너지 물리학, 입자 물리학 분야만 해도, LHC 실험장치를 통해 답해야 할 물리학적 질문들이 많아서 표준 모델(the Standard Model), 초대칭 이론(supersymmetry theory), 양자색소역학(quantum chromodynamics), 스트링 이론(the String Theory) 등등 다양한 분야가 발전하고 있고 이들 각각의 전문 분야들을 위한 학술회의만도 다양하게 열리고 있다. 이뿐만 아니라, 극저온 상태에서 강자장을 만들어 무거운 양성자빔의 궤적을 제어하고 유지하는 LHC 주 가속기 설계를 위한 극저온 엔지니어링(cryogenics), 가속기 및 빔 물리학, 가속기 제어 엔지니어링등의 분야와, 앞서 살펴본 LHC 네 개의 검출기로부터 생산되는 데이터를 처리하기 위해 필요한 빅데이터 처리, 분석 시스템을 위한 컴퓨터 과학, 인공지능 및 기계 학습, 분산 컴퓨팅 시스템, 네트워크, 컴퓨터 아키텍처 등등의 다양한 컴퓨팅 분야 전문가들이 협업해야 하는데, 이들 각 분야만 해도 다양한 규모의 많은 수의 학술회의가 필요하다.

사정이 이렇다 보니, 매번 컨퍼런스를 열 때마다 분야별로, 컨퍼런스별로 컨퍼런스를 관리하는 소프트웨어를 일일이 개발하는 것은 엄청난 낭비였음이 분명하다. 이에 더해서, 이렇게 다양한 분야의 기술적인 논의가 LHC 실험을 위한 문제 해결의 장으로서 일관성 있게 기능하고, 다양한 분야의 전문가와 연구원들이 LHC 실험장치의 성공적인 건설과 운영, 신뢰성 있는 동작을 통한 예정된 실험의 성공적인 수행이라는 공동의 목적을 향해 역량과 뜻을 모으게끔 하기 위해서는 표준화된 형식과 프로세스, 시스템으로 각종 학술회의를 체계적으로 관리할 필요가 있었다. 이런 배경에서 Indico의 개발이 추진되었다.

두 번째로, LHC 실험과 관련된 각종 학술회의의 발표 자료 및 논문, 보고서 등의 기술 문서와 자료들을 체계적으로 수집, 보존하고 관리할 필요가 있었다.

LHC 프로젝트와 관련해서 워낙 많은 수의 기술 자료가 작성, 발표, 공유되다 보니, 개별 컨퍼런스나 워크숍, 회의 자료를 회의마다 다른 방식으로 수집하고 보관해서는 회의 현장에서 이루어지는 수많은 중요한 기술적인 논의 및 의사 결정에 대한 기록과 자료를 체계적으로 보존, 관리, 참조할 수 없었다. 이를 위해서는 통일되고 일관된 방식으로 자료를 수집, 저장, 관리할 수 있는 시스템이 필요했는데, 바로 이를 위해 Indico가 개발된 것이다.

보통 LHC 프로젝트와 관련된 학술회의와 기술 워크숍에 가면 하루만 하는 회의라고 하더라도 수많은 보고서, 논문, 발표 자료 및 기술 자료가 쏟아져 나오게 된다. LHC 프로젝트에서 직접 일하지 않는 연구원이라고 하더라도 컨퍼런스나 회의에 초청을 받아 연사로서 발표하는 경우도 많다. LHC 프로젝트에 직, 간접적으로 참여, 기여하는 다양한 연구원과 전문가들의 기술적인 견해와 연구 성과가 언제 어떤 방식으로 LHC 장치 디자인 및 개발, 데이터 분석에 중요한 단서를 제공하거나 기여할지 예측할 수 없기 때문에 가능하면 모든 회의의 발표자료와 회의록, 참여자들과 회의 개요 등의 정보를 하나의 시스템에서 체계적으로 저장, 관리할 필요가 있었다.

각종 회의에서 수집된 발표자료와 발표 영상 자료, 회의록들도 워낙에 회의 종류와 숫자가 많다 보니 LHC에서 수집, 처리, 보관해야 하는 또 하나의 빅데이터가 되었다. 이들 LHC 관련 회의에서 나오는 기술 자료 빅데이터를 처리하기 위해서는 확장성 있는 컨퍼런스 관리 시스템이 필요했는데, 웹 기술의 총 본산이었던 CERN이 자신이 가진 웹 기술 전문가들의 전문성을 총동원하여 확장성 있고 유연한 컨퍼런스 관리 소프트웨어인 Indico를 만들게 된 것이다. 
 


세 번째로, LHC 실험장치 개발과 운영을 위한 비용도 만만치 않은데, 이를 위한 회의 개최 비용과 커뮤니케이션 비용도 최대한 절감할 필요가 있었다.

LHC 실험 장치와 컴퓨팅 인프라 자체만도 건설과 운영 비용이 천문학적으로 들어갔지만, LHC 프로젝트를 수행하는 인력들의 인건비와 이들 인력이 프로젝트를 위해 서로 의사소통하고 협업하기 위한 시스템을 갖추고 운영하는 데에도 많은 비용이 들어갔다.

 


2018.11.27

김진철의 How-to-Big Data | 빅데이터 조직과 시스템 (2)

김진철 | CIO KR

CERN은 왜 오픈소스 컨퍼런스 관리 소프트웨어를 만들었나? – CERN의 Indico
앞서 자세히 소개한 그리드와 클라우드 컴퓨팅 기술, 그리고 팀 버너스 리의 월드 와이드 웹과 같이 현대 인터넷을 만든 다양한 정보 기술들이 탄생한 CERN은 입자물리학 연구소이지만 정보기술의 수준도 세계 정상이다. CERN에서 일하는 다양한 분야의 물리학자들은 다른 분야의 과학자들에 비해서 유난히 정보기술의 전문성이 높은 편이다.

CERN 내부에는 LHC Computing Grid를 포함한 유럽 인터넷, 연구망 허브 등의 정보 기술 인프라를 구축, 운영, 관리하는 CERN 컴퓨팅 센터가 있고, 이곳에 다양한 분야의 컴퓨터 과학자들과 정보기술 전문가들이 근무하고 있지만, 이들 외에도 많은 물리학자가 수준급의 프로그래밍 실력과 컴퓨터, 정보기술 전문 지식을 가지고 입자물리학 현상을 분석하는데 필요한 다양한 소프트웨어를 만들어 내고 있다.



CERN에서는 앞서 열 세번째부터 열 여섯번째 글에서 소개한 것과 같이 ROOT나 PROOF, CMS 검출기 온라인 소프트웨어인 XDAQ, LHC 컴퓨팅 그리드 서비스를 위한 WLCG 그리드 미들웨어 등 LHC 실험 장치와 빅데이터 분석을 위한 다양한 오픈소스 소프트웨어를 만들어 전 세계 공동 연구원과 입자물리학 연구원들에게 배포하고 있다. CERN에서 개발한 오픈소스 소프트웨어 중에 독특하면서 눈에 띄는 오픈소스 소프트웨어가 하나 있는데, 이것이 오늘 소개할 Indico라고 하는 소프트웨어이다.

Indico는 컨퍼런스와 워크숍 등의 다양한 학술회의의 프로그램, 참석자와 회의 자료를 등록하고 관리하기 위해 만든 오픈소스 소프트웨어이다. 실제로 LHC 국제 공동 연구와 관련된 많은 컨퍼런스와 워크숍, 회의가 Indico를 통해서 관리되고 있다. CERN에서 운영하는 Indico 서비스인 indico.cern.ch에 집계된 통계를 보면, 2018년 11월 15일 현재 Indico를 통해 관리된 컨퍼런스의 수만 1,629개, 워크숍의 수만 3,191개이고, LHC가속기의 국제 공동 연구와 관련된 회의만 해도 483,807개가 된다.

사실 학계에서 컨퍼런스를 열어서 연구성과를 발표, 홍보하고 비슷한 문제를 고민하는 연구원들끼리 의견과 정보를 교환하는 모습은 그렇게 유별난 것은 아니다. 하지만, 특정한 커뮤니티에서 학술회의 관리를 위해 꽤 오랜 시간 동안 오픈소스 소프트웨어를 개발해서 배포, 관리하고 있다는 것은 놀랄 만한 일이 아닐 수 없다. 



보통 특정한 연구분야에서 열리는 컨퍼런스는 많아야 수십 개 수준이다. 하지만, LHC 장치 및 실험에 관련된 컨퍼런스만 2000년 이후로 1,627개라는 것은 연간 평균 90개 이상의 컨퍼런스가 열렸다는 의미다. Indico가 개발된 2000년 초반에는 Indico를 통해 관리된 컨퍼런스가 많지 않았을 테니, 최근에 Indico를 통해 관리되고 있는 LHC관련 컨퍼런스는 연간 100개가 넘는다고 볼 수 있다. 실험 관련 회의가 지금까지 483,807개이니, 연간 평균 26,878개의 회의가 Indico를 통해 열리고 있다. Indico에 집계된 컨퍼런스와 회의만 저 정도이니, Indico를 사용하지 않은 회의나 컨퍼런스를 고려하면 실제로는 훨씬 더 많은 수의 컨퍼런스와 회의가 열리고 있다.

도대체 왜 CERN에서는 이렇게 컨퍼런스 관리 소프트웨어를 직접 만들 필요가 있었을까?

첫번째로, 당연한 얘기겠지만, LHC 국제 공동 연구를 수행하기 위해 개최되어야 하는 학술회의의 수와 종류가 엄청나게 많았기 때문이다.

LHC 가속기와 네 개의 검출기의 규모가 워낙 크고 장치의 복잡도가 높다 보니 관련된 분야의 전문가들이 모여 실험 장치 설계, 개발, 운영에 관한 이슈를 논의하기 위해서 CERN과 LHC 프로젝트는 엄청난 수의 회의를 개최하고 그 자료를 관리하여야 하는 문제에 부딪혔다. 회의의 숫자가 보통 연구분야에서 열리는 컨퍼런스나 워크숍의 수보다 훨씬 많은데, 위에서 잠깐 언급했다시피 컨퍼런스만 해도 2000년 이후로 1,627개, 회의만도 483,807개이니 CERN에서는 1년 내내 컨퍼런스와 회의만 열리고 있다고 해도 과언이 아니다.



LHC 가속기와 네 개의 검출기들의 규모가 워낙 크고 복잡하기 때문에 풀어야 하는 기술적인 문제의 종류와 수가 많기도 하지만, LHC 실험장치가 전 세계에서 처음으로 지어지는 거대 실험장치이기 때문에 오는 문제도 있다. 상품화되어 대량 생산 단계에 들어간 실험장치라면 이미 기술적인 문제는 어느 정도 해결되어 생산 및 개발 과정이 자동화, 또는 표준화가 되어 있어서 실험 장치 개발을 위해 해야 하는 일들이 어느 정도 분명하게 정의될 수 있지만, LHC 실험장치는 전 세계, 인류 역사상 처음으로 짓는 장치이다 보니 장치에 들어가는 부품과 구성품들 모두를 일일이 새로 설계, 개발, 테스트해야 하고 성공적인 동작을 위한 위험 관리까지 해야만 했다.

이렇게 LHC 실험 장치를 개발하기 위해 풀어야 하는 다양하고 복잡한, 그리고 엄청난 수의 기술적인 문제들은 결코 한 국가의 연구소, 한 기업, 한 조직이나 한 분야의 전문가들만이 해결할 수는 없는 문제들이었다. 이런 상황이다 보니 다양한 분야의 전문가들이 모여서 문제 해결을 의논해야 할 뿐만 아니라, 압도적으로 부족한 전문가들의 수를 늘리기 위해 전 세계의 관련 기술 전문가와 연구원들이 모여 어떻게 기술적인 문제들을 해결해 나갈 것인지 논의하고 고민하는 자리가 필요했다.

고에너지 물리학, 입자 물리학 분야만 해도, LHC 실험장치를 통해 답해야 할 물리학적 질문들이 많아서 표준 모델(the Standard Model), 초대칭 이론(supersymmetry theory), 양자색소역학(quantum chromodynamics), 스트링 이론(the String Theory) 등등 다양한 분야가 발전하고 있고 이들 각각의 전문 분야들을 위한 학술회의만도 다양하게 열리고 있다. 이뿐만 아니라, 극저온 상태에서 강자장을 만들어 무거운 양성자빔의 궤적을 제어하고 유지하는 LHC 주 가속기 설계를 위한 극저온 엔지니어링(cryogenics), 가속기 및 빔 물리학, 가속기 제어 엔지니어링등의 분야와, 앞서 살펴본 LHC 네 개의 검출기로부터 생산되는 데이터를 처리하기 위해 필요한 빅데이터 처리, 분석 시스템을 위한 컴퓨터 과학, 인공지능 및 기계 학습, 분산 컴퓨팅 시스템, 네트워크, 컴퓨터 아키텍처 등등의 다양한 컴퓨팅 분야 전문가들이 협업해야 하는데, 이들 각 분야만 해도 다양한 규모의 많은 수의 학술회의가 필요하다.

사정이 이렇다 보니, 매번 컨퍼런스를 열 때마다 분야별로, 컨퍼런스별로 컨퍼런스를 관리하는 소프트웨어를 일일이 개발하는 것은 엄청난 낭비였음이 분명하다. 이에 더해서, 이렇게 다양한 분야의 기술적인 논의가 LHC 실험을 위한 문제 해결의 장으로서 일관성 있게 기능하고, 다양한 분야의 전문가와 연구원들이 LHC 실험장치의 성공적인 건설과 운영, 신뢰성 있는 동작을 통한 예정된 실험의 성공적인 수행이라는 공동의 목적을 향해 역량과 뜻을 모으게끔 하기 위해서는 표준화된 형식과 프로세스, 시스템으로 각종 학술회의를 체계적으로 관리할 필요가 있었다. 이런 배경에서 Indico의 개발이 추진되었다.

두 번째로, LHC 실험과 관련된 각종 학술회의의 발표 자료 및 논문, 보고서 등의 기술 문서와 자료들을 체계적으로 수집, 보존하고 관리할 필요가 있었다.

LHC 프로젝트와 관련해서 워낙 많은 수의 기술 자료가 작성, 발표, 공유되다 보니, 개별 컨퍼런스나 워크숍, 회의 자료를 회의마다 다른 방식으로 수집하고 보관해서는 회의 현장에서 이루어지는 수많은 중요한 기술적인 논의 및 의사 결정에 대한 기록과 자료를 체계적으로 보존, 관리, 참조할 수 없었다. 이를 위해서는 통일되고 일관된 방식으로 자료를 수집, 저장, 관리할 수 있는 시스템이 필요했는데, 바로 이를 위해 Indico가 개발된 것이다.

보통 LHC 프로젝트와 관련된 학술회의와 기술 워크숍에 가면 하루만 하는 회의라고 하더라도 수많은 보고서, 논문, 발표 자료 및 기술 자료가 쏟아져 나오게 된다. LHC 프로젝트에서 직접 일하지 않는 연구원이라고 하더라도 컨퍼런스나 회의에 초청을 받아 연사로서 발표하는 경우도 많다. LHC 프로젝트에 직, 간접적으로 참여, 기여하는 다양한 연구원과 전문가들의 기술적인 견해와 연구 성과가 언제 어떤 방식으로 LHC 장치 디자인 및 개발, 데이터 분석에 중요한 단서를 제공하거나 기여할지 예측할 수 없기 때문에 가능하면 모든 회의의 발표자료와 회의록, 참여자들과 회의 개요 등의 정보를 하나의 시스템에서 체계적으로 저장, 관리할 필요가 있었다.

각종 회의에서 수집된 발표자료와 발표 영상 자료, 회의록들도 워낙에 회의 종류와 숫자가 많다 보니 LHC에서 수집, 처리, 보관해야 하는 또 하나의 빅데이터가 되었다. 이들 LHC 관련 회의에서 나오는 기술 자료 빅데이터를 처리하기 위해서는 확장성 있는 컨퍼런스 관리 시스템이 필요했는데, 웹 기술의 총 본산이었던 CERN이 자신이 가진 웹 기술 전문가들의 전문성을 총동원하여 확장성 있고 유연한 컨퍼런스 관리 소프트웨어인 Indico를 만들게 된 것이다. 
 


세 번째로, LHC 실험장치 개발과 운영을 위한 비용도 만만치 않은데, 이를 위한 회의 개최 비용과 커뮤니케이션 비용도 최대한 절감할 필요가 있었다.

LHC 실험 장치와 컴퓨팅 인프라 자체만도 건설과 운영 비용이 천문학적으로 들어갔지만, LHC 프로젝트를 수행하는 인력들의 인건비와 이들 인력이 프로젝트를 위해 서로 의사소통하고 협업하기 위한 시스템을 갖추고 운영하는 데에도 많은 비용이 들어갔다.

 


X