척척박사 연구소

척척박사 연구소과학이야기제목별로 보기모두의 수학

모두의 수학

우리 생활 속 수학 원리를 알아 봅시다.

슈퍼컴퓨터도 힘 못 쓰는 계산이 있다?

 

슈퍼컴퓨터_01

 

슈퍼컴퓨터의 핵심원리는 병렬계산 Parallel Computing 이다. 하나의 큰 작업을 병렬로 연결된 여러 대의 컴퓨터에 분산시켜 처리하고 이를 다시 모아서 큰 작업의 최종 결과를 얻는다. 이와 같은 병렬계산의 목적은 작업시간 단축이다.

 

 

 


슈퍼컴퓨터는 모든 계산의 시간을 줄일 수 있을까?

 

그렇지 못하다.
그 이유는 슈퍼컴퓨터의 핵심원리인 병렬계산에서 찾을 수 있다.

 

 

 

 

 


“순차성과 병렬성”

 

모든 작업(문제해결과정 또는 계산)의 흐름에는 ‘순차성’과 ‘병렬성’이 있다. 피보나치 수열에 대한 문제로 그 차이를 이해해보자.


 

피보나치 수열


순차성 : 정해진 순서에 따라 계산되는 성질

 

피보나치 수열은 f1=1, f2=1일 때, f3=f1+f2=1+1=2, f4=f2+f3=1+2=3, f5=f3+f4=2+3=5 … 과 같이 나타낼 수 있다. 이 수열의 제5항은 f5=f3+f4이므로 그 계산에 앞서 반드시 f1, f2, f3,f4를 알아야 구할 수 있다. 따라서 이 수열의 제100항 f100은 반드시 f1, f2, f3, f4, …, f98, f99를 알아야 구할 수 있게 된다. 이처럼 인접한 세 항의 관계로 정의된 피보나치 수열의 값은 순서에 따라 계산이 이루어지는 ‘순차성’을 갖고 있다. 이처럼 순차성을 가지고 있는 계산은 슈퍼컴퓨터로 실행해봤자 의미가 없다!!

 

 

 

 

 

 


피보나치 수열의 제32항의 값을
「1개의 CPU」 vs 「6개의 CPU 병렬계산」으로 계산해보고
그 시간을 비교해보자.


「1개의 CPU」로 계산한 시간은 약 2.7초다.

 

 

슈퍼컴퓨터_02

 


 

「6개의 CPU」로 병렬계산을 시도해보았지만, 병렬처리를 할 수 없다는 메시지와 함께 「1개의 CPU」로 처리되었으며 계산시간 약 2.8초는 불필요한 분산처리 시도로 오히려 좀 더 소요된 모습이다.

 

 

슈퍼컴퓨터_03

 

【참고】 위의 계산과정은 순차성 알고리즘의 계산시간이 오래 걸리고 병렬계산이 되지 않음을 보여주기 위한 목적으로 작성된 것으로, 실제 최적화된 설계는 아니다.

 

병렬성 : 순서에 상관없이 나눠서 계산할 수 있는 성질

 

 

피보나치 수열은 앞서 소개한 순차성을 가진 ‘f1=1, f2=1, fn=fn-2+fn-1’과 같은 표현 이외에도 n번째 항을 바로 계산할 수 있는 일반항 fn도 존재한다.

 

계산식


일반항 fn을 이용하면 독립적으로 f1, f2, f3, f4, …을 훨씬 빠르게 구할 수 있다. 더하여 그 합에 대한 문제도 병렬계산이 가능하다. 합은 순서에 상관이 없으므로 나눠서 계산할 수 있기 때문이다.

 

 

 

 

 

 

 


피보나치 수열의 제1항부터 제100,000항(105)까지의 합을
「1개의 CPU」 vs 「6개의 CPU 병렬계산」으로 계산해보고
그 시간을 비교해보자.


「1개의 CPU」로 계산한 시간은 약 2.9초다.

 

 

슈퍼컴퓨터_04


 

「6개의 CPU」로 병렬계산을 시도한 결과 분산처리가 이루어졌으며, 계산시간은 약 0.8초로, 앞선 ‘순차성’ 계산방식보다 엄청나게 빠르다! 「1개의 CPU」로 계산한 시간보다 약 3.6배 속도가 향상되었으니 말이다.

 

 

슈퍼컴퓨터_05


 

결론적으로 제아무리 좋은 성능을 갖춘 슈퍼컴퓨터라고 하여도, 계산하고자 하는 큰 작업을 얼마나 효율성 있게 병렬 설계를 하는가에 따라 그 성능을 극대화할 수 있다. 이것이 바로 최적화이고 프로그래밍을 하는 이들의 역할이며 능력이다.

 

 

 

 

 

 

 

[더 알아보기]
이 글에서 소개한 내용은 세계적으로 유명한 Mathematica 소프트웨어로 구현한 것이며, 이는 이 글을 작성해주신 파주여고 이장훈 선생님의 홈페이지 수학생각(http://www.mathought.com/)의 수학실험실에서 Dynamic한 실험과 조작을 통하여 더욱 즐겁게 관찰할 수 있습니다. 단, 공개프로그램인 Wolfram CDF Player을 설치하고 PC(혹은 노트북)에서 첨부파일을 실행하면 작동이 가능합니다.


[바로가기]

Mathematica 병렬컴퓨팅(Parallel Computing)
슈퍼컴퓨터의 작동원리를 일반 PC로 구현해보자!!

 

 

관련주제가 없습니다.
내과학상자담기  E-MAIL 프린트 RSS
관련 콘텐츠가 없습니다.

나도 한마디 1개의 댓글이 있습니다.

등록하기

목록


내 당근 보러가기

내 뱃지 보러가기

TOP